Databricks Clean Rooms で出力テーブルを作成して操作する

このページでは、ノートブック実行によって生成され、ノートブック ランナーの Unity カタログ メタストアと共有される一時的な読み取り専用テーブルである出力テーブルについて説明します。 この記事では、ノートブックを使用して出力テーブルを作成する方法と、ランナーが Unity カタログ メタストアでこれらの出力テーブルを読み取る方法について説明します。

出力テーブルの概要

出力テーブルを使用すると、クリーン ルームで実行されているノートブックの出力を Unity カタログ メタストアの出力カタログに一時的に保存できます。ここで、ノートブック自体を実行できないチームのメンバーがデータを使用できるようにします。 Lakeflow ジョブを使用してノートブックを実行し、出力テーブルでタスクを実行することもできます。 Clean Room ノートブックのタスクの種類とタスク値のサポートと組み合わせて、出力テーブルを使用すると、クリーン ルーム ノートブックに依存する複雑なワークフローを作成できます。

出力テーブルは読み取り専用です。

ノートブックを実行する特定のプリンシパル (ユーザー、グループ、またはサービス プリンシパル) のみが、出力テーブルへの既定の読み取りアクセス権を持ちます。 書き込みアクセス権はありません。 メタストア管理者は、Unity カタログ権限を使用して、Azure Databricks アカウント内の他のプリンシパルに読み取りアクセス権を付与できます。

代わりに、クリーン ルーム内のすべてのコラボレーターが出力を使用できるようにするには、共有出力スキーマに書き込みます。 「すべてのコラボレーターと出力を共有する」を参照してください。

出力テーブルは、中央のクリーン ルームの既定の保存場所に 30 日間保存され、OpenSharing を使用してランナーのメタストアと共有されます。 出力テーブルを 30 日以上保持する場合は、ローカル ストレージにコピーする必要があります。

ノートブックを実行するたびに、出力カタログに新しいスキーマが作成されます。 新しい実行では、既存の出力テーブルを追加できません。

3 つすべてのクラウド (AWS、Azure、Google Cloud) 上の Databricks のコラボレーターは、出力テーブルを作成するノートブックを共有でき、共有ノートブックの実行時に生成された出力テーブルを読み取ることができます。

出力テーブルを作成する

出力テーブルを作成するには、3 部構成のテーブル名前空間のパラメーター cr_output_catalogcr_output_schema を使用します。 ノートブックを実行するたびに、新しいスキーマが生成されます。

次の例では、ノートブック セルはランナーの出力カタログに overlapping_users という名前の出力テーブルを作成し、電子メール アドレスが collaborator.advertiser.profiles テーブルと creator.publisher.profiles テーブルの両方に表示されるユーザーを一覧表示します。

CREATE TABLE identifier(:cr_output_catalog || '.' || :cr_output_schema || '.overlapping_users') AS
SELECT collab_profiles.*
FROM collaborator.advertiser.profiles AS collab_profiles
JOIN creator.publisher.profiles AS creator_profiles
ON collab_profiles.email = creator_profiles.email

すべてのコラボレーターと出力を共有する

Important

この機能は パブリック プレビュー段階です

既定では、ノートブックを実行するコラボレーターのみが、実行が正常に完了した後にのみ、出力テーブルにアクセスできます。 共有出力では、ノートブックの実行を 共有出力スキーマ に書き込むこともできます。このスキーマは、実行が完了する前であっても、すべてのコラボレーターがすぐに読み取ることができます。

1 回のノートブック実行で、両方のスキーマに書き込むことができます。

  • cr_output_schemaを使用して、ランナーだけが読み取ることができるテーブルを書き込みます。
  • cr_shared_output_schemaを使用して、すべてのコラボレーターが読み取ることができるテーブルを書き込みます。

始める前の準備

  • 作成者は、 共有出力 が有効になっている新しいクリーン ルームを作成する必要があります。 共有出力は、クリーン ルームの作成時に設定され、後で変更することはできません。 共有出力がオンの場合、クリーン ルームの詳細ページに [出力が有効] と表示されます。

  • クリーン ルームを作成した直後に出力カタログを作成します。 開始する前にを参照してください。 実行後に出力カタログを作成した場合、コラボレーターは共有出力スキーマに必要なアクセス許可を持っていない可能性があります。 クリーン ルームの所有者は、後でアクセス許可を付与する必要があります。

共有出力スキーマへの書き込み

ノートブックでは、3 部構成のテーブル名前空間で cr_shared_output_schema パラメーターを使用します。 次の例では、すべてのコラボレーターが読み取ることができる結果を書き込みます。

CREATE TABLE identifier(:cr_output_catalog || '.' || :cr_shared_output_schema || '.audience_overlap') AS
SELECT creator_profiles.segment_id, COUNT(DISTINCT collab_profiles.email) AS overlap_count
FROM collaborator.advertiser.profiles AS collab_profiles
JOIN creator.publisher.profiles AS creator_profiles
ON collab_profiles.email = creator_profiles.email
GROUP BY creator_profiles.segment_id

共有出力スキーマ内のテーブルは、実行が完了する前であっても、作成されるとすぐにすべてのコラボレーターが使用できます。 ランナー専用 cr_output_schema に書き込んだテーブルは、ランナーのみが使用でき、実行が正常に完了した後でのみ使用できます。

JAR 分析の場合、Clean Rooms は、JAR が参照できる --cr_shared_output_schema <value> パラメーターとして共有出力スキーマを自動的に挿入します。 「Azure Databricksクリーン ルームで JAR ワークロードを実行する」を参照してください。

共有出力スキーマは、30 日後に自動的に削除されます。

出力テーブルの読み取り

出力テーブルは、ノートブック ランナーのメタストアの共有カタログに表示されます。 カタログ エクスプローラー Catalog ペインで、 Shared カタログの一覧に表示されます。

出力テーブルの読み取りは、Unity カタログ内の他のテーブルを読み取るようなものです。 テーブルに SELECT 、共有出力カタログに USE CATALOG し、自動生成されたスキーマに USE SCHEMA する必要があります。 テーブルを作成したノートブックを実行したユーザーには、既定でこれらのアクセス許可があります。

クリーン ルームを削除すると、出力カタログからすべての出力テーブルと履歴データが削除されます。

始める前に

このセクションでは、出力テーブルを読み取るためのクラウド、構成、コンピューティングの要件について説明します。

共有出力カタログの要件

出力テーブルを読み取る前に、ユーザーはそれらを保持するカタログを作成する必要があります。 これは、クリーン ルームごとに 1 回だけ行う必要があります。 クリーン ルームの所有者は、既定で出力カタログの読み取りと管理を行う権限を持っています。

必要なアクセス許可: EXECUTE CLEAN ROOM TASK

  1. Azure Databricks ワークスペースで、[ データ] アイコンをクリックします。カタログ
  2. [ クリーン ルーム] > ボタンをクリックします。
  3. 一覧からクリーン ルームを選択します。
  4. 右側のウィンドウの Output で、[カタログの作成 ] をクリック
  5. Output カタログ名を入力するか既定値をそのまま使用します(<clean-room-name>_output)。

カタログ エクスプローラーの Catalog ペインの Shared カタログの一覧に出力カタログが表示されます。 参加する各クリーン ルームは、メタストアに 1 つの共有出力カタログを持つことができます。

コンピューティングの要件

出力テーブルに対するクエリには、サーバーレス コンピューティングが必要です。 「サーバーレス コンピューティングに接続する」を参照してください。

出力テーブルを読み取るために必要なアクセス許可

出力テーブルを作成したノートブックを実行したユーザーと、クリーン ルームの所有者は、既定で出力テーブルの読み取りと管理を行う権限を持っています。 他のすべてのユーザーには、次のアクセス許可が付与されている必要があります。

  • テーブルの SELECT
  • 出力カタログの USE CATALOG
  • USE SCHEMA 出力スキーマについて

ノートブックを実行する

出力カタログに共有出力テーブルを生成するには、クリーン ルームにアクセスできるユーザーがノートブックを実行する必要があります。 「 クリーン ルームでノートブックを実行するを参照してください。 ノートブックを実行するたびに、新しい出力スキーマとテーブルが作成されます。

ヒント

Lakeflow ジョブを使用してノートブックを実行し、出力テーブルでタスクを実行し、複雑なワークフローを有効にすることができます。 「Lakeflow ジョブを使用してクリーン ルーム ノートブックを実行する」を参照してください。

出力テーブルを検索して表示する

出力テーブルを作成するノートブックを実行するユーザーは、ノートブックの実行履歴で出力テーブルへのリンクを見つけ、 Clean Rooms UI で詳細ページを実行できます。 どちらの場合も、リンクは Output スキーマ フィールドにあります。 クリーン ルーム ノートブックの実行の監視を参照してください。

実行履歴:

実行履歴の出力スキーマ リンク

実行の詳細:

実行詳細の出力スキーマへのリンク

出力カタログは、カタログ エクスプローラーの Catalog ペインの Shared カタログの一覧にも表示されます。

制限事項

出力テーブルの概要およびに記載されている要件に加えて出力テーブルには次の制限があります。

  • 出力テーブルは、出力テーブル機能がリリースされた後にクリーン ルームが作成された場合にのみサポートされます。
  • テーブルのみがサポートされています。 たとえば、ボリュームとビューはそうではありません。
  • 各ノートブックでサポートできる出力テーブルの数には制限があります。 リソース制限に関するページを参照してください。