テーブルとビューとは

テーブルとビューは、データを整理してアクセスするための Databricks の基本的な概念です。

テーブルは、特定の場所に格納された構造化データセットであり、通常は Delta Lake 形式で格納されます。テーブルは実際のデータをストレージに格納し、挿入、更新、削除、マージなどの操作をサポートする SQL コマンドまたは DataFrame APIsを使用してクエリおよび操作できます。 「テーブルとは」を参照してください。

ビューは、SQL クエリによって定義される仮想テーブルです。ビュー自体はデータを格納しません。 代わりに、ビューは、1 つ以上のテーブルのデータを特定の形式または抽象化で表示する方法を提供します。 ビューは、複雑なクエリを簡略化し、ビジネス ロジックをカプセル化し、ストレージを重複させることなく基になるデータへの一貫したインターフェイスを提供するのに役立ちます。 「ビューとは」を参照してください。

Unity Catalog のテーブルとビュー

テーブルとビューは、Unity Catalog を使用して管理されます。 Unity Catalog では、テーブルとビューは 3 レベルの名前空間 (catalog.schema.table) の 3 番目のレベルにあります。 次の図に示すように。

Unity Catalogオブジェクト モデル図 (テーブルに重点)

Delta テーブル、ストリーミング テーブル、具体化されたビューの違い

次の表では、Delta テーブル、ストリーミング テーブル、具体化されたビューの違いについてよく寄せられる質問に回答します。

質問

Delta テーブル

MVの

それはなんですか。

Delta Lake形式で格納された標準テーブルで、ACIDトランザクション、スキーマ強制、およびその他のDelta Lake機能をサポートします。

ストリーミングと増分処理のユースケース用に拡張された通常の Delta テーブル。

結果が常にコンピュート前で正しいクエリの結果。

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

次の処理を行う手続き型コード。

  • データ取り込み

  • 変換

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

  • 追加専用ソースからの取り込み

  • 低レイテンシの変換

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

  • インクリメンタル変換

  • バッチ変換

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

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

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

  • ストリームの追加

  • 変更ストリームの適用

  • 一度流れる

宣言型クエリ

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

TABLE

TABLE

VIEW

誰が更新できますか?

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

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

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

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

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

サポート対象外:

  • リキッドパーティショニング

  • 予測最適化

サポート対象外:

  • リキッドパーティショニング

  • 予測最適化