Databricks Unity Catalog を OneLake と統合する
このシナリオでは、ショートカットを使用して Unity Catalog の外部 Delta テーブルを OneLake に統合する方法を示します。 このチュートリアルを完了すると、Unity Catalog の外部 Delta テーブルを Microsoft Fabric Lakehouse と自動的に同期できるようになります。
前提条件
接続する前に、以下が必要になります。
- Fabric ワークスペース。
- ワークスペースの Fabric Lakehouse。
- Azure Databricks ワークスペース内に作成された外部 Unity Catalog Delta テーブル。
クラウド ストレージ接続を設定する
まず、Unity Catalog テーブルが使用している Azure Data Lake Storage Gen2 (ADLS Gen2) 内の保存場所を調べます。 このクラウド ストレージ接続は、OneLake ショートカットによって使用されます。 適切な Unity Catalog の保存場所へのクラウド接続を作成する方法
Unity Catalog テーブルが使用するクラウド ストレージ接続を作成します。 ADLS Gen2 接続を設定する方法を参照してください。
接続を作成したら、[設定] >[接続とゲートウェイの管理]>[接続>設定] の順に選択し、接続 ID を取得します。
Note
ユーザーに対して ADLS Gen2 の外部ロケーション ストレージへの直接ストレージ レベル アクセス権を許可すると、Unity Catalog が付与するアクセス許可や管理する監査には適用されません。 直接アクセスは、監査、系列、アクセス制御やアクセス許可を含む Unity Catalog のその他のセキュリティ/監視機能をバイパスします。 お客様は、ADLS Gen2 を介して直接ストレージ アクセスを管理し、Fabric 経由でユーザーに適切なアクセス許可が付与されていることを確認する責任があります。 Databricks マネージド テーブルを格納するバケットに対し、直接ストレージ レベルの書き込みアクセス権限を許可するすべてのシナリオを回避してください。 元々 Unity Catalog が管理していたストレージを直接介してオブジェクトを変更、削除、進化させると、データが破損する可能性があります。
ノートブックを実行する
クラウド接続 ID を取得したら、次のように Unity Catalog テーブルを Fabric Lakehouse に統合します。
Fabric ワークスペースに同期ノートブックをインポートします。 このノートブック は、メタストアの特定カタログとスキーマからすべての Unity Catalog テーブル メタデータをエクスポートします。
Unity Catalog テーブルを統合するには、ノートブックの最初のセルにあるパラメーターを構成します。 PAT トークンで認証された Databricks API は、Unity Catalog テーブルのエクスポートに利用されます。 次のスニペットは、ソース (Unity Catalog) とエクスポート先 (OneLake) のパラメータを構成するために使用します。 これらは実際の値に置き換えてください。
# Databricks workspace dbx_workspace = "<databricks_workspace_url>" dbx_token = "<pat_token>" # Unity Catalog dbx_uc_catalog = "catalog1" dbx_uc_schemas = '["schema1", "schema2"]' # Fabric fab_workspace_id = "<workspace_id>" fab_lakehouse_id = "<lakehouse_id>" fab_shortcut_connection_id = "<connection_id>" # If True, UC table renames and deletes will be considered fab_consider_dbx_uc_table_changes = True
ノートブックのすべてのセルを実行し、ショートカットを使用して Unity Catalog Delta テーブルを OneLake に同期を開始します。 ノートブックが完了すると、Lakehouse、SQL 分析エンドポイント、セマンティック モデルで Unity Catalog Delta テーブルへのショートカットを利用できるようになります。
ノートブックをスケジュールする
手動で再同期/再実行せずに Unity Catalog Delta テーブルを OneLake に統合するためにノートブックを定期的な間隔で実行する場合、Fabric Data Factory 内のデータ パイプラインでノートブックをスケジュールするか、ノートブック アクティビティを利用できます。
後者のシナリオでは、データ パイプラインからパラメーターを渡す場合、ノートブックの最初のセルをトグル パラメーター セルとして指定し、パイプラインに適切なパラメーターを指定します。
その他の考慮事項
- 生産シナリオには、認証に Databricks OAuth を使用し、シークレットの管理に Azure Key Vault を使用することをお勧めします。 たとえば、MSSparkUtils の認証情報ユーティリティを使用し、キー コンテナのシークレットにアクセスできます。
- ノートブックは Unity Catalog の外部 Delta テーブルと動作します。 Unity Catalog テーブルに複数のクラウド 保存場所 (すなわち、複数の ADLS Gen2) を使用している場合、クラウド接続ごとにノートブックを個別に実行することをお勧めします。
- Unity Catalog マネージド Delta テーブル、ビュー、具体化されたビュー、ストリーミング テーブル、Delta 以外のテーブルはサポートされていません。
- 列の追加/削除などの Unity Catalog テーブル スキーマへの変更は、ショートカットに自動的に反映されます。 ただし、Unity Catalog テーブルの名前変更や削除などの一部の更新には、ノートブックの再同期/再実行が必要です。 これは
fab_consider_dbx_uc_table_changes
パラメーターによって考慮されます。 - シナリオを記述する場合、異なるコンピューティング エンジン間で同じストレージ レイヤーを使用すると、意図しない結果が生じる可能性があります。 さまざまな Apache Spark コンピューティング エンジンとランタイム バージョンを使用するときの影響を必ず把握してください。