ETL のテーブルとビュー
この記事では、Databricks のテーブルとビューの種類の概念的な概要を示し、ETL ワークロードのテーブルとビューを操作するためのベスト プラクティスと推奨事項に重点を置いています。
テーブルとビュー
テーブル は、特定の場所に格納された構造化されたデータセットです。Databricks では、Databricks で作成または更新されるすべてのテーブルに対して、Delta Lake 形式によってサポートされるテーブルを使用することをお勧めします。 テーブルはストレージにデータを格納し、挿入、更新、削除、マージなどの操作をサポートする SQL コマンドまたは DataFrame APIsを使用してクエリと操作を行うことができます。 Delta テーブルの基本を参照してください。
ビュー は、SQL クエリによって定義される仮想テーブルです。ビュー自体はデータを格納しません。 代わりに、ビューは、1 つ以上のテーブルのデータを特定の形式または抽象化で表示する方法を提供します。 ビューは、複雑なクエリを簡略化し、ビジネス ロジックをカプセル化し、ストレージを重複させることなく基になるデータへの一貫したインターフェイスを提供するのに役立ちます。 「ビューとは」を参照してください。
Delta テーブルの基本
Databricks は、テーブルの作成時にデフォルトの形式として Delta Lake を使用します。 Delta Lake によってサポートされるテーブルは、 Delta テーブル とも呼ばれます。 Delta テーブルは、データをクラウド・オブジェクト・ストレージ内のファイルのディレクトリーとして格納し、そのテーブルのメタデータをカタログおよびスキーマ内のメタストアに登録します。
Unity CatalogマネージドテーブルはすべてDeltaテーブルです。ストリーミングテーブルとマテリアライズドビューは、 Delta テーブルの特別な実装です。
Delta テーブルには、 SQL、 Python、および Scala APIsを使用してクエリおよび更新できるデータ行が含まれています。 エンド ユーザーは、他のデータベースと同じようにこれらのテーブルを操作します。 Delta Lake によってサポートされるテーブルは、Databricks の外部のシステムによってクエリを実行することもできます。 「外部システムを使用した Databricks データへのアクセス」を参照してください。
Delta Lake を使用しないテーブルを Databricks に作成することは可能ですが、それらのテーブルでは、Delta テーブルのトランザクション保証や最適化されたパフォーマンスは提供されません。 Delta Lake以外の形式を使用する他のテーブルの種類の詳細については、「外部テーブルを操作する」を参照してください。
Deltaテーブル、ストリーミングテーブル、マテリアライズドビューの違い
次の表では、Delta テーブル、ストリーミング テーブル、マテリアライズドビューの違いについてよく寄せられる質問に回答します。
以下で説明する Delta テーブルには、Delta Lake によってサポートされるマネージド テーブルと外部テーブルの両方が含まれます。 Unity Catalog マネージドテーブルには、外部テーブルでサポートされていない最適化と機能があります。
質問 | Delta テーブル | ストリーミングテーブル | マテリアライズドビュー |
---|---|---|---|
それはなんですか。 | Delta Lakeによってサポートされるテーブルは、ACIDトランザクション、スキーマ強制、およびその他のDelta Lake機能をサポートします。 | 宣言型ストリーミングとインクリメンタル処理のユースケース用に拡張された Delta テーブル。 | 常に事前に適切に計算されるクエリーの結果。 |
どのようなユースケースに推奨されますか? | Databricks でデータをクエリまたは保存するすべての操作。 | 次の処理を行う宣言型コード。
| 次の処理を行う宣言型コード。
|
どのように入力されていますか? | 手続き型コード ( | 以下を含む宣言型コード:
| 宣言型クエリ |
Unity Catalog のオブジェクトタイプは何ですか? | TABLE | ストリーミングテーブル | マテリアライズドビュー |
誰が更新できますか? | Delta テーブルを更新できる任意のライター。 | ストリーミングテーブルを定義するパイプラインのみが更新できます。 | マテリアライズドビューを定義するパイプラインのみが更新できます。 |
Delta Lakeのどの機能と互換性がありますか? | Delta Lake のすべての機能をサポートします。 | サポート対象外:
| サポート対象外:
|