メインコンテンツまでスキップ

OpenSharing エグレスコストを監視および管理する(プロバイダー向け)

このページでは、OpenSharing を使用してデータと AI アセットを共有するときに、クラウドベンダーのエグレスコストを監視および管理するために使用できるツールについて説明します。

他のデータ共有プラットフォームとは異なり、OpenSharingではデータのレプリケーションは必要ありません。このモデルには多くの利点がありますが、クラウドやリージョン間でデータを共有する場合、クラウドベンダーがデータエグレス料金を請求する可能性があります。OpenSharing を使用してリージョン内でデータと AI アセットを共有する場合、エグレスコストは発生しません。

エグレス料金を監視および管理するために、Databricks は以下を提供します。

エグレスコストを回避するためにデータをレプリケートする

エグレスコストを回避するための1つのアプローチは、プロバイダーが受信者が使用しているリージョンに共有データのローカルレプリカを作成および同期することです。もう1つのアプローチは、受信者がアクティブなクエリのために共有データをローカルリージョンにクローンし、共有テーブルとローカルクローンの間で同期を設定することです。このセクションでは、いくつかのレプリケーションパターンについて説明します。

増分レプリケーションにはDeltaディープクローンを使用してください。

プロバイダーは、共有するリージョン間で DEEP CLONE を使用して Delta テーブルを外部ロケーションにレプリケートできます。ディープ クローンは、ソース テーブルのデータとメタデータをクローン ターゲットにコピーします。ディープ クローンでは、ソース テーブル内の新しいデータを識別し、それに応じてターゲットを更新することにより、増分更新も可能になります。

SQL
CREATE TABLE [IF NOT EXISTS] table_name DEEP CLONE source_table_name
[TBLPROPERTIES clause] [LOCATION path];

次のコマンドを使用して、共有テーブルの最新の更新でターゲットテーブルのデータを増分更新するようにDatabricksジョブをスケジュールできます。

SQL
CREATE OR REPLACE TABLE table_name DEEP CLONE source_table_name;

Lakeflowジョブと ジョブ でのテーブルのクローニング 」を参照してください。Databricks

増分レプリケーションのために、共有テーブルでチェンジデータフィード (CDF) を有効にします。

テーブルがそのCDFと共有されている場合、受信者は変更にアクセスし、それらをテーブルのローカルコピーにマージして、ユーザーがクエリを実行できます。このシナリオでは、データへの受信者アクセスはリージョン境界を越えず、エグレスはローカルコピーの更新に限定されます。受信者がDatabricksを使用している場合、Databricksワークフロージョブを使用して、ローカルレプリカに変更を伝播できます。

CDF とテーブルを共有するには、テーブルで CDF を有効にし、それを共有するWITH HISTORY必要があります。

CDF の使用の詳細については、Databricksでチェンジデータフィードを使用する共有にテーブルを追加する を参照してください。

Cloudflare R2 レプリカを使用するか、ストレージを R2 に移行する

Cloudflare R2オブジェクトストレージでは、エグレス料金はかかりません。共有するデータを R2 に複製または移行すると、エグレス料金を発生させずにOpenSharingを使用してデータを共有できるようになります。しかし、これはビュー共有には適用されません。ビュー共有では、エグレスコストが引き続き発生する可能性があります。このセクションでは、データを R2 の場所にレプリケートし、ソース テーブルからの増分更新を有効にする方法について説明します。

要件

  • Unity Catalogが有効化されたDatabricksワークスペース
  • Databricks Runtime 14.3 以降、または SQLwarehouse 2024.15 以降
  • Cloudflareアカウント。 https://dash.cloudflare.com/sign-up を参照してください。
  • Cloudflare R2 管理者ロール。Cloudflareロールのドキュメントを参照してください。
  • CREATE STORAGE CREDENTIAL ワークスペースにアタッチされた Unity Catalog メタストアに対する特権。 アカウント管理者とメタストア管理者には、デフォルトでこれらの権限があります。
  • CREATE EXTERNAL LOCATION メタストアと、外部ロケーションで参照されているストレージ資格情報の両方に対する特権。メタストア管理者は、デフォルトでこの特権を持っています。
  • CREATE MANAGED STORAGE 外部ロケーションに対する権限。
  • CREATE CATALOG メタストアで。メタストア管理者は、デフォルトでこの特権を持っています。

Cloudflare R2 の制限事項

プロバイダーは、リキッドクラスタリングと V2 チェックポイントを使用する R2 テーブルを共有できません。

R2バケットをDatabricksの外部ロケーションとしてマウントする

  1. Cloudflare R2 バケットを作成します。

    ステップ1: R2バケットを構成する」を参照してください。

  2. R2バケットにアクセスできるUnity Catalogでストレージ認証情報を作成します。

    ステップ 2: ストレージ認証情報を作成する」を参照してください。

  3. ストレージ資格情報を使用して、Unity Catalogで外部ロケーションを作成します。

    ステップ 3: 外部ロケーションを作成するを参照してください。

外部ロケーションを使用して新しいカタログを作成

新しい外部ロケーションをマネージドストレージロケーションとして使用するカタログを作成します。

カタログの作成を参照してください。

カタログを作成するときは、次の手順を実行します。

  • **標準**のカタログタイプを選択します。
  • ストレージの場所 で、 ストレージの場所を選択 を選択し、外部ロケーションとして定義したR2バケットへのパスを入力してください。例えば r2://mybucket@my-account-id.r2.cloudflarestorage.com

共有するデータを新しいカタログのテーブルに複製します

DEEP CLONEを使用して、マネージドストレージに R2 を使用する新しいカタログに GCS 内のテーブルを複製します。 ディープ クローンは、ソース テーブルのデータとメタデータをクローン ターゲットにコピーします。 ディープ クローンでは、ソース テーブル内の新しいデータを識別し、それに応じてターゲットを更新することにより、増分更新も可能になります。

SQL
CREATE TABLE IF NOT EXISTS new_catalog.schema1.new_table DEEP CLONE old_catalog.schema1.source_table
LOCATION 'r2://mybucket@my-account-id.r2.cloudflarestorage.com';

次のコマンドを使用して、ソーステーブルでの最近の更新でターゲットテーブルのデータを増分的に更新するように、Databricks ジョブをスケジュールできます。

SQL
CREATE OR REPLACE TABLE new_catalog.schema1.new_table DEEP CLONE old_catalog.schema1.source_table;

Lakeflowジョブと ジョブ でのテーブルのクローニング 」を参照してください。Databricks

新しいテーブルを共有する

シェアを作成するときは、新しいカタログにあり、R2に保存されているテーブルを追加します。プロセスは、テーブルをシェアに追加するのと同じです。

「OpenSharing 共有の作成」を参照してください。