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

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 テーブル、ストリーミング テーブル、マテリアライズドビューの違いについてよく寄せられる質問に回答します。

important

以下で説明する Delta テーブルには、Delta Lake によってサポートされるマネージド テーブルと外部テーブルの両方が含まれます。 Unity Catalog マネージドテーブルには、外部テーブルでサポートされていない最適化と機能があります。

質問

Delta テーブル

ストリーミングテーブル

マテリアライズドビュー

それはなんですか。

Delta Lakeによってサポートされるテーブルは、ACIDトランザクション、スキーマ強制、およびその他のDelta Lake機能をサポートします。

宣言型ストリーミングとインクリメンタル処理のユースケース用に拡張された Delta テーブル。

常に事前に適切に計算されるクエリーの結果。

どのようなユースケースに推奨されますか?

Databricks でデータをクエリまたは保存するすべての操作。

次の処理を行う宣言型コード。

  • 追加専用ソースからの取り込み
  • 低レイテンシの変換

次の処理を行う宣言型コード。

  • インクリメンタル変換
  • バッチ変換

どのように入力されていますか?

手続き型コード (INSERTUPDATEMERGEreplaceWhereを使用したパーティション上書き )

以下を含む宣言型コード:

  • ストリームの追加
  • 変更ストリームの適用
  • 一度流れる

宣言型クエリ

Unity Catalog のオブジェクトタイプは何ですか?

TABLE

ストリーミングテーブル

マテリアライズドビュー

誰が更新できますか?

Delta テーブルを更新できる任意のライター。

ストリーミングテーブルを定義するパイプラインのみが更新できます。

マテリアライズドビューを定義するパイプラインのみが更新できます。

Delta Lakeのどの機能と互換性がありますか?

Delta Lake のすべての機能をサポートします。

サポート対象外:

  • 予測最適化

サポート対象外:

  • 予測最適化