セマンティックレイヤーとは何か、そして「一度定義する」が本当に意味すること
セマンティックレイヤーは、メトリクスにひとつの住まいを与えます。そのメトリクスを計算するすべてのツールが、そのひとつの住まいを読みます。全員が同じ数値を得ます。それが実際に何を意味し、複数のウェアハウスを動かすと何が変わるかを説明します。
テーブルレベルのリネージは、ダッシュボードがテーブルに触れていることを教えます。列レベルのリネージは、列を落としたときにどのダッシュボードが壊れるかを教えます。その違い、最後のホップが難しい理由、そして溺れずに地図を読む方法。
更新 · 5 分で読めます
ある列が落とされ、型を変えられ、改名されようとしています。その瞬間、2つの問いが似て聞こえます。ひとつは、どのダッシュボードがこのテーブルに触れているか。もうひとつは、どのダッシュボードが壊れるか。
テーブルレベルのリネージは最初の問いに答えます。幅の広いテーブルなら40のダッシュボードを返します。そのうち2つがその列を使っていて、誰かがその2つを見つけるために40のワークブックを開かなければなりません。レポートは正しく、ほぼ役に立ちません。
列レベルのリネージは2つ目の問いに答えます。それが、その粒度に届くための余分な仕事をする価値がある理由です。
すべてのホップがシステムの境界を越えます。各システムは名前とは何かについて独自の考えを持っています。問題はそこにあり、グラフを描くことにはありません。
ここで2つの問題が現れます。どちらも本で読んだのではなく、稼働中のウェアハウスを調べて見つけたものです。
静かなゼロはリネージで最悪の失敗です。空の結果は、きれいな答えとまったく同じに見えます。接続され、正しく設定され、何にも一致しないリンクは、依存関係のまったくない環境として読めてしまいます。
修正は、最後にではなく、すべてのウェアハウスプローブの前に正規化することです。引用符のない Snowflake のセグメントは大文字に畳みます。Databricks の名前は SQL の中で引用符を外し、小文字にします。完全名は文字列検索で分解するのではなく、セグメントに分割します。
4つ目は厳しい目で見る価値があり、製品はそうしています。名前で照合された橋は「照合済み」とラベル付けされ、カタログのデータとして示されることは決してありません。推測とラベル付けされた推測は役に立ちます。静かに事実に昇格した推測は、正しかった部分も含めて地図全体を台無しにします。
リネージの地図は、届いた粒度を述べ、それを完成させたものを名指しすべきです。Catalog はテーブルレベルで答えるかもしれません。ウェアハウスから引いた列のリストがそこで仕事を仕上げ、地図はまさにそう言います。
これは小さな礼儀の問題に聞こえます。それは、判断に使える地図と、手で確かめなければならない地図の隔たりです。常に列の粒度を主張する地図はときどき間違い、どのときがそうだったかを決して言いません。
実際の環境の完全な列レベルグラフは、一度に読むのが困難です。数千のノードは地図ではありません。それは模様です。
最初の読み込みは、テーブルレベルの背骨を示します。カードをひとつクリックすると、そのカード自身の粒度だけが開きます:その列と、そこから流れるフィールド。それは1ホップで、閉包全体ではありません。レイアウトが調整し直され、開いたものが視野に入ります。
その振る舞いは、両方向での2回の実利用から生まれました。最初にすべてを表示することが試され、使いものになりませんでした。答えは小さいグラフではなく、局所的に開くことだと判明しました。別のアイデアで、よりよいものでした。
エクスポートは知っておく価値があります。ガバナンスの会話は、ログインを持たず、これからも持たない人たちと行われます。開けるファイルは、受け入れられない招待に勝ります。
セマンティックレイヤーは、メトリクスにひとつの住まいを与えます。そのメトリクスを計算するすべてのツールが、そのひとつの住まいを読みます。全員が同じ数値を得ます。それが実際に何を意味し、複数のウェアハウスを動かすと何が変わるかを説明します。
ガバナンスと呼ばれるものは4つあります:認定、所有、古いコンテンツ、変更管理。ここではそれぞれを、掲げる目標ではなく、実行できる検査として書きます。目視のレビューを通過しながら、なお間違っているひとつの変更も扱います。
主張は一文です。証拠は、第二の人があなたに尋ねずに確かめられるものです。監査証跡が含まねばならないもの、ハッシュが実際に証明するもの、そして監査証跡を生むと主張するどんなツールにも求めるべきこと。