Databricks の Delta テーブル
Delta Lake によってサポートされるテーブルは、 Delta テーブル と呼ばれます。Delta テーブルは、データをクラウド・オブジェクト・ストレージ内のファイルのディレクトリーとして保管し、そのメタデータをカタログおよびスキーマ内のメタストアに登録します。Delta Lake は Databricksのデフォルト テーブル形式であるため、特に明記されていない限り、ほとんどの "テーブル" への参照は Delta テーブルを参照します。 Databricks の Delta Lake とはを参照してください。
Databricks では、Delta テーブルを操作するときに、ファイル パスではなく完全修飾テーブル名を使用することをお勧めします。Delta Lake を使用しないテーブルを作成することもできますが、それらのテーブルには Delta テーブルのトランザクション保証とパフォーマンスの最適化がありません。
次の表では、Databricks で発生する可能性のある一般的な Delta テーブルの種類について説明します。
テーブルの種類 | 説明 |
|---|---|
Unity Catalog マネージドテーブル | 常に Delta Lakeが使用されます。Databricksのデフォルトおよび推奨されるテーブル タイプです。多くの組み込み最適化を提供します。 |
Unity Catalog 外部テーブル | 必要に応じて、Delta Lake によってサポートされます。外部の Delta Lake クライアントとの一部の従来の統合パターンをサポートします。 |
Unity Catalog フォーリンテーブル | フォーリンカタログによっては、 Delta Lakeが使用される場合があります。 Delta Lakeを用いたフォーリンテーブルは、Unity Catalogマネージドテーブルが持つ多くの最適化機能を有していません。 |
ストリーミングテーブル | Lakeflow宣言型パイプライン データセットでは、インクリメンタル処理のための追加フローや |
Hive metastore テーブル | 内部または外部のフェデレーテッドHiveメタストア内の外部テーブル、およびレガシーワークスペースHiveメタストア内のテーブル。マネージドテーブルと外部テーブルの両方のHiveメタストアテーブルは、オプションでDelta Lakeを用いることができます。 |
マテリアライズドビュー | マネージドフローロジックを使用してクエリの結果をマテリアライズする、Delta LakeによってバックアップされたLakeflow 宣言型パイプラインデータセット。 |
レガシ テーブル タイプ
次のレガシ テーブル タイプは下位互換性のためにサポートされていますが、新しい開発には推奨されません。
Hive テーブル
Hive テーブルは、レガシーパターン (レガシー Hive metastoreパターン、 Hive SerDe コーデック、 Hive SQL 構文など) を使用して実装されたテーブルを示しています。
レガシ Hive metastore を使用して登録されたテーブルは、レガシ DBFSルートに (デフォルト別) にデータを格納します。 Databricks では、すべてのテーブルを従来の HMS から Unity Catalog に移行することをお勧めします。レガシーHive metastoreのデータベースオブジェクトを参照してください。
必要に応じて、 Hive metastore を Unity Catalogにフェデレートできます。 Hive metastoreフェデレーション: Hive metastoreに登録されたテーブルを管理するためのUnity Catalog の有効化を参照してください。
Apache SparkはHiveテーブルの登録とクエリをサポートしていますが、これらのコーデックはDatabricks用に最適化されていません。Databricks では、外部システムによって書き込まれたデータに対するクエリをサポートするためだけに Hive テーブルを登録することをお勧めします。Hive テーブル (レガシ)を参照してください。
ライブテーブル
ライブ テーブル という用語は、現在 マテリアライズドビュー として実装されている機能の以前の実装を指します。ライブ テーブルを参照するレガシ コードは、マテリアライズドビューの構文を使用するように更新する必要があります。 Lakeflow宣言型パイプラインとマテリアライズドビュー を参照してください。