Databricks Unity Catalogテーブルタイプ
Unity Catalog 、マネージド、外部、フォーリンテーブルという 3 つの主要なテーブル タイプをサポートしています。 それぞれのタイプは、データの保存、管理、統制方法が異なります。
マネージドテーブル
マネージドテーブルは、安心してお勧めできるテーブルタイプです。 Unity Catalog は、データのライフサイクル、保存場所、最適化を管理します。マネージドテーブルをドロップすると、メタデータと基礎となるデータ ファイルの両方が削除されます。
マネージドテーブルはDelta LakeまたはApache Icebergによってサポートされており、以下を提供します。
- 自動最適化によりストレージとコンピュートのコストを削減
- すべてのクライアントタイプでクエリパフォーマンスが高速化
- 自動テーブルメンテナンス
- オープンAPIsを介してDatabricks以外のクライアントに安全なアクセスを提供
- 最新のプラットフォーム機能への自動アップグレード
データ ファイルは、テーブルを含むスキーマまたはカタログに保存されます。Delta LakeおよびApache IcebergのDatabricksのUnity Catalogマネージドテーブルを参照してください。
外部テーブル
外部テーブル お客様が管理するクラウドオブジェクトストレージに保存されるデータ。 Unity Catalog はデータ アクセスを管理しますが、データのライフサイクル、最適化、またはストレージ レイアウトは管理しません。外部テーブルを削除すると、メタデータのみが削除され、基になるデータ ファイルは残ります。
Unity Catalog の外部テーブルは、Delta Lake 形式 (推奨) と CSV、JSON、AVRO、PARQUET、ORC、TEXT 形式をサポートしています。非Delta外部テーブルにはDelta Lakeのトランザクション保証とパフォーマンスの最適化がありません。
次の場合に外部テーブルを使用します。
- Unity Catalogマネージドテーブルに対応していない既存データを登録する
- 他の外部アクセスパターンをサポートしていない非Databricksクライアントからの直接データアクセスを提供する
「外部テーブルの操作」を参照してください。
フォーリンテーブル
フォーリンテーブル (フェデレーテッドテーブルとも呼ばれます) は、 Unity Catalog使用して登録されます。 外部システムはデータとメタデータを管理しますが、 Unity Catalogクエリ用にデータガバナンスを追加します。
Databricks 、登録するフォーリンテーブルの 2 つの方法をサポートしています。
- クエリフェデレーション : PostgreSQLやMySQLなどの外部データシステムへの安全なJDBC接続を使用します。
- カタログフェデレーション : 外部カタログを接続してファイルストレージ内のデータを直接クエリします
Delta Lakeがサポートするフォーリンテーブルには、 Unity Catalogマネージドテーブルで利用できる多くの最適化機能がありません。 本番運用ワークロードまたは頻繁にクエリされるデータセットの場合は、パフォーマンスを向上させるためにUnity Catalogマネージドテーブルに移行してください。 「フォーリンテーブルの使用」を参照してください。
テーブルタイプの比較
次の表は、3 つのテーブル タイプを比較したものです。
機能 | マネージドテーブル | 外部テーブル | フォーリンテーブル |
|---|---|---|---|
データライフサイクル管理 | Unity Catalog管理します | あなたが管理する | 外部システムが管理する |
ストレージロケーション | Unity Catalog管理します | 指定する | 外部システムが管理する |
自動最適化 | はい | 限定 | No |
サポートされている形式 | Delta Lake 、 Apache Iceberg | Delta Lake(推奨)、CSV、JSON、AVRO、PARQUET、ORC、TEXT | 外部システムに依存 |
データが削除されました | はい | No | No |
どのようなタスクにベストなのか | 本番運用ワークロード、頻繁にクエリされるデータ | レガシー統合、既存データ | 外部システムからの移行、一時アクセス |
その他のテーブルタイプ
Databricks は、特定のユースケース向けの特殊なテーブル タイプもサポートしています。
- ストリーミング テーブル : インクリメンタル処理ロジックを備えたDelta Lakeを利用したLakeFlow Spark宣言型パイプライン データセット
- マテリアライズド ビュー : マネージド フロー ロジックを使用してクエリ結果を具体化する、 Delta Lakeに裏付けられたLakeFlow Spark宣言型パイプライン データセット
レガシ テーブル タイプ
次のレガシー テーブル タイプは下位互換性のためにサポートされていますが、新規開発には推奨されません。
Hive テーブル
Hiveテーブルでは、従来のHive metastore 、 Hive SerDe コーデック、 Hive SQL構文などの従来のパターンが使用されます。 従来のHive metastoreを使用して登録されたテーブルは、従来のDBFSルートにデータを保存します。
すべてのテーブルを従来のHMSからUnity Catalogに移行します。 従来のHive metastore内のデータベース オブジェクトを参照してください。 オプションで、 Hive metastoreをUnity Catalogに統合できます。 Hive metastoreフェデレーション: Unity Catalogを有効にして、 Hive metastoreに登録されたテーブルを管理できるようにする」を参照してください。
Apache Spark 、 Hiveテーブルの登録とクエリをサポートしていますが、これらのコーデックはDatabricks用に最適化されていません。 登録するHiveテーブルは、外部システムによって書き込まれたデータに対するクエリのみをサポートします。 Hive テーブル (レガシー)を参照してください。
ライブテーブル
ライブ テーブル という用語は、現在 マテリアライズドビュー として利用できる機能の以前の実装を指します。 マテリアライズドビュー構文を使用するようにライブ テーブルを参照するレガシー コードを更新します。 LakeFlow Spark宣言型パイプラインとマテリアライズドビューを参照してください。