テーブルとは?

テーブルはスキーマ内にあり、データ行が含まれています。 Azure Databricks で作成されたすべてのテーブルでは、既定で Delta Lake が使用されます。 Delta Lake によってサポートされるテーブルは "Delta テーブル" とも呼ばれます。

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

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

  • 外部テーブル。
  • 外部テーブル。
  • レガシ Hive メタストアに登録されたテーブル。

Unity Catalog の場合、3 レベルある名前空間 (catalog.schema.table) の 3 番目のレベルにテーブルがあります。

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

Azure Databricks テーブルの種類

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

マネージド テーブル

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

外部テーブル

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

Delta テーブル

"Delta テーブル" という用語は、Delta Lake によってサポートされるテーブルを表すために使用されます。 Azure Databricks 上では Delta テーブルが既定値であるため、特に明記されていない限り、テーブルに関するほとんどの記述は Delta テーブルの動作を説明するものです。

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

ストリーミング テーブル

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

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

外部テーブル

外部テーブルとは、Lakehouse Federation を介して Azure Databricks に接続されている外部システムに格納されているデータを表します。 Azure Databricks 上では、外部テーブルは読み取り専用です。 「Lakehouse フェデレーションとは」をご覧ください。

特徴テーブル

Unity Catalog によって管理され、主キーを持つ Delta テーブルはすべて特徴量テーブルです。 必要に応じて、短い待機時間のユース ケース向けにオンラインの Feature Store を使用して特徴量テーブルを構成できます。 「ワークスペース特徴量ストア内の特徴量テーブルを操作する」を参照してください。

Hive テーブル (レガシ)

Hive テーブルは Azure Databricks に関する 2 種類の概念を記述するものですが、いずれもレガシ パターンであり、推奨されません。

レガシ Hive メタストアを使用して登録されたテーブルには、既定でレガシ DBFS ルートにデータが格納されます。 Databricks では、すべてのテーブルをレガシ HMS から Unity Catalog に移行することを推奨しています。 「レガシ Hive メタストア内のデータベース オブジェクト」を参照してください。

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

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

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

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

テーブルを作成するには、スキーマに対する CREATE TABLEUSE SCHEMA のアクセス許可と、その親カタログに対する USE CATALOG アクセス許可がユーザーに必要です。 ユーザーがテーブルのクエリを実行するには、テーブルに対する SELECT アクセス許可、その親スキーマに対する USE SCHEMA アクセス許可、およびその親カタログに対する USE CATALOG アクセス許可が必要です。

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