Databricks テーブルの概念
Databricksは、マネージド、外部、フォリジェンの3つの主要テーブルタイプと、2つのオープンストレージ形式(Delta LakeおよびApache Iceberg)をサポートしています。適切な組み合わせを選択することで、データの保存方法、管理方法、最適化方法が決定されます。
Databricks テーブルはスキーマに存在し、データの行を含みます。Databricks で登録されるデフォルトテーブルタイプは、マネージドテーブルUnity Catalogです。
ストレージ形式
ストレージフォーマットは、オブジェクトストレージにおいてデータが物理的にどのように構造化され、追跡されるかを定義します。
Databricks では、次の 2 つの主要なオープン テーブル ストレージ形式がサポートされています。
- Delta Lake は、Databricks の管理対象テーブルと外部テーブルのデフォルトのストレージ形式です。Deltaはフォーリンテーブルでもサポートされています。
- Apache Iceberg は、Databricks のマネージドテーブルとフォーリンテーブルでサポートされています。この形式は、Iceberg エコシステムと統合する場合に便利です。
両フォーマットとも、メタデータを追跡し、原子性、一貫性、アイソレーション、耐久性(ACID)コンプライアンス、タイムトラベルなどの機能をサポートするトランザクションストレージ層を追加しています。
テーブルタイプ
Databricksにおけるテーブルタイプは、データがどのように所有され、アクセスされるかを定義します。
Databricksは3つの主要なテーブルタイプをサポートしています。テーブルタイプは、以下の表に示されているように、どのカタログが基になるデータファイルを所有および管理するかによって決定されます。
テーブルタイプ | カタログの管理 | 読み取り/書き込みのサポート | パフォーマンスの最適化 | ストレージコストの最適化 |
|---|---|---|---|---|
Unity Catalog | Yes | Yes | Yes | |
TEMPORARY | なし (セッションスコープのマネージドテーブル) | Yes | Yes | Yes |
なし (ファイルのみ) | Yes | マニュアルのみ | マニュアルのみ | |
外部システムまたはカタログ・サービス | 読み取り専用 | No | No |
使用ケースに適したテーブルタイプを選択する方法に関する情報については、テーブルタイプを選択を参照してください。
マネージドテーブル
マネージドテーブルの場合、Unity Catalogはデータファイルとテーブルメタデータの両方を管理します。データファイルは、Unity Catalogのクラウドストレージにあるマネージドストレージの場所に保存されます。Databricksでテーブルを作成する場合、Unity Catalog マネージドテーブルがデフォルトです。
Databricksは、新しいテーブルを作成する際は常にマネージドテーブルを使用することを推奨しています。マネージドテーブルは、パフォーマンスの向上を自動的に実装し、ストレージとコンピュートのコストを削減し、Trinoなどの外部システムからのアクセスを可能にします。See マネージドテーブル.
次の例は、5人の従業員に関するデータを含む、prod.people_ops_employeesという名前のマネージドテーブルを示しています。

外部テーブル
アンマネージドテーブル と呼ばれることもある外部テーブルは、クラウドオブジェクトストレージなどの外部ストレージシステムに格納されているデータを参照します。Databricksはテーブルのメタデータを登録しますが、基盤となるデータファイルを管理しません。Unity CatalogはDelta Lakeなども含まれる様々な形式の外部テーブルをサポートしており、これにより外部システムで読み取ることができます。See 外部テーブル.
フォーリンテーブル
フォーリンテーブルは、レイクハウスフェデレーションを介して Databricks に接続された外部システムに保存されたデータを表します。 フォーリンテーブルは Databricksで読み取り専用です。 フォーリンテーブルを参照してください。
一時テーブル
一時テーブルは、Databricksセッションの間ずっとデータを格納するセッションスコープ付きのテーブルです。これらは、カタログに永続的なテーブルを作成することなく、中間結果を具体化するのに役立ちます。Databricksはセッション終了時に一時テーブルを自動的にドロップし、作成にカタログやスキーマ権限は必要ありません。Databricks SQLおよびDatabricks Runtimeの一時テーブルを参照してください。
テーブルタイプを選択してください
ほとんどの新しいテーブルにはマネージドテーブルを使用します。Databricksは、最適化、ストレージライフサイクル管理、および外部アクセスを自動化します。
Use 外部テーブル when:
- 既存のデータを移動することなく、クラウドストレージに登録する必要があります。
- 非Databricksクライアントからの直接パスベースのアクセスが必要です。
- CSVやJSONなどのマネージドテーブルでサポートされていないファイル形式を扱っています。
- テーブルを削除しても、基になるデータファイルは削除すべきではありません。
レイクハウスフェデレーションを介して接続された外部システム(Hive metastoreやAWS Glueカタログなど)のデータへの読み取り専用アクセスが必要な場合は、 フォーリンテーブル を使用します。
ストレージ形式では、Delta Lakeがデフォルトであり、ほとんどのワークロードに推奨されます。Iceberg形式を必要とする外部システムと統合する場合は、Apache Icebergを使用してください。
Unity Catalog のテーブル
Unity Catalogでは、テーブルは3レベル名前空間(catalog.schema.table)の3番目のレベルに存在し、以下の図に示されています。

基本的なテーブル権限
ほとんどのテーブル操作には、テーブルを含むカタログとスキーマに対する USE CATALOG と USE SCHEMA のアクセス許可が必要です。
次の表は、Unity Catalog での一般的なテーブル操作に必要な追加のアクセス許可をまとめたものです。
オペレーション | 権限 |
|---|---|
テーブルを作成 |
|
テーブルのクエリ |
|
テーブルへのデータの更新、削除、マージ、または挿入 |
|
テーブルを削除する |
|
テーブルを置き換える |
|
これらの操作の SQL 構文リファレンスについては、以下を参照してください。
Unity Catalog権限の詳細については、 Unity Catalogでの権限の管理を参照してください。