テーブルとは

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

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

Delta Lake を使用しないテーブルを Databricks に作成できます。 これらのテーブルでは、Delta テーブルのトランザクションの保証や最適化されたパフォーマンスは提供されません。

テーブルにはデータの行が格納されます。 テーブルはスキーマに存在し、データの行を含みます。 次の例は、5 人の従業員に関するデータを含むテーブル prod.people_ops_employeesを示しています。 メタデータは Unity Catalog に登録され、データはクラウド ストレージに格納されます。

従業員データを含むテーブルの例

基本的なテーブルのアクセス許可

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

Unity Catalog のアクセス許可の詳細については、「 Unity Catalog での特権の管理」を参照してください。

Unity Catalog のテーブル

Unity Catalog では、次の表に示すように、テーブルは 3 レベルの名前空間 (catalog.schema.table) の 3 番目のレベルにあります。 Unity Catalog の外部テーブルは Delta テーブルにすることができますが、必須ではありません。

Unity Catalog オブジェクト モデル図、テーブルに焦点を当てて

Delta テーブル

Delta Lakeによってサポートされる Delta テーブルは、クラウド オブジェクト ストレージ内のファイルのディレクトリとしてデータを格納し、カタログとスキーマ内のメタストアにテーブルのメタデータを登録します。Delta テーブルは Databricksのデフォルトであるため、特に断りのない限り、ほとんどのテーブルへの参照Deltaテーブルの動作について説明します。すべての Unity Catalog マネージドテーブルとストリーミング テーブルは Delta テーブルです。 Delta テーブルのしくみを参照してください。

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

マネージドテーブル

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

外部テーブル

外部テーブル ( アンマネージドテーブルとも呼ばれる) は、 Databricks の外部にある外部ストレージ システム (クラウド オブジェクト ストレージなど) に格納されたデータを参照します。 これらは、基になるデータ ファイルの管理をメタストア登録から切り離します。 Unity Catalog は、Delta を含むいくつかの形式の外部テーブルをサポートしています。 Unity Catalog の外部テーブルは、外部システムで読み取り可能な一般的な形式を使用してデータ ファイルを格納できます。 外部テーブルの操作を参照してください。

ストリーミング テーブル

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

ストリーミング テーブルは、Delta Live Tables パイプラインの一部として定義できます。 「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 とは」を参照してください。