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

Databricks テーブルの概要

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

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

テーブルの種類

カタログの管理

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

パフォーマンスの最適化

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

マネージド

Unity Catalog

Yes

Yes

Yes

外部

なし (ファイルのみ)

Yes

手動のみ

手動のみ

外部

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

読み取り専用

No

No

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

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

ストレージ形式: Delta Lake と Apache Iceberg

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

Databricks は、Delta Lake と Apache Iceberg の 2 つの主要なオープン テーブル形式をサポートしています。これらの形式は、メタデータを追跡し、 ACID コンプライアンス、タイムトラベル、およびその他の機能を有効にするトランザクションストレージレイヤーを追加します。

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

マネージドテーブル

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

外部テーブル

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

フォーリンテーブル

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

Unity Catalogのテーブル

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

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

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

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

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

オペレーション

権限

テーブルを作成

CREATE TABLE 含まれているスキーマ

テーブルのクエリ

SELECT テーブルの上に

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

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

テーブルの削除

MANAGE テーブルの上に

テーブルを置き換える

MANAGE テーブルで、含まれているスキーマCREATE TABLE

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