外部システムを使用したマテリアライズドビューとストリーミングテーブルへのアクセス
デフォルトでは、マテリアライズドビューおよびストリーミングテーブルは外部システムからアクセスできません。Databricks は、Delta Lake または Iceberg クライアントでデータセットを利用できるようにする2つの機能を提供します。
-
外部データアクセス (パブリックプレビュー)—パイプラインのデータセットに対して 外部データアクセス を有効にすると、データセットのメタデータのコピーが作成され、クライアントは完全なデータコピーや個別の更新スケジュールを必要とせずに、Unity CatalogまたはIceberg REST APIsを使用できます。クライアントはカタログ REST APIs を使用する必要があり、Delta 4.0.0 以降、または Iceberg v3 仕様のいずれかをサポートする必要があります。
パイプライン データセットの外部データ アクセスの詳細については、「ストリーミングテーブルとマテリアライズドビューへの外部データ アクセスを有効にする」を参照してください。
-
「 互換モード 」(パブリック プレビュー) - データセットに対して 互換モード を有効にすると、選択した場所にデータの読み取り専用バージョンが生成され、テーブルが更新されたときに更新する必要があります。互換性バージョンには、Delta LakeおよびIcebergフォーマットの両方のv1メタデータと、データの読み取り専用コピーが含まれており、データ更新の遅延とデータコピーのコストがかかるものの、(APIを介さずにテーブルデータを直接読み取る必要があるクライアントを含む)幅広いクライアントからのアクセスが可能になります。
互換性モードの詳細については、互換性モードを参照してください。
外部クライアントがREST APIをサポートしている場合、Databricksは、それらのクライアントがマテリアライズドビューまたはストリーミングテーブルにアクセスできるように、外部データアクセスを使用することを推奨しています。より広範なクライアント、特に古いクライアント、およびその他のUnity Catalog マネージドテーブルには、互換モードを使用します。
機能 | 外部データアクセス | 互換モード |
|---|---|---|
データコピー | データコピーは不要です。 | データコピーが必要です。 |
整合性 | 書き込み後読み取り一貫性。外部クライアントは、データセットで変更が発生するとすぐにそれを確認できます。 | 更新はスケジュールに基づいて行われます。デフォルトでは、互換性テーブルは1時間ごとに更新されます。これは、ソーステーブルの変更後、すぐに更新されるように設定可能ですが、データコピー時間により遅延が発生します。 |
アクセス | 「modern REST API アクセス」が必要です。Delta 4.0.0 以上のカタログ APIs または Iceberg v3 仕様 APIs をサポートしています(削除ベクトルのサポートが必要です)。 | すべての Delta Lake または Iceberg クライアントと互換性があります。 |
単一テーブルオブジェクト | マテリアライズドビューとストリーミングテーブルは、元のデータセットと同じ名前で外部クライアントにマネージドテーブルとして表示されます。 | 互換性テーブルは、外部クライアントからは新しいロケーションに新しいテーブルとして表示されます。 |
テーブルタイプのサポート | Lakeflow Spark宣言型パイプラインによって管理されるマテリアライズドビューとストリーミングテーブルをサポートします。 | Lakeflow Spark宣言型パイプラインによって管理されているかスタンドアロンであるかに関わらず、マテリアライズドビューとストリーミングテーブル、およびその他のUnity Catalogマネージドテーブルをサポートします。 |
コスト | 外部向けメタデータの維持にかかるコストは、マテリアライズドビューまたはストリーミングテーブルの更新コストの一部です。これは通常、更新にかかるコストと時間の1%未満です。 | 互換モードにかかる費用の大半は、レガシーデータを新しい場所へ転送する費用です。 |
次のステップ
- 外部システムからの Databricks データへの一般的なアクセスについては、外部システムを使用した Databricks データへのアクセスを参照してください。
- ストリーミングテーブルとマテリアライズドビューへの外部データアクセスの有効化
- 互換 Mode