Databricks クリーンルームで出力テーブルを作成して操作する
このページでは、ノートブックの実行によって生成され、ノートブック ランナーの Unity Catalog メタストアに共有される一時的な読み取り専用テーブルである出力テーブルについて説明します。この記事では、ノートブックを使用して出力テーブルを作成する方法と、ランナーが Unity Catalog メタストアでこれらの出力テーブルを読み取る方法について説明します。
出力テーブルの概要
出力テーブルを使用すると、クリーンルームで実行されるノートブックの出力を Unity Catalog メタストアの出力カタログに一時的に保存でき、ノートブックを自分で実行できないチームのメンバーにデータを提供できます。 また、 Lakeflow ジョブを使用してノートブックを実行し、出力テーブルでタスクを実行することもできます。 出力テーブルを クリーンルーム ノートブック タスク タイプおよびタスク値のサポートと組み合わせることで、クリーンルーム ノートブックに依存する複雑なワークフローを作成できます。
出力テーブルは読み取り専用です。
ノートブックを実行する特定のプリンシパル(ユーザー、グループ、またはサービスプリンシパル)のみが、出力テーブルへのデフォルトの読み取りアクセス権を持っています。書き込みアクセスはありません。メタストア管理者は、Unity Catalogの特権を使用して、Databricksアカウント内の他のプリンシパルに読み取りアクセスを許可できます。
代わりに、クリーンルーム内のすべてのコラボレーターが利用できるように出力を共有出力スキーマに書き込みます。「すべてのコラボレーターと出力を共有する」を参照してください。
出力テーブルは、中央のクリーンルームのデフォルトストレージに30日間保存され、OpenSharingを使用してランナーのメタストアに共有されます。出力テーブルを 30 日を超えて保持する場合は、そのテーブルをローカルストレージにコピーする必要があります。
ノートブックを実行するたびに、出力カタログに新しいスキーマが作成されます。 新しい実行では、既存の出力テーブルを追加できません。
AWS、Azure、Google Cloud の 3 つのクラウドすべてで Databricks の共同作業者は、出力テーブルを作成するノートブックを共有したり、共有ノートブックを実行したときに生成される出力テーブルを読み取ったりすることができます。
出力テーブルの作成
出力テーブルを作成するには、3 部構成のテーブル名前空間のパラメーター cr_output_catalog と cr_output_schema を使用します。 ノートブックを実行するたびに、新しいスキーマが生成されます。
次の例では、ノートブックのセルは、ランナーの出力カタログに overlapping_users という出力テーブルを作成します。このテーブルには、 collaborator.advertiser.profiles テーブルと creator.publisher.profiles E メール テーブルの両方に表示されるユーザーがリストされています。
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
成果物をすべての共同作業者と共有する
プレビュー
この機能は パブリック プレビュー段階です。
デフォルトでは、出力テーブルはノートブックを実行する共同作業者のみがアクセス可能で、実行が成功裏に完了した後のみアクセス可能です。共有出力では、ノートブックの実行は共有 出力スキーマ に書き込みもでき、実行が終わる前からすべてのコラボレーターが即座に読み取ることができます。
単一のノートブックの実行で、両方のスキーマに書き込むことができます。
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解析の場合、クリーンルームは共有出力スキーマを自動的にJARが参照できる --cr_shared_output_schema <value> パラメータとして注入します。DatabricksクリーンルームでJARワークロードを実行する方法をご覧ください。
共有出力スキーマは30日後に自動的に削除されます。
出力テーブルの読み取り
出力テーブルは、ノートブック ランナーのメタストア内の共有カタログに表示されます。カタログ エクスプローラーの [カタログ ] ウィンドウでは、 共有 カタログ リストに表示されます。
出力テーブルの読み取りは、Unity Catalog 内の他のテーブルの読み取りと似ています。 テーブルに SELECT 、共有出力カタログに USE CATALOG 、自動生成されたスキーマに USE SCHEMA する必要があります。 テーブルを作成したノートブックを実行したユーザーには、デフォルトでこれらのアクセス許可があります。
クリーンルームを削除すると、すべての出力テーブルとヒストリカルデータが出力カタログから削除されます。
始める前に
このセクションでは、出力テーブルを読み取るためのクラウド、構成、およびコンピュートの要件について説明します。
共有出力カタログの要件
出力テーブルを読み取る前に、ユーザーは出力テーブルを保持するカタログを作成する必要があります。 これは、クリーンルームごとに1回だけ行う必要があります。 クリーンルームの所有者には、デフォルトで出力カタログを読み取って管理する権限があります。
必要な権限 : EXECUTE CLEAN ROOM TASK
- Databricks ワークスペースで、[
カタログ] をクリックします。
- 「クリーンルーム >」 ボタンをクリックします。
- リストからクリーンルームを選択します。
- 右側のペインの [出力 ] で、[ カタログの作成 ] をクリックします。
- 「出力カタログ名 」を入力するか、デフォルトの「
<clean-room-name>_output」を受け入れます。
出力カタログが [カタログエクスプローラ] の [Catalog ] ペインの [Shared catalog] リストに表示されます。参加する各クリーンルームは、メタストアに 1 つの共有出力カタログを持つことができます。
コンピュートの要件
出力テーブルに対するクエリには、サーバレス コンピュートが必要です。 サーバレスコンピュートへの接続を参照してください。
出力テーブルの読み取りに必要なパーミッション
出力テーブルを作成したノートブックを実行したユーザーと、クリーンルームの所有者は、デフォルトによって出力テーブルを読み取って管理する権限を持っています。 他のすべてのユーザーには、次のアクセス許可が付与されている必要があります。
SELECTテーブルの上にUSE CATALOG出力カタログUSE SCHEMA出力スキーマ
ノートブックを実行する
出力カタログに共有出力テーブルを生成するには、クリーンルームへのアクセス権を持つユーザーがノートブックを実行する必要があります。 クリーンルームの「実行 ノートブック」を参照してください。ノートブックを実行するたびに、新しい出力スキーマとテーブルが作成されます。
Lakeflow ジョブを使用してノートブックを実行し、出力テーブルでタスクを実行できるため、複雑なワークフローが可能になります。「Lakeflow ジョブを使用して クリーンルーム ノートブックを実行する」を参照してください。
出力テーブルの検索と表示
出力テーブルを作成するノートブックを実行したユーザーは、 クリーンルーム UI のノートブック 実行履歴ページと実行詳細ページで出力テーブルへのリンクを見つけることができます。 どちらの場合も、リンクは [出力スキーマ ] フィールドにあります。 クリーンルーム・ノートブックの実行のモニターを参照してください。
実行履歴:

実行の詳細:

出力カタログは、カタログエクスプローラ の [Catalog ] ペインの [Shared catalog] リストでも確認できます。
制限
出力テーブルの概要と開始する前ににリストされている要件に加えて、出力テーブルには次の制限があります。
- 出力テーブルは、出力テーブル機能がリリースされた後にクリーンルームが作成された場合にのみサポートされます。
- テーブルのみがサポートされています。 たとえば、ボリュームとビューはそうではありません。
- 各ノートブックがサポートできる出力テーブルの数には制限があります。リソースの制限を参照してください。