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

Databricks テーブルの概念

Databricks テーブルはスキーマに存在し、データの行を含みます。Databricks で登録されるデフォルトテーブルタイプは、マネージドテーブルUnity Catalogです。

次の例は、5 人の従業員に関するデータを含む prod.people_ops_employees という名前のマネージドテーブルを示しています。 マネージドテーブルとして、データファイルはクラウドストレージ内の Unity Catalogの管理されたストレージの場所に保存されます。

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

ストレージ形式

Databricks のテーブル型は、データの所有方法とアクセス方法を定義します。これとは別に、ストレージ形式は、データがディスク上で物理的に構造化され、追跡される方法を定義します。

Databricks では、次の 2 つの主要なオープン テーブル ストレージ形式がサポートされています。

  • Delta Lake は、Databricksの managed と 外部テーブル のデフォルトのストレージ形式です。
  • Apache Iceberg は、Databricksの managed テーブルとフォーリンテーブルでサポートされています。この形式は、Iceberg エコシステムと統合する場合に役立ちます。

これらの形式は、メタデータを追跡し、アトミック性、一貫性、分離性、耐久性 (ACID) コンプライアンス、タイムトラベル、およびその他の機能を有効にするトランザクション ストレージ レイヤーを追加します。

テーブルタイプ

Databricks には 3 つの主要なテーブル タイプが用意されており、それぞれが異なるデータ マネジメント シナリオと所有権モデル用に設計されています。 テーブルの種類の選択によって、Databricks が基になるデータ ファイルとメタデータを管理する方法が決まります。

Databricks のテーブル型の主な差別化要因は、次の表で説明するように、所有するカタログです。

テーブルタイプ

カタログの管理

読み取り/書き込みのサポート

パフォーマンスの最適化

ストレージコストの最適化

マネージド

Unity Catalog

Yes

Yes

Yes

外部

なし (ファイルのみ)

Yes

マニュアルのみ

マニュアルのみ

外部

外部システムまたはカタログ・サービス

読み取り専用

No

No

マネージドテーブル

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

外部テーブル

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

フォーリンテーブル

フォーリンテーブルは、レイクハウスフェデレーションを介して Databricks に接続された外部システムに保存されたデータを表します。 フォーリンテーブルは Databricksで読み取り専用です。 フォーリンテーブルを参照してください。

Unity Catalog のテーブル

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

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

基本的なテーブル権限

ほとんどのテーブル操作には、テーブルを含むカタログとスキーマに対する USE CATALOGUSE SCHEMA のアクセス許可が必要です。

次の表は、Unity Catalog での一般的なテーブル操作に必要な追加のアクセス許可をまとめたものです。

オペレーション

権限

テーブルを作成

CREATE TABLE を含むスキーマで

テーブルのクエリ

SELECT テーブルの上

テーブルへのデータの更新、削除、マージ、または挿入

SELECT そしてテーブルの上のMODIFY

テーブルを削除する

MANAGE テーブルの上

テーブルを置き換える

MANAGE テーブルで、 CREATE TABLE を含むスキーマで

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