Databricksの用語ばかりのタイトルですが。
Delta Live Tablesとは
SQLやPythonを用いて宣言型で(1段目のテーブルの定義はこうである、2段目のテーブルの定義はこうである)データパイプラインを構築できるソリューションです。
シルバーテーブル、ゴールドテーブルとは
Databricksで提唱しているメダリオンアーキテクチャにおけるテーブルの呼び名です。
生データを格納するテーブルをブロンズ、クレンジングしたデータを格納するのがシルバー、BIやMLで使用する集計データをゴールドとするのが一般的です。
注意点として、メダリオンアーキテクチャは
- データ品質に言及する有用なカテゴリー分けの仕組みであって、
- データの格納場所を強制する厳密なシステムではない
ということです。何を言っているかと言いますと、「ブロンズ・シルバー・ゴールドテーブルを格納する仕組み」を提供している訳ではなく、ユーザー側での整理学として用いるものです。
ただ、日常業務においては「ゴールドやシルバーは参照するけど、ブロンズは見ないし、むしろエンドユーザーには混乱を招くから隠したい」というニーズもあります。
しかしながら、DLTの仕様ではテーブルを永続化するターゲットスキーマ(データベース)は一つしか指定できないので、ブロンズ・シルバー・ゴールドが全て表示されてしまいます。
対応策
別のスキーマ(データベース)を作成して、DLTのシルバー・ブロンズテーブルを参照するビューを作成します。
データエクスプローラでスキーマsilver
を作成します。なお、gold
を作成する際も同様です。
SQLウェアハウスを起動して、以下のクエリーを実行します。
CREATE VIEW takaakiyayoi_catalog.silver.complete_silver_vw AS
SELECT
*
FROM
takaakiyayoi_catalog.dlt.complete_silver;
ここでは、カタログtakaakiyayoi_catalog
配下のスキーマdlt
に作成されたシルバーテーブルcomplete_silver
を参照するビューをtakaakiyayoi_catalog.silver
に作成しています。