OpenSharing エグレスコストを監視および管理する(プロバイダー向け)
このページでは、OpenSharing を使用してデータと AI アセットを共有するときに、クラウドベンダーのエグレスコストを監視および管理するために使用できるツールについて説明します。
他のデータ共有プラットフォームとは異なり、OpenSharingではデータのレプリケーションは必要ありません。このモデルには多くの利点がありますが、クラウドやリージョン間でデータを共有する場合、クラウドベンダーがデータエグレス料金を請求する可能性があります。OpenSharing を使用してリージョン内でデータと AI アセットを共有する場合、エグレスコストは発生しません。
エグレス料金を監視および管理するために、Databricks は以下を提供します。
エグレスコストを回避するためにデータをレプリケートする
エグレスコストを回避するための1つのアプローチは、プロバイダーが受信者が使用しているリージョンに共有データのローカルレプリカを作成および同期することです。もう1つのアプローチは、受信者がアクティブなクエリのために共有データをローカルリージョンにクローンし、共有テーブルとローカルクローンの間で同期を設定することです。このセクションでは、いくつかのレプリケーションパターンについて説明します。
増分レプリケーションにはDeltaディープクローンを使用してください。
プロバイダーは、共有するリージョン間で DEEP CLONE を使用して Delta テーブルを外部ロケーションにレプリケートできます。ディープ クローンは、ソース テーブルのデータとメタデータをクローン ターゲットにコピーします。ディープ クローンでは、ソース テーブル内の新しいデータを識別し、それに応じてターゲットを更新することにより、増分更新も可能になります。
CREATE TABLE [IF NOT EXISTS] table_name DEEP CLONE source_table_name
[TBLPROPERTIES clause] [LOCATION path];
次のコマンドを使用して、共有テーブルの最新の更新でターゲットテーブルのデータを増分更新するようにDatabricksジョブをスケジュールできます。
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の外部ロケーションとしてマウントする
-
Cloudflare R2 バケットを作成します。
「ステップ1: R2バケットを構成する」を参照してください。
-
R2バケットにアクセスできるUnity Catalogでストレージ認証情報を作成します。
ステップ 2: ストレージ認証情報を作成する」を参照してください。
-
ストレージ資格情報を使用して、Unity Catalogで外部ロケーションを作成します。
ステップ 3: 外部ロケーションを作成するを参照してください。
外部ロケーションを使用して新しいカタログを作成
新しい外部ロケーションをマネージドストレージロケーションとして使用するカタログを作成します。
カタログの作成を参照してください。
カタログを作成するときは、次の手順を実行します。
- Catalog Explorer
- SQL
- **標準**のカタログタイプを選択します。
- ストレージの場所 で、 ストレージの場所を選択 を選択し、外部ロケーションとして定義したR2バケットへのパスを入力してください。例えば
r2://mybucket@my-account-id.r2.cloudflarestorage.com
外部ロケーションとして定義したR2バケットへのパスを使用します。例えば:
CREATE CATALOG IF NOT EXISTS my-r2-catalog
MANAGED LOCATION 'r2://mybucket@my-account-id.r2.cloudflarestorage.com'
COMMENT 'Location for managed tables and volumes to share using Delta Sharing';
共有するデータを新しいカタログのテーブルに複製します
DEEP CLONEを使用して、マネージドストレージに R2 を使用する新しいカタログに GCS 内のテーブルを複製します。 ディープ クローンは、ソース テーブルのデータとメタデータをクローン ターゲットにコピーします。 ディープ クローンでは、ソース テーブル内の新しいデータを識別し、それに応じてターゲットを更新することにより、増分更新も可能になります。
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 ジョブをスケジュールできます。
CREATE OR REPLACE TABLE new_catalog.schema1.new_table DEEP CLONE old_catalog.schema1.source_table;
「 Lakeflowジョブと ジョブ でのテーブルのクローニング 」を参照してください。Databricks
新しいテーブルを共有する
シェアを作成するときは、新しいカタログにあり、R2に保存されているテーブルを追加します。プロセスは、テーブルをシェアに追加するのと同じです。
「OpenSharing 共有の作成」を参照してください。