フィールドレベルのリネージ:ダッシュボードのタイルからウェアハウスの列まで
テーブルレベルのリネージは、ダッシュボードがテーブルに触れていることを教えます。列レベルのリネージは、列を落としたときにどのダッシュボードが壊れるかを教えます。その違い、最後のホップが難しい理由、そして溺れずに地図を読む方法。
セマンティックレイヤーは、メトリクスにひとつの住まいを与えます。そのメトリクスを計算するすべてのツールが、そのひとつの住まいを読みます。全員が同じ数値を得ます。それが実際に何を意味し、複数のウェアハウスを動かすと何が変わるかを説明します。
更新 · 6 分で読めます
2人が2つのダッシュボードを開きます。どちらにも「純収益」というラベルが付いています。2つの数値は4パーセント違います。どちらも筋が通っています。それぞれ別の場所で計算されたからです。ひとつはワークブックの計算から来ました。もうひとつはウェアハウスのビューから来ていて、どちらも相手の存在を知りません。
これはたいてい、データそのものの問題ではありません。ウェアハウスは正常です。問題は別の場所にあります。「純収益」の定義が複数の場所にあるので、複数の「純収益」があるのです。
セマンティックレイヤーは、そのひとつの失敗を直します。メトリクスに単一の住まいを与えます。他の人たちは、もう一度書き出すのではなく、そのメトリクスを読むようになります。
セマンティックレイヤーは、あなたのデータの統制された記述です。物理テーブルと、質問する人たちの間に置かれます。3種類のものを保持します。
大事なのは式の部分です。フィールドに「純収益」と名付けてもセマンティックレイヤーはできません。集計、フィルター、粒度を記録して初めて、レイヤーが使えるメジャーになります。その3つがパブリッシュされ、強制されます。
セマンティックレイヤーは契約であって、データのコピーではありません。行は保存しません。行の合意された意味を保存し、行を運ぶテーブルを指し示します。
「一度」とは、式が正確にひとつの場所にあるということです。メトリクスを必要とするすべてのツールが、そこから読みます。
テストは単純です。「純収益」の定義をひとつの場所で変えてください。すべてのダッシュボード、ノートブック、アシスタントが追随すれば、メトリクスは一度定義されています。他のコピーを探して編集しなければならないなら、一度定義されたことは一度もなかったのです。
4つの主要プラットフォームは今、すべてこれを出荷しています。それぞれが違う名前で呼びます。言葉は本来より大きな意味を持ちます。ウェアハウスのチームは自分たちのオブジェクトを自分たちの名前で知っていて、間違った言葉はその会話を必要以上に難しくします。
4つの名前、ひとつの形。それぞれが、エンティティ、ディメンション、メジャーを保持する名前付きのオブジェクトです。それぞれがプラットフォーム自身のカタログの中にあるので、プラットフォーム自身のツールがそれを尊重します。Foundry は、あなたのためにメジャーを名付けてはくれない唯一のものです。誰かが自社にはセマンティックレイヤーがあると言うとき、指しているのはこのオブジェクトです。何を保持しているかを尋ねるより、4つのうちどれを作ったかを尋ねるほうが早く答えにたどり着けます。
実際の利用からの注意点をひとつ。稼働中の Snowflake アカウントを調べて学んだことです。そこではディメンションはエンティティで修飾されなければなりません。同じディメンション名が異なる粒度で2つのエンティティに設定されていることはよくあり、名前だけではどちらとも取れます。Snowflake はそれを曖昧として拒否します。それは正しい振る舞いで、同時に戸惑う出だしになります。
ひとつのプラットフォームの中では、「一度定義する」は短い一文です。ある程度の規模の会社の大半は、少なくとも2つのプラットフォームを動かしています。それは変わりません。
すると同じ論理テーブルが、プラットフォームごとに一度ずつ、2つのチームによって2つのレビュープロセスのもとで、二度定義されます。どちらの定義も統制されています。それでも2つは離れていきます。どちらのプラットフォームの中にも、相手を見張るものはありません。
Boreon のタブトータルは、カタログをひとつのオブジェクトモデルに読み込みます。同じスキーマとテーブルが複数の場所に現れることがあります。それはつながりのない別々のオブジェクトではなく、由来するすべてのソースを記憶するひとつのオブジェクトとして着地します。次に、接続されたウェアハウスのすべてのペアが比較され、2つの構造が食い違うところでは、その隙間がそのペアを名指しするガバナンス所見として記録されます。会議ではなく、レポートで読むことになります。
その比較は、カタログが宣言していることを読みます。答えが一致するかを見るために、ひとつの質問を複数のウェアハウスに投げることは決してありません。複数のウェアハウスのフィールドを名指しするクエリは、振り分けられるのではなく拒否されます。両方の下に共通のエンジンがないからです。
カタログを打ち直すよう求めるセマンティックレイヤーは、第二のカタログになります。第二のカタログは古くなります。最初の同期はすでに存在するものを読みます:テーブル、列、コメント、タグ、キー、権限付与。命名規則はそこに加わるもので、決して要求されません。期待されるパターンのどれにも合わないウェアハウスも、丸ごと入ってきます。
レイヤー名は、オブジェクト自身の修飾されたラベルから来ます。オブジェクトについてのコメントがそれを決めるのではありません。meta にあるテーブルは meta レイヤーにあります。gold にあるテーブルは gold にあります。レイヤー名のリストは開かれています。誰もツールに教えていない名前でも、正しく着地します。閉じたリストなら、出会ったことのない他のすべての規則とともに、それを「不明」に潰していたでしょう。
宣言されたコメントとオブジェクトのラベルが食い違うところでは、両方が保持され、その隙間自体が所見になります。あなた自身の分類を引き受けることと、それが自分自身と言い争っているのを見つけることは、同じ仕事です。
何も検査しないパブリッシュ済みの定義は、文書です。価値はある瞬間に現れます。クエリがメジャーを名指しします。そのクエリが走る前に、保存された定義が検査されます。
この製品では、ウェアハウスに届く名前は契約自身のコピーです。契約の外の名前には、ウェアハウスへのコードパスがまったくありません。クエリは、何が契約外だったかを名指しして戻ってきます。結果には行数の上限もあります。
この性質はコードに組み込まれたもので、指示に書かれたものではありません。モデルへの指示は無視されうる。存在しないコードパスは説得されようがない。サイトを運用する人にとっての効果は、狭く、役に立ちます。この製品を通せば、統制されたメジャーの計算方法はひとつしかなく、それが公式のものです。
最初の同期は、所有者の大半が不明と報告することがよくあります。ツールは正常に動いています。見えているのは、今日あなたのカタログのどれだけが文書化されているかを、そのまま示したものです。空のレイヤーはゼロ点です。ゼロは、持つ価値のある唯一の出発点です。
テーブルレベルのリネージは、ダッシュボードがテーブルに触れていることを教えます。列レベルのリネージは、列を落としたときにどのダッシュボードが壊れるかを教えます。その違い、最後のホップが難しい理由、そして溺れずに地図を読む方法。
主張は一文です。証拠は、第二の人があなたに尋ねずに確かめられるものです。監査証跡が含まねばならないもの、ハッシュが実際に証明するもの、そして監査証跡を生むと主張するどんなツールにも求めるべきこと。
承認して実行のルールを、平易な言葉で。アシスタントは読み、説明し、提案し、書き込み経路は人が持ちます。その代償、その見返り、そしてどんな AI 機能にも尋ねるべき3つの問い。