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