Databricks Clean Rooms で出力テーブルを作成して操作する
重要
この機能はパブリック プレビュー段階にあります。
この記事では、ノートブック実行によって生成され、ノートブック ランナーの Unity カタログ メタストアと共有される一時的な読み取り専用テーブルである出力テーブルについて説明します。 この記事では、ノートブックを使用して出力テーブルを作成する方法と、コラボレーターが Unity カタログ メタストアでこれらの出力テーブルを読み取る方法について説明します。
出力テーブルの概要
出力テーブルを使用すると、クリーン ルームで実行されているノートブックの出力を Unity カタログ メタストアの出力カタログに一時的に保存できます。ここで、ノートブック自体を実行できないチームのメンバーがデータを使用できるようにします。 また、Azure Databricks ジョブを使用してノートブックを実行し、出力テーブルでタスクを実行することもできます。 Clean Room ノートブックのタスクの種類とタスク値のサポートと組み合わせて、出力テーブルを使用すると、クリーン ルーム ノートブックに依存する複雑なワークフローを作成できます。
出力テーブルは読み取り専用です。
ノートブックを実行する特定のプリンシパル (ユーザー、グループ、またはサービス プリンシパル) のみが、出力テーブルへの既定の読み取りアクセス権を持ちます。 書き込みアクセス権はありません。 メタストア管理者は、標準の Unity カタログ特権を使用して、Azure Databricks アカウント内の他のプリンシパルに読み取りアクセス権を付与できます。
出力テーブルは、中央のクリーン ルームの既定の保存場所に 30 日間保存され、デルタ共有を使用してコラボレーターのメタストアと共有されます。 出力テーブルを 30 日以上保持する場合は、ローカル ストレージにコピーする必要があります。
ノートブックを実行するたびに、出力カタログに新しいスキーマが作成されます。 新しい実行では、既存の出力テーブルを追加できません。
重要
出力テーブルは、中央のクリーン ルームが AWS でホストされている場合にのみサポートされます。 ただし、3 つすべてのクラウド (AWS、Azure、Google Cloud) 上の Databricks のコラボレーターは、出力テーブルを作成するノートブックを共有でき、共有ノートブックの実行時に生成された出力テーブルを読み取ることができます。 Google Cloud コラボレーターは、Clean Rooms プライベート プレビューの参加者である必要があります。
出力テーブルを作成する
出力テーブルを作成するには、3 部構成のテーブル名前空間のパラメーター cr_output_catalog
と cr_output_schema
を使用します。 ノートブックを実行するたびに、新しいスキーマが生成されます。
次の例では、ノートブック セルは、電子メール アドレスが collaborator.advertiser.profiles
テーブルとcreator.publisher.profiles
テーブルの両方に表示されるユーザーを一覧表示する、overlapping_users
という出力テーブルを collborator の出力カタログに作成します。
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
出力テーブルの読み取り
出力テーブルは、ノートブック ランナーのメタストアの共有カタログに表示されます。 カタログ エクスプローラー Catalog ペインで、 Shared カタログの一覧に表示されます。
出力テーブルの読み取りは、Unity カタログ内の他のテーブルを読み取るようなものです。 テーブルに SELECT
、共有出力カタログに USE CATALOG
し、自動生成されたスキーマに USE SCHEMA
する必要があります。 テーブルを作成したノートブックを実行したユーザーには、既定でこれらのアクセス許可があります。
始める前に
このセクションでは、出力テーブルを読み取るためのクラウド、構成、コンピューティングの要件について説明します。
クラウドの要件
出力テーブルをサポートするには中央のクリーン ルームを AWS 上に置く必要があります。コラボレーター ワークスペースは、AWS、Azure、または Google Cloud の 3 つのクラウドのいずれかに置くことができます。 Google Cloud コラボレーターは、Clean Rooms プライベート プレビューの参加者である必要があります。
共有出力カタログの要件
出力テーブルを読み取る前に、ユーザーはそれらを保持するカタログを作成する必要があります。 これは、クリーン ルームごとに 1 回だけ行う必要があります。
必要なアクセス許可: EXECUTE_CLEAN_ROOM_TASK
- Azure Databricks ワークスペースで、 [カタログ] をクリックします。
- [クイック アクセス] ページで、[Clean Rooms] > ボタンをクリックします。
- 一覧からクリーン ルームを選択します。
- 右側のウィンドウの Output で、[カタログの作成 ] をクリック。
- Output カタログ名を入力するか既定値をそのまま使用します(
<clean-room-name>_output
)。
カタログ エクスプローラーの Catalog ペインの Shared カタログの一覧に出力カタログが表示されます。 参加する各クリーン ルームは、メタストアに 1 つの共有出力カタログを持つことができます。
コンピューティングの要件
出力テーブルに対するクエリには、サーバーレス コンピューティングが必要です。 「サーバーレス コンピューティングに接続する」を参照してください。
出力テーブルを読み取るために必要なアクセス許可
出力テーブルを作成したノートブックを実行したユーザーには、既定で出力テーブルから読み取るアクセス許可があります。 他のすべてのユーザーには、次のアクセス許可が付与されている必要があります。
SELECT
テーブルのUSE CATALOG
出力カタログのUSE SCHEMA
出力スキーマに対する
ノートブックを実行する
出力カタログに共有出力テーブルを生成するには、クリーン ルームにアクセスできるユーザーがノートブックを実行する必要があります。 「 クリーン ルームでノートブックを実行するを参照してください。 ノートブックを実行するたびに、新しい出力スキーマとテーブルが作成されます。
ヒント
Azure Databricks ジョブを使用してノートブックを実行し、出力テーブルでタスクを実行し、複雑なワークフローを有効にすることができます。 「 Azure Databricks ワークフローを使用してクリーン ルーム ノートブックを実行するを参照してください。
出力テーブルを検索して表示する
出力テーブルを作成するノートブックを実行するユーザーは、ノートブックの実行履歴で出力テーブルへのリンクを見つけ、 Clean Rooms UI で詳細ページを実行できます。 どちらの場合も、リンクは Output スキーマ フィールドにあります。 Monitor のクリーン ルーム ノートブックの実行を参照してください。
実行履歴:
実行の詳細:
出力カタログは、カタログ エクスプローラーの Catalog ペインの Shared カタログの一覧にも表示されます。
制限事項
出力テーブルの概要およびに記載されている要件に加えて出力テーブルには次の制限があります。
- 出力テーブルは、中央のクリーン ルームが AWS でホストされている場合と、出力テーブル機能がリリースされた後にクリーン ルームが作成された場合にのみサポートされます。
- テーブルのみがサポートされています。 たとえば、ボリュームとビューは含まれません。
- ノートブックごとに最大 100 個の出力テーブルを作成できます。