メインコンテンツまでスキップ

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

外部システムに依存

データが削除されました DROP TABLE

はい

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宣言型パイプラインマテリアライズドビューを参照してください。