このページでは、Azure Databricks によって管理および管理されるデータを他のシステムで使用できるようにするための機能と推奨事項の概要について説明します。
これらのパターンでは、信頼できるツールまたはシステムを Azure Databricks データに統合することが必要な組織のシナリオが想定されています。 組織外へのデータ共有に関するガイダンスについては、「データと AI アセットを他の組織のユーザーと安全に共有する」を参照してください。
Azure Databricks でサポートされている外部アクセスの形式
Azure Databricks では、Unity Catalog を使用してすべてのデータ資産を管理することが推奨されています。 Unity Catalog では、 Unity REST API を使用した Delta Lake クライアントと、 Iceberg REST カタログを使用した Apache Iceberg クライアントとの統合が提供されます。 サポートされている統合の完全な一覧については、 Unity カタログの統合を参照してください。
Unity Catalog オブジェクト用にサポートされている形式とアクセス パターンの概要を以下の表に示します。
| Unity Catalog オブジェクト | サポートされている形式 | アクセス パターン |
|---|---|---|
| マネージド テーブル | Delta Lake、Iceberg | Unity REST API、Iceberg REST カタログ、Delta Sharing |
| 外部テーブル | Delta Lake | Unity REST API、Iceberg REST カタログ、Delta Sharing、クラウド URI |
| 外部テーブル | CSV、JSON、Avro、Parquet、ORC、テキスト | Unity REST API、クラウド URI |
| 外部ボリューム | すべてのデータ タイプ | クラウド URI |
| 外部テーブル* | Delta Lake、Iceberg | Unity REST API、Iceberg REST カタログ (プレビュー)、デルタ共有 |
| 外部テーブル* | CSV、JSON、Avro、Parquet、ORC、テキスト | Unity REST API、クラウド URI |
* カタログ フェデレーションを使用してフェデレーションされた外部テーブルのみがサポートされます。 外部テーブルの外部エンジンからの新しい読み取りを保証するために、お客様は Lakeflow ジョブを使用してメタデータを定期的に更新できます。
注
Iceberg のサポートとは、Azure Databricks によって Delta Lake 形式で書き込まれたテーブルについて、Iceberg での読み取り (UniForm) を有効化できることを示しています。
これらの Unity Catalog オブジェクトの詳細については、以下を参照してください。
- Azure Databricks for Delta Lake と Apache Iceberg の Unity カタログ マネージド テーブル
- 外部テーブルの扱い
- Unity Catalog ボリュームとは
Unity Catalog 資格情報ベンディング
Unity Catalog 資格情報ベンディングを使用すると、Azure Databricks 管理下のデータに対する特権を継承するように外部クライアントを構成できます。 Iceberg クライアントと Delta クライアントは、どちらも資格情報ベンディングをサポートできます。 「外部システム アクセス向けの Unity Catalog 資格情報ベンディング」を参照してください。
Delta クライアントを使用したテーブルの読み取り
サポートされている Delta クライアントから、Unity REST API を使用して、Delta Lake 対応の Unity Catalog マネージド テーブルや外部テーブルを読み取ります。 「Delta クライアントで Databricks テーブルを読み取る」を参照してください。
Iceberg クライアントでテーブルを読み取る
Azure Databricks は、Unity Catalog に登録されているテーブルについて、Iceberg クライアントからの読み取り専用アクセスをサポートしています。 サポート対象クライアントとしては、Apache Spark、Apache Flink、Trino、Snowflake があります。 Apache Iceberg クライアントからの Azure Databricks テーブルへのアクセスに関するページを参照してください。
読み取り専用テーブルを複数のドメイン間で共有する
Delta Sharing を使用すると、異なるドメインやサポートされているシステムに対し、Delta のマネージド テーブルや外部テーブルへの読み取り専用アクセス権を付与できます。 Delta Sharing テーブルのゼロコピー読み取りをサポートするソフトウェア システムとしては、SAP、Amperity、Oracle があります。 「データと AI 資産を他組織のユーザーと安全に共有する」を参照してください。
注
Delta Sharing は、顧客またはパートナーに読み取り専用アクセスを許可する場合にも使用できます。 Delta Sharing は、Databricks Marketplace によって共有されたデータもサポートしています。
外部Deltaテーブルの作成、読み取り、書き込み
Von Bedeutung
外部 Delta Lake クライアントからの Unity カタログ外部テーブルの作成は 、パブリック プレビュー段階です。
クラウド オブジェクト ストレージ URI と資格情報を使用して、Delta Lake によってサポートされる Unity カタログの外部テーブルを、外部 Delta Lake クライアントから作成、読み取り、および書き込むことができます。 テーブルを作成するには、「 外部クライアントからの外部デルタ テーブルの作成」を参照してください。
Unity Catalog は、外部システムからクラウド オブジェクト ストレージに対して直接実行される読み取りと書き込みにガバナンスを適用できません。Azure Databricks の外部にデータ ガバナンス ポリシーを適用するには、クラウド アカウント内に追加のポリシーと資格情報を構成する必要があります。
注
Azure Databricks のドキュメントには、Databricks Runtime のバージョンとプラットフォーム機能に基づく制限事項と互換性に関する考慮事項のリストが記載されています。 お使いのクライアントで、どのリーダーおよびライター プロトコルとテーブル機能がサポートされているかを確認する必要があります。 delta.io を参照してください。
Delta Lake 以外の、外部テーブルを使用する表形式データへのアクセス
Unity Catalog 外部テーブルでサポートされている形式は多数あり、Delta Lake 以外にも、Parquet、ORC、CSV、JSON を使用できます。 外部テーブルでは、テーブル作成時に指定されたクラウド URI に基づき、クラウド オブジェクト ストレージ上の場所にあるディレクトリにすべてのデータ ファイルが格納されます。 他のシステムは、クラウド オブジェクト ストレージから直接それらのデータ ファイルにアクセスします。
Unity Catalog は、外部システムからクラウド オブジェクト ストレージに対して直接実行される読み取りと書き込みにガバナンスを適用できません。Azure Databricks の外部にデータ ガバナンス ポリシーを適用するには、クラウド アカウント内に追加のポリシーと資格情報を構成する必要があります。
Delta Lake 以外の形式にはトランザクションを保証する機能がないため、外部テーブルに対して複数のシステムから読み取りや書き込みを行うことは、一貫性の問題やデータ破損の原因になります。
Delta Lake 以外の形式による外部テーブルに書き込まれた新しいパーティションは、Unity Catalog に反映されない場合があります。 外部システムから書き込まれるすべてのデータ ファイルが Unity Catalog に登録された状態を保つために、Databricks では、MSCK REPAIR TABLE table_name を定期的に実行することを推奨しています。
外部ボリュームを使用する、表形式ではないデータへのアクセス
Azure Databricks だけでなく外部システムからも読み取りや書き込みが行われる、表形式ではないデータ ファイルについて、Databricks では、外部ボリュームを使用して格納することを推奨しています。 「Unity Catalog ボリュームとは」を参照してください。
Unity Catalog は、外部システムからクラウド オブジェクト ストレージに対して直接実行される読み取りと書き込みにガバナンスを適用できません。Azure Databricks の外部にデータ ガバナンス ポリシーを適用するには、クラウド アカウント内に追加のポリシーと資格情報を構成する必要があります。
ボリュームについては、ボリュームからのファイル取得やボリュームへのファイル配置を行うための API、SDK、その他のツールが提供されています。 Unity カタログ ボリューム内のファイルの操作を参照してください。
注
Delta Sharing では、ボリュームを他の Azure Databricks アカウントと共用することは可能ですが、外部システムとの統合はできません。