外部システムを使用した Databricks データへのアクセス

この記事では、Databricks によって管理および管理されるデータを他のシステムで使用できるようにするための機能の概要と推奨事項について説明します。

これらのパターンは、組織が信頼できるツールやシステムを Databricks データに統合する必要があるシナリオに焦点を当てています。 組織外でのデータ共有に関するガイダンスをお探しの場合は、「 データと AI 資産を他の組織のユーザーと安全に共有する」を参照してください。

Databricks はどのような外部アクセスをサポートしていますか?

Databricks では、Unity Catalog を使用してすべてのデータ資産を管理することをお勧めします。

次の表は、Unity Catalog オブジェクトのサポート形式とアクセス パターンの概要を示しています。

Unity Catalog オブジェクト

サポートされている形式

アクセスパターン

マネージドテーブル

Delta Lake、 Iceberg

クレデンシャルの自動販売、Iceberg RESTカタログ、Delta Sharing

外部テーブル

Delta Lake

資格情報の自動販売、Iceberg RESTカタログ、Delta Sharing、クラウドURI

外部テーブル

CSV、 JSON、 Avro、 Parquet、 ORC、 テキスト

クラウド URI

外部ボリューム

すべてのデータタイプ

クラウド URI

注:

Iceberg サポートは、Databricks が Delta Lake を使用して書き込んだが、Iceberg 読み取り (UniForm) が有効になっているテーブルを示しています。

これらの Unity Catalog オブジェクトの詳細については、以下を参照してください。

Unity Catalog 資格情報の自動販売

Unity Catalog 資格情報の自動販売機を使用すると、ユーザーは、Databricks によって管理されるデータに対する特権を継承するように外部クライアントを構成できます。 「外部システム アクセスのための Unity Catalog 資格情報の販売」を参照してください。

Iceberg クライアントでテーブルを読み取る

Databricks は、Unity Catalog に登録されたテーブルに対する読み取り専用サポートを Iceberg クライアントに提供します。 サポートされているクライアントには、Apache Spark、Apache Flink、Trino、Snowflake が含まれます。 「 Iceberg クライアントから Databricks テーブルを読み取る」を参照してください。

ドメイン間での読み取り専用テーブルの共有

Delta Sharing を使用して、ドメインおよびサポートされているシステム間で、管理された Delta テーブルまたは外部の Delta テーブルへの読み取り専用アクセス権を付与できます。 Delta Sharing テーブルのゼロコピー読み取りをサポートするソフトウェア・システムには、SAP、Amperity、Oracle などがあります。 「 データと AI アセットを他の組織のユーザーと安全に共有する」を参照してください。

注:

Delta Sharing を使用して、顧客またはパートナーに読み取り専用アクセスを許可することもできます。 Delta Sharing は、 Databricks Marketplace を使用して共有されるデータもサポートします。

外部 Delta テーブルの読み取りと書き込み

Delta Lake によってサポートされる Unity Catalog の外部テーブルには、クラウド オブジェクト ストレージの URI と資格情報を使用して、外部の Delta Lake リーダーおよびライター クライアントからアクセスできます。

Unity Catalog外部システムからクラウド オブジェクト ストレージに対して直接実行される読み取りと書き込みを管理しないため、データポリシーがDatabricks外部で尊重されるように、クラウド アカウントで追加のポリシーと資格情報を構成する必要があります。

データ破損やデータ損失の問題を回避するために、Databricks では、S3 に格納されている同じ Delta テーブルを異なるワークスペースまたはクライアントから変更しないことをお勧めします。

複数のクライアントからの書き込みが必要な場合は、クラウドオブジェクトストレージにCloudflare R2を使用できます。 「Cloudflare R2 に接続するためのストレージ資格情報を作成する」を参照してください。

注:

Databricksドキュメントには、Databricks Runtimeバージョンとプラットフォーム機能に基づく制限事項と互換性に関する考慮事項がリストされています。クライアントがサポートするリーダーとライターのプロトコルとテーブル機能を確認する必要があります。 delta.io を参照してください。

外部テーブルを使用した Delta Lake 以外の表形式データへのアクセス

Unity Catalog の外部テーブルは、Parquet、ORC、CSV、JSON など、Delta Lake 以外の多くの形式をサポートしています。 外部テーブルは、テーブルの作成時に指定されたクラウド URI で指定されたクラウド オブジェクト ストレージの場所のディレクトリにすべてのデータ ファイルを格納します。 他のシステムは、クラウドオブジェクトストレージから直接これらのデータファイルにアクセスします。

Unity Catalog外部システムからクラウド オブジェクト ストレージに対して直接実行される読み取りと書き込みを管理しないため、データポリシーがDatabricks外部で尊重されるように、クラウド アカウントで追加のポリシーと資格情報を構成する必要があります。

複数のシステムから外部テーブルの読み取りと書き込みを行うと、Delta Lake 以外の形式に対してトランザクションの保証が提供されないため、一貫性の問題やデータの破損が発生する可能性があります。

Unity Catalog は、Delta Lake 以外の形式でサポートされる外部テーブルに書き込まれた新しいパーティションを取得しない場合があります。 Databricks では、外部システムによって書き込まれたすべてのデータ ファイルが Unity Catalog に登録されていることを確認するために、 MSCK REPAIR TABLE table_name を定期的に実行することをお勧めします。

外部ボリュームを使用した非表形式データへのアクセス

Databricks では、Databricks に加えて外部システムによって読み取りまたは書き込みされるテーブル形式以外のデータ ファイルを保存するには、外部ボリュームを使用することをお勧めします。 「Unity Catalogボリュームとは」を参照してください。

Unity Catalog外部システムからクラウド オブジェクト ストレージに対して直接実行される読み取りと書き込みを管理しないため、データポリシーがDatabricks外部で尊重されるように、クラウド アカウントで追加のポリシーと資格情報を構成する必要があります。

Volumes には、ボリュームからファイルを取得したり、ボリュームにファイルを配置したりするための APIsU、SDK、およびその他のツールが用意されています。 ボリューム内のファイルの管理を参照してください。

注:

Delta Sharing を使用すると、他の Databricks アカウントとボリュームを共有できますが、外部システムと統合することはできません。