テーブルとは

テーブルはスキーマ内に存在し、データ行を含みます。 Databricks で作成されたすべてのテーブルは、デフォルトで Delta Lake を使用します。 Delta Lake によってサポートされるテーブルは、Delta テーブルとも呼ばれます。

Deltaテーブルは、クラウド オブジェクト ストレージ内のファイルのディレクトリとしてデータを保存し、カタログとスキーマ内のメタストアにテーブル メタデータを登録します。 すべての Unity Catalog 管理テーブルとストリーミング テーブルは Delta テーブルです。 Unity Catalog の外部テーブルは Delta テーブルにすることができますが、必須ではありません。

Delta Lake を使用しないテーブルを Databricks 上に作成することも可能です。 これらのテーブルは、Delta テーブルのトランザクション保証や最適化されたパフォーマンスを提供しません。 Delta Lake 以外の形式を使用して、次のテーブル タイプを作成することもできます。

  • 外部テーブル。

  • 外部テーブル。

  • レガシーHive metastoreに登録されたテーブル。

Unity Catalog では、テーブルは 3 レベルの名前空間の 3 番目のレベル ( catalog.schema.table ) に配置されます。

Unity Catalogオブジェクト モデル図 (テーブルに重点)

Databricks テーブルの種類

Databricks では、次の種類のテーブルを使用できます。

マネージドテーブル

マネージド テーブルは、メタストアの登録と共に基になるデータ ファイルを管理します。 Databricks では、新しいテーブルを作成するときは常にマネージド テーブルを使用することをお勧めします。 Databricks でテーブルを作成する場合、Unity Catalog で管理されるテーブルがデフォルトになります。 彼らは常に Delta Lake を使用します。 「 マネージド テーブルの操作」を参照してください。

外部テーブル

外部テーブルは、 アンマネージド テーブルとも呼ばれ、基になるデータ ファイルの管理をメタストアの登録から切り離します。 Unity Catalog の外部テーブルは、外部システムで読み取り可能な共通形式を使用してデータ ファイルを保存できます。 「外部テーブルの操作」を参照してください。

Delta テーブル

Delta テーブルという用語は、Delta Lake によってサポートされるテーブルを表すために使用されます。 Delta テーブルは Databricks のデフォルトであるため、特に明記されていない限り、テーブルへの参照のほとんどは Delta テーブルの動作について説明しています。

Databricks では、ファイル パスではなく、完全修飾テーブル名を使用して Delta テーブルを操作することをお勧めします。

ストリーミングテーブル

ストリーミング テーブルは、主に増分データの処理に使用されるDeltaテーブルです。 ストリーミング テーブルへの更新のほとんどは、更新操作を通じて行われます。

を使用して にストリーミング テーブルを登録したり、Unity Catalog Databricks SQLDelta Live Tablesパイプラインの一部として定義したりできます。「Databricks SQL でストリーミング テーブルを使用してデータを読み込む」および「Delta Live Tables とは何ですか?」を参照してください。

外部テーブル

外部テーブルは、レイクハウスフェデレーションを通じてDatabricksに接続された外部システムに保存されているデータを表します。 外部テーブルは Databricks では読み取り専用です。 レイクハウスフェデレーションとは何かをご覧ください。

特徴量テーブル

DeltaUnity Catalogによって管理され、主キーを持つ テーブルはすべて特徴量テーブルです。低レイテンシのユースケースでは、オプションでオンラインFeature Storeを使用して特徴量テーブルを構成することもできます。 「ワークスペースFeature Storeでの機能の操作」を参照してください。

Hive テーブル (レガシー)

Hive テーブルは、Databricks 上の 2 つの異なる概念を表しますが、どちらもレガシー パターンであり、推奨されません。

レガシーHive metastoreを使用して登録されたテーブルは、デフォルトによってレガシーDBFSルートにデータを格納します。 Databricks では、すべてのテーブルを従来の HMS から Unity Catalog に移行することをお勧めします。 従来のHive metastore内のデータベース オブジェクトを参照してください。

Apache Spark Hiveテーブルの登録とクエリをサポートしていますが、これらのコーデックはDatabricks用に最適化されていません。 Databricks では、外部システムによって書き込まれたデータに対するクエリをサポートするためにのみ Hive テーブルを登録することを推奨しています。 Hive テーブル (レガシー)を参照してください。

ライブテーブル (非推奨)

ライブテーブルという用語は、現在マテリアライズドビューとして実装されている機能の以前の実装を指します。ライブ テーブルを参照するレガシ コードは、具体化されたビューの構文を使用するように更新する必要があります。 「Delta Live Tables とは何か?」および「Databricks SQL でマテリアライズド ビューを使用する」を参照してください。

基本的なテーブル権限

テーブルを作成するには、ユーザーはスキーマに対するCREATE TABLE権限とUSE SCHEMA権限、およびその親カタログに対するUSE CATALOG権限を持っている必要があります。テーブルをクエリするには、テーブルに対するSELECT権限、親スキーマに対するUSE SCHEMA権限、および親カタログに対するUSE CATALOG権限が必要です。

Unity Catalog の権限の詳細については、 「Unity Catalog での権限の管理」を参照してください。