テーブルとは?
テーブルはスキーマに存在し、データの行を含みます。Databricksで作成されたデフォルトテーブルタイプは、Unity Catalogマネージドテーブルです。
Databricks のテーブル型の主な差別化要因は、次の表に示すように、所有カタログです。
テーブルの種類 | カタログの管理 |
---|---|
マネージド | Unity Catalog |
外部 | なし |
外部 | 外部システムまたはカタログ・サービス |
次の例は、5 人の従業員に関するデータを含む prod.people_ops_employees
という名前のテーブルを示しています。メタデータは Unity Catalog に登録され、データはクラウド ストレージに格納されます。
マネージドテーブル
マネージドテーブル は、メタストア登録と共に基になるデータ ファイルを管理します。 Databricks 、新しいテーブルを作成するたびにマネージドテーブルを使用することをお勧めします。 Unity Catalog マネージドテーブルは、 Databricksでテーブルを作成するときのデフォルトです。 彼らは常に Delta Lakeを使用します。 「マネージドテーブルの操作」を参照してください。
外部テーブル
外部テーブルは、 アンマネージドテーブル とも呼ばれ、クラウドオブジェクトストレージなどの外部ストレージシステムの Databricks 外部に保存されているデータを参照します。 これらは、基になるデータ ファイルの管理をメタストア登録から切り離します。 Unity Catalog >Delta Lake など、いくつかの形式の外部テーブルがサポートされています。 Unity Catalog の外部テーブルは、外部システムで読み取り可能な一般的な形式を使用してデータ ファイルを格納できます。 外部テーブルの操作を参照してください。
フォーリンテーブル
フォーリンテーブルは、レイクハウスフェデレーションまたはDatabricks フェデレーションを介してHive metastore 接続された外部システムに保存されているデータを表します。フォーリンテーブルは Databricksでは読み取り専用です。 「フォーリンテーブルを使用する」を参照してください。
Unity Catalogのテーブル
Unity Catalog では、次の図に示すように、テーブルは 3 レベルの名前空間 (catalog.schema.table
) の 3 番目のレベルにあります。
基本的なテーブルのアクセス許可
ほとんどのテーブル操作では、テーブルを含むカタログとスキーマに対する USE CATALOG
および USE SCHEMA
のアクセス許可が必要です。
次の表は、Unity Catalog の一般的なテーブル操作に必要な追加のアクセス許可をまとめたものです。
オペレーション | 権限 |
---|---|
テーブルを作成 |
|
テーブルのクエリ |
|
テーブルへのデータの更新、削除、マージ、または挿入 |
|
テーブルの削除 |
|
テーブルを置き換える |
|
Unity Catalog のアクセス許可の詳細については、「 Unity Catalog での特権の管理」を参照してください。
Delta テーブルとは
Delta Lake によってサポートされるテーブルは、 Delta テーブル とも呼ばれます。
Delta テーブルは、データをクラウド オブジェクト ストレージ内のファイルのディレクトリとして格納し、カタログとスキーマ内のメタストアに登録する テーブル メタデータを格納します。「Delta Lake とは」を参照してください。
Delta Lake は、 Databricksでデータを保存したりテーブルを作成したりするときに使用されるデフォルトの形式です。 Delta テーブルは Databricksのデフォルトであるため、特に断りのない限り、ほとんどのテーブルへの参照Deltaテーブルの動作について説明します。
Databricks では、常にファイル パスではなく完全修飾テーブル名を使用して Delta テーブルを操作することをお勧めします。
Delta Lake を使用しないテーブルを Databricks に作成できます。これらのテーブルでは、Delta テーブルのトランザクションの保証や最適化されたパフォーマンスは提供されません。
次の表では、Databricks で発生する可能性のある一般的な Delta テーブルについて説明します。
テーブルの種類 | 説明 |
---|---|
Unity Catalog マネージドテーブル | 常に Delta Lake. Databricksのデフォルトおよび推奨されるテーブル タイプです。多くの組み込み最適化を提供します。 |
Unity Catalog 外部テーブル | 必要に応じて、Delta Lake によって支援できます。外部の Delta Lake クライアントとの一部の従来の統合パターンをサポートします。 |
ストリーミングテーブル | Delta Lake によってサポートされる DLT データセットで、増分処理の追加フロー定義または |
マテリアライズドビュー | Delta Lake によってサポートされる DLT データセットで、マネージド フロー ロジックを使用してクエリの結果を具体化します。 |
特徴量テーブル | プライマリ・キーが宣言されている任意の Unity Catalog マネージド・テーブルまたは外部テーブル。 Databricks の ML ワークロードで使用されます。 |
Unity Catalog フォーリンテーブル | フォーリンカタログによっては、 Delta Lakeによって裏付けられる場合があります。 フォーリンテーブルは、 Delta Lake マネージドテーブルに多くの最適化 Unity Catalog 存在しません。 |
Hive metastore テーブル | Hive metastore テーブルには、内部または外部のフェデレーション Hive metastore のフォーリンテーブルと、レガシーワークスペース Hive metastoreのテーブルが含まれます。 マネージ テーブルと外部 Hive metastore テーブルはどちらも、オプションで Delta Lakeによってバッキングできます。 |
その他のテーブルの種類
managed、external、および フォーリンテーブルは [ Databricks] の基本的なテーブル タイプですが、一部の製品、機能、および構文ではさらに区別されます。 このセクションでは、これらの他のテーブルの一部について説明します。
ストリーミングテーブル
ストリーミングテーブルは、DLT で増分データを処理するために使用される Delta テーブルです。 ストリーミングテーブルの更新のほとんどは、更新操作を通じて行われます。
を使用して で登録する ストリーミングテーブルUnity Catalog Databricks SQLまたは DLT パイプラインの一部として定義できます。「ストリーミングテーブルの仕組み」、「Databricks SQLでストリーミングテーブルを使用してデータを読み込む」、および「DLT とは」を参照してください。
特徴量テーブル
DeltaUnity Catalogによって管理され、プライマリ・キーを持つ ・テーブルは特徴量テーブルです。Unity Catalogの 特徴量テーブルの操作を参照してください。
オンラインテーブル
オンライン テーブルは、オンライン アクセス用に最適化された行指向形式で格納される Delta テーブルの読み取り専用コピーです。リアルタイム テーブルの使用Feature Servingを参照してください。
Hive テーブル (レガシ)
Hive テーブルは、レガシーパターン (レガシー Hive metastoreパターン、 Hive SerDe コーデック、 Hive SQL 構文など) を使用して実装されたテーブルを示しています。
レガシ Hive metastore を使用して登録されたテーブルは、レガシ DBFSルートに (デフォルト別) にデータを格納します。 Databricks では、すべてのテーブルを従来の HMS から Unity Catalog に移行することをお勧めします。 レガシーHive metastoreのデータベースオブジェクトを参照してください。
必要に応じて、 Hive metastore を Unity Catalogにフェデレートできます。 Hive metastoreフェデレーション:Unity Catalog に登録されたテーブルを管理するための の有効化 を参照してください。Hive metastore
Apache Spark は Hive テーブルへの登録とクエリをサポートしていますが、これらのコーデックは Databricks. Databricks では、外部システムによって書き込まれたデータに対するクエリをサポートするためだけに Hive テーブルを登録することをお勧めします。 Hive テーブル (レガシ)を参照してください。
ライブテーブル (非推奨)
ライブ テーブル という用語は、現在 マテリアライズドビュー として実装されている機能の以前の実装を指します。ライブ テーブルを参照するレガシ コードは、マテリアライズドビューの構文を使用するように更新する必要があります。 DLT とはおよびDatabricks SQLのマテリアライズドビューの使用を参照してください。