既定では、具体化されたビューとストリーミング テーブルは外部システムからアクセスできません。 Azure Databricksには、Delta Lake または Iceberg クライアントでデータセットを使用できるようにする 2 つの機能が用意されています。
外部データ アクセス (パブリック プレビュー) - パイプライン データセットの 外部データ アクセス を有効にすると、データセットのメタデータのコピーが作成されます。これにより、クライアントは完全なデータ コピーや個別の更新スケジュールを必要とせずに、Unity カタログまたは Iceberg REST API を使用できます。 クライアントはカタログ REST API を使用する必要があり、Delta 4.0.0 以降または Iceberg v3 仕様をサポートする必要があります。
パイプライン データセットの外部データ アクセスの詳細については、「 ストリーミング テーブルと具体化されたビューへの外部データ アクセスを有効にする」を参照してください。
互換モード (パブリック プレビュー) - データセットの 互換モード を有効にすると、選択した場所にデータの読み取り専用バージョンが生成されます。これは、テーブルを更新するときに更新する必要があります。 互換性バージョンには、Delta Lake 形式と Iceberg 形式の両方の v1 メタデータとデータの読み取り専用コピーが含まれており、データ更新の遅延とデータコピーコストを犠牲にして、より広範なクライアント (API を介してテーブル データを直接読み取る必要があるクライアントを含む) にアクセスできます。
互換モードの詳細については、「 互換モード」を参照してください。
外部クライアントが REST API をサポートしている場合は、Azure Databricks外部データ アクセスを使用して、それらのクライアントに具体化されたビューまたはストリーミング テーブルへのアクセス権を付与することをお勧めします。 より広い範囲のクライアント 、特に古いクライアント、およびその他の Unity カタログマネージド テーブルの場合は、互換モードを使用します。
| 能力 | 外部データ アクセス | 互換モード |
|---|---|---|
| データコピー | データ コピーは必要ありません。 | データのコピーが必要です。 |
| 一貫性 | 書き込み後の読み取り一貫性。 外部クライアントは、データセットで変更が発生するとすぐに表示されます。 | 更新はスケジュールに従って行われます。 既定では、互換性テーブルは 1 時間ごとに更新されます。 これは、ソース テーブルへの変更の直後に更新するように設定できますが、データ コピー時間によって遅延が発生します。 |
| アクセス | "モダン" REST API アクセスが必要です。 Delta 4.0.0 以降のカタログ API または Iceberg v3 仕様 API をサポートします (削除ベクターのサポートが必要)。 | すべての Delta Lake または Iceberg クライアントと互換性があります。 |
| 単一のテーブル オブジェクト | 具体化されたビューとストリーミング テーブルは、外部クライアントに対する元のデータセットと同じ名前のマネージド テーブルとして表示されます。 | 互換性テーブルは、外部クライアントの新しい場所に新しいテーブルとして表示されます。 |
| テーブルの種類のサポート | Lakeflow Spark 宣言パイプラインによって管理される具体化されたビューとストリーミング テーブルをサポートします。 | Lakeflow Spark 宣言パイプラインまたはスタンドアロンのどちらで管理されているかに関係なく、具体化されたビューとストリーミング テーブル、およびその他の Unity カタログマネージド テーブルをサポートします。 |
| Cost | 外部に公開されたメタデータを維持するコストは、具体化されたビューまたはストリーミング テーブルの更新コストの一部です。 これは通常、更新のコストと時間の% 1 以下です。 | 互換モードのコストの大部分は、レガシ データを新しい場所に転送するコストです。 |
その他のリソース
- 外部システムから Databricks データに一般的にアクセスする方法については、外部システム を使用した Databricks データへのアクセスに関するページを参照してください。
- ストリーミング テーブルと具体化されたビューへの外部データ アクセスを有効にする
- 互換モード