このページでは、Azure Databricksによって管理および管理されるデータを外部システムで使用できるようにするための機能と推奨事項の概要について説明します。
これらのパターンは、信頼できるツールやシステムをAzure Databricksに統合し、データを活用する必要があるシナリオに焦点を当てています。 組織外でのデータ共有に関するガイダンスをお探しの場合は、「 データと AI 資産を安全に共有する」を参照してください。
Azure Databricksはどのような外部アクセスをサポートしていますか?
Azure Databricksでは、Unity カタログを使用してすべてのデータ資産を管理することをお勧めします。 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 ジョブを使用してメタデータを定期的に更新できます。
これらの Unity Catalog オブジェクトの詳細については、以下を参照してください。
- Azure Databricks の Unity カタログマネージド テーブル(Delta Lake と Apache Iceberg 用)
- 外部テーブルの扱い
- Unity Catalog ボリュームとは
Unity Catalog 資格情報ベンディング
Unity カタログ資格情報の自動販売機を使用すると、ユーザーは、Azure Databricksによって管理されるデータに対する特権を継承するように外部クライアントを構成できます。 Iceberg クライアントと Delta クライアントは、どちらも資格情報ベンディングをサポートできます。 「外部システム アクセス向けの Unity Catalog 資格情報ベンディング」を参照してください。
Delta クライアントを使用してテーブルにアクセスする
Unity REST API を使用して、サポートされている Delta クライアントから Delta Lake によってサポートされる Unity カタログのマネージド テーブルと外部テーブルの読み取り、書き込み、作成を行います。 デルタ クライアントからの Databricks テーブルへのアクセスを参照してください。
Von Bedeutung
デルタ クライアントから Unity カタログのマネージド テーブルを作成して書き込む方法は ベータ版です。
外部テーブルの場合、Unity Catalog は外部システムからクラウド オブジェクト ストレージに対して直接実行される読み取りと書き込みを管理しないため、データ ガバナンス ポリシーがAzure Databricks外で確実に尊重されるように、クラウド アカウントで追加のポリシーと資格情報を構成する必要があります。
注
Azure Databricksドキュメントでは、Databricks ランタイムのバージョンとプラットフォームの機能に基づく制限事項と互換性に関する考慮事項を示します。 お使いのクライアントで、どのリーダーおよびライター プロトコルとテーブル機能がサポートされているかを確認する必要があります。 delta.io を参照してください。
Iceberg クライアントを使用してテーブルにアクセスする
Azure Databricksは、Unity カタログに登録されたテーブルの読み取り、書き込み、作成のサポートを Iceberg クライアントに提供します。 サポート対象クライアントとしては、Apache Spark、Apache Flink、Trino、Snowflake があります。 Apache Iceberg クライアントからの Access Azure Databricks テーブルを参照してください。
読み取り専用テーブルを複数のドメイン間で共有する
Delta Sharing を使用すると、異なるドメインやサポートされているシステムに対し、Delta のマネージド テーブルや外部テーブルへの読み取り専用アクセス権を付与できます。 Delta Sharing テーブルのゼロコピー読み取りをサポートするソフトウェア システムとしては、SAP、Amperity、Oracle があります。 「データと AI 資産を安全に共有する」を参照してください。
注
Delta Sharing は、顧客またはパートナーに読み取り専用アクセスを許可する場合にも使用できます。 Delta Sharing は、Databricks Marketplace によって共有されたデータもサポートしています。
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 を定期的に実行することを推奨しています。
外部ボリュームを使用する、表形式ではないデータへのアクセス
Databricks では、外部ボリュームを使用して、Azure Databricksに加えて外部システムによって読み取りまたは書き込まれた表形式以外のデータ ファイルを格納することをお勧めします。 「Unity Catalog ボリュームとは」を参照してください。
Unity Catalog は、外部システムからクラウド オブジェクト ストレージに対して直接実行される読み取りと書き込みを管理しないため、データ ガバナンス ポリシーがAzure Databricks外で確実に尊重されるように、クラウド アカウントで追加のポリシーと資格情報を構成する必要があります。
ボリュームについては、ボリュームからのファイル取得やボリュームへのファイル配置を行うための API、SDK、その他のツールが提供されています。 Unity カタログ ボリューム内のファイルの操作を参照してください。
注
Delta Sharingを使用すると、ボリュームを他のAzure Databricksアカウントと共有できますが、外部システムと統合することはできません。