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

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. クラウドフレアのR2バケットを作成してください。

    ステップ 1: R2 バケットの設定を参照してください。

  2. Unity Catalog で、R2 バケットへのアクセス権を付与するストレージ資格情報を作成します。

    ステップ 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 共有の作成」を参照してください。