アゞャむル DWH 蚭蚈手法の抂芁

貯蔵斜蚭の開発は時間のかかる真剣な仕事です。

プロゞェクトの存続は、オブゞェクト モデルず基本構造が最初にどれだけよく考えられおいるかに倧きく巊右されたす。

䞀般に受け入れられおいるアプロヌチは、スタヌ スキヌムず第 3 正芏圢を組み合わせたさたざたなバリ゚ヌションであり、今も昔も倉わりたせん。 原則ずしお、原則に埓っお初期デヌタ - XNUMXNF、ショヌケヌス - スタヌ。 このアプロヌチは、長幎の実瞟があり、倧量の調査によっお裏付けられおおり、経隓豊富な DWH スペシャリストが分析リポゞトリがどうあるべきかを考えるずきに最初に思い浮かぶ (堎合によっおは唯䞀の) ものです。

䞀方で、ビゞネス党般、特に顧客の芁件は急速に倉化する傟向があり、デヌタは「深く」も「広く」も増倧する傟向がありたす。 そしお、これがスタヌの䞻な欠点が珟れる堎所です - 限定的です 柔軟性.

そしお、DWH 開発者ずしおの静かで居心地の良い生掻の䞭で、突然次のようになったずしたす。

  • 「少なくずも䜕かをすぐに実行しお、それから芋おみたしょう」ずいう課題が生じたした。
  • 急速に発展するプロゞェクトが出珟し、少なくずも週に䞀床は新しい情報源を接続し、ビゞネス モデルを再構築したした。
  • システムがどのようなものであるべきか、最終的にどのような機胜を実行する必芁があるのか​​はたったくわからないが、実隓を行っお望たしい結果に垞に近づけながら、䞀貫しお改良を加える準備ができおいる顧客が珟れたした。
  • プロゞェクト マネヌゞャヌが朗報を持っおやっお来たした。「これでアゞャむルが実珟したした!」

たたは、保管斜蚭を他にどのように構築できるかを知りたいだけなら、ようこそ!

アゞャむル DWH 蚭蚈手法の抂芁

「柔軟性」ずはどういう意味ですか

たず、システムが「柔軟」ず呌ばれるためにどのような特性を備えおいなければならないかを定矩したしょう。

これずは別に、説明されおいるプロパティは特に次のこずに関連する必芁があるこずに蚀及する䟡倀がありたす。 システム、ではなく プロセス その発展。 したがっお、開発方法論ずしおのアゞャむルに぀いお読みたい堎合は、他の蚘事を読んだ方がよいでしょう。 たずえば、ハブレ島には、興味深い資料がたくさんありたす レビュヌ О 実甚的ず 問題がある).

これは、開発プロセスずデヌタ りェアハりスの構造がたったく無関係であるこずを意味するものではありたせん。 党䜓ずしお、アゞャむル アヌキテクチャ向けのアゞャむル リポゞトリの開発は倧幅に簡単になるはずです。 しかし、実際には、XNUMX ぀のプロゞェクトで XNUMX ぀の圢匏の柔軟性が偶然に実珟するよりも、Kimbal 氏や DataVault 氏によるず、りォヌタヌフォヌル氏によるず、叀兞的な DWH のアゞャむル開発ずいう遞択肢が存圚するこずが倚いのです。

では、フレキシブル ストレヌゞにはどのような機胜が必芁でしょうか? ここでのポむントは次の XNUMX ぀です。

  1. 早期玍品ず迅速な察応 - これは、理想的には、最初のビゞネス結果 (たずえば、最初の䜜業レポヌト) をできるだけ早く、぀たりシステム党䜓が完党に蚭蚈および実装される前に取埗する必芁があるこずを意味したす。 さらに、その埌の各改蚂の時間もできるだけ短くする必芁がありたす。
  2. 反埩的な改良 - これは、その埌の各改善が、理想的にはすでに動䜜しおいる機胜に圱響を䞎えないようにする必芁があるこずを意味したす。 倧芏暡なプロゞェクトで最倧の悪倢ずなるこずが倚いのはこの瞬間です。遅かれ早かれ、個々のオブゞェクトが非垞に倚くの接続を取埗し始めるため、既存のテヌブルにフィヌルドを远加するよりも、近くのコピヌでロゞックを完党に繰り返す方が簡単になりたす。 たた、既存のオブゞェクトに察する改善の圱響を分析する方が、改善そのものよりも時間がかかるこずに驚いおいる方は、おそらく、銀行や通信業界の倧芏暡なデヌタ りェアハりスをただ扱ったこずがないでしょう。
  3. 倉化するビゞネス芁件に垞に適応する - オブゞェクト党䜓の構造は、拡匵の可胜性を考慮するだけでなく、次の拡匵の方向性が蚭蚈段階では倢にも思わなかったずいうこずも考慮しお蚭蚈される必芁がありたす。

そしお、はい、これらすべおの芁件を XNUMX ぀のシステムで満たすこずは可胜です (もちろん、堎合によっおは、ある皋床の条件はありたすが)。

以䞋では、デヌタ りェアハりスの最も䞀般的なアゞャむル蚭蚈手法の XNUMX ぀を怜蚎したす。 アンカヌモデル О デヌタ保管庫。 たずえば、EAV、6NF (玔粋な圢匏)、および NoSQL ゜リュヌションに関連するすべおのような優れた技術が括匧の倖に残されおいたす。これは、それらの技術が䜕らかの点で劣っおいるからではなく、この堎合、蚘事が買収を脅かすからでもありたせん。平均的なディザヌのボリュヌム。 ただ、これらはすべお、プロゞェクトの党䜓的なアヌキテクチャ (EAV など) に関係なく、特定のケヌスで䜿甚できるテクニック、たたはグロヌバルに他の情報ストレヌゞ パラダむム (グラフ デヌタベヌスなど) など、少し異なるクラスの゜リュヌションに関連しおいたす。およびその他のオプション NoSQL)。

「叀兞的」アプロヌチの問題点ず柔軟な方法論による解決策

「叀兞的な」アプロヌチずは、叀き良きスタヌのこずを指したす (基瀎ずなる局の特定の実装に関係なく、Kimball、Inmon、CDM の信奉者はお蚱しください)。

1. 接続の厳栌な基数

このモデルは、デヌタを次のように明確に分割するこずに基づいおいたす。 寞法 О 事実。 そしお、これは、たったく、論理的です。結局のずころ、圧倒的倚数の堎合のデヌタ分析は、特定のセクション (次元) における特定の数倀指暙 (事実) の分析に垰着したす。

この堎合、オブゞェクト間の接続は、倖郚キヌを䜿甚したテヌブル間の関係の圢で確立されたす。 これは非垞に自然に芋えたすが、すぐに最初の柔軟性の制限に぀ながりたす。 接続の基数の厳密な定矩.

぀たり、テヌブルの蚭蚈段階で、関連オブゞェクトのペアごずに、倚察倚で関連付けるこずができるのか、それずも 1 察倚のみで関連付けるこずができるのか、たた「どの方向に」関連付けるこずができるのかを正確に刀断する必芁がありたす。 これにより、どのテヌブルが䞻キヌを持぀のか、どのテヌブルが倖郚キヌを持぀のかが盎接決たりたす。 新しい芁件を受け取ったずきにこの態床を倉えるず、ベヌスの手戻りに぀ながる可胜性が高くなりたす。

たずえば、「珟金受領曞」オブゞェクトを蚭蚈するずきに、営業郚門の宣誓を信頌しお、アクションの可胜性を蚭定したした。 耇数のチェックポゞションに察しお XNUMX ぀のプロモヌション (ただしその逆はありたせん):

アゞャむル DWH 蚭蚈手法の抂芁
そしおしばらくしお、同僚たちは同じ立堎で行動できる新しいマヌケティング戊略を導入したした。 耇数のプロモヌションを同時に行う。 次に、リレヌションシップを別のオブゞェクトに分離しおテヌブルを倉曎する必芁がありたす。

(昇栌チェックが結合されおいるすべおの掟生オブゞェクトも改善する必芁がありたす)。

アゞャむル DWH 蚭蚈手法の抂芁
Data Vault ずアンカヌ モデルの関係

この状況を回避するのは非垞に簡単であるこずが刀明したした。これを行うために営業郚門を信頌する必芁はありたせん。 すべおの接続は最初は別のテヌブルに保存されたす そしおそれを倚察倚ずしお凊理したす。

このアプロヌチが提案されたのは、 ダン・リンステット パラダむムの䞀郚ずしお デヌタ保管庫 そしお完党にサポヌトされおいたす ラヌス・レンベック в アンカヌモデル.

その結果、柔軟な方法論の最初の特城が埗られたす。

オブゞェクト間の関係は芪゚ンティティの属性には保存されたせんが、別の皮類のオブゞェクトずしお保存されたす。

В デヌタ保管庫 このようなリンクテヌブルは呌ばれたす リンクずで アンカヌモデル - ネクタむ。 䞀芋するず、これらは非垞によく䌌おいたすが、違いは名前だけではありたせん (これに぀いおは埌述したす)。 どちらのアヌキテクチャでも、リンク テヌブルはリンクできたす。 任意の数の゚ンティティ (必ずしも 2 であるずは限りたせん)。

この冗長性により、䞀芋するず、倉曎に察する倧幅な柔軟性が埗られたす。 このような構造は、既存のリンクの基数の倉曎だけでなく、新しいリンクの远加にも耐性を持ちたす。小切手の䜍眮に、そこを突砎したレゞ担圓者ぞのリンクも含たれおいる堎合、そのようなリンクの出珟は単玔です。既存のオブゞェクトやプロセスに圱響を䞎えるこずなく、既存のテヌブルのアドオンになりたす。

アゞャむル DWH 蚭蚈手法の抂芁

2. デヌタの重耇

柔軟なアヌキテクチャによっお解決される XNUMX 番目の問題は、それほど明癜ではありたせんが、そもそも固有のものです。 SCD2タむプの枬定 (XNUMX 番目のタむプの寞法はゆっくりず倉化したす)、ただしそれだけではありたせん。

埓来のりェアハりスでは、ディメンションは通垞、サロゲヌト キヌ (PK ずしお) ず䞀連のビゞネス キヌおよび属性を別の列に含むテヌブルです。

アゞャむル DWH 蚭蚈手法の抂芁

ディメンションがバヌゞョン管理をサポヌトしおいる堎合、バヌゞョン有効性の境界がフィヌルドの暙準セットに远加され、゜ヌス内の XNUMX 行に察しお耇数のバヌゞョンがリポゞトリに衚瀺されたす (バヌゞョン管理された属性の倉曎ごずに XNUMX ぀)。

ディメンションに、頻繁に倉曎されるバヌゞョン管理された属性が少なくずも XNUMX ぀含たれおいる堎合、そのようなディメンションのバヌゞョンの数は膚倧になりたす (残りの属性がバヌゞョン管理されおいないか、たったく倉曎されない堎合でも)。たた、そのような属性が耇数ある堎合、バヌゞョンの数は倧幅に増加したす。その数は指数関数的に増加したす。 このディメンションは、倧量のディスク領域を占有する可胜性がありたすが、ディメンションに保存されるデヌタの倚くは、他の行の䞍倉属性倀の単玔な耇補です。

アゞャむル DWH 蚭蚈手法の抂芁

同時に、非垞に頻繁に䜿甚されたす 非正芏化 — 䞀郚の属性は、参考曞や別のディメンションぞのリンクずしおではなく、倀ずしお意図的に保存されたす。 このアプロヌチにより、デヌタ アクセスが高速化され、ディメンションにアクセスする際の結合の数が枛りたす。

通垞、これにより次のようなこずが起こりたす 同じ情報が耇数の堎所に同時に保存される。 たずえば、居䜏地域ずクラむアントのカテゎリに関する情報は、「クラむアント」ディメンションず「賌入」、「配送」、「コヌルセンタヌでの通話」の事実、および「クラむアント - クラむアント マネヌゞャヌ」に同時に保存できたす。 」リンクテヌブル。

䞀般に、䞊蚘の内容は通垞の (バヌゞョン管理されおいない) ディメンションに圓おはたりたすが、バヌゞョン管理されたディメンションではスケヌルが異なる堎合がありたす。オブゞェクトの新しいバヌゞョンの出珟 (特に埌から芋るず) は、関連するすべおのディメンションの曎新だけでなく、ただし、テヌブル 1 を䜿甚しおテヌブル 2 を構築し、テヌブル 2 を䜿甚しおテヌブル 3 を構築する堎合など、関連オブゞェクトの新しいバヌゞョンがカスケヌド的に衚瀺されたす。 è¡š 1 の属性が 3 ぀も衚 2 の構築に関䞎しおいない堎合でも (たた、他の゜ヌスから取埗した衚 3 の他の属性も関䞎しおいる)、この構築をバヌゞョン管理するず、少なくずも远加のオヌバヌヘッドが発生し、最倧で远加のオヌバヌヘッドが発生したす。衚 XNUMX のバヌゞョンは、たったく関係がありたせん。さらにその䞋にありたす。

アゞャむル DWH 蚭蚈手法の抂芁

3. リワヌクの非線圢耇雑さ

同時に、別のストアフロントに基づいお新しいストアフロントが構築されるたびに、ETL に倉曎が加えられたずきにデヌタが「分岐」する可胜性のある堎所の数が増加したす。 これにより、埌続の各リビゞョンの耇雑さ (および期間) が増加したす。

䞊蚘で ETL プロセスがほずんど倉曎されないシステムに぀いお説明しおいる堎合は、そのようなパラダむムに埓うこずができたす。必芁なのは、関連するすべおのオブゞェクトに新しい倉曎が正しく行われおいるこずを確認するこずだけです。 改蚂が頻繁に発生するず、いく぀かの接続が誀っお「欠萜」する可胜性が倧幅に増加したす。

さらに、「バヌゞョン管理された」ETL が「バヌゞョン管理されおいない」ETL よりも倧幅に耇雑であるこずを考慮するず、この機胜党䜓を頻繁に曎新するずきに間違いを避けるこずが非垞に困難になりたす。

Data Vault ず Anchor Model ぞのオブゞェクトず属性の保存

柔軟なアヌキテクチャの䜜成者によっお提案されたアプロヌチは、次のように定匏化できたす。

倉化するものず倉わらないものを区別する必芁がありたす。 ぀たり、キヌを属性ずは別に保存したす。

ただし、混同しおはいけたせん バヌゞョン管理されおいない 属性付き 倉曎なし: 最初のものは倉曎履歎を保存したせんが、倉曎される可胜性がありたす (たずえば、入力゚ラヌを修正するずきや新しいデヌタを受信するずき)、XNUMX 番目のものは決しお倉曎されたせん。

Data Vault ずアンカヌ モデルで正確に䜕が䞍倉ずみなせるかに぀いおは、芖点が異なりたす。

建築的な芳点から芋るず デヌタ保管庫、倉曎されおいないず考えるこずができたす キヌのセット党䜓 - ナチュラル (組織の TIN、゜ヌス システムの補品コヌドなど) およびサロゲヌト。 この堎合、残りの属性は、倉曎の゜ヌスおよび/たたは頻床に応じおグルヌプに分割できたす。 グルヌプごずに個別のテヌブルを維持する 独立したバヌゞョンのセットを䜿甚したす。

パラダむムでは アンカヌモデル 倉化がないずみなされる 代理キヌのみ ゚ッセンス。 他のすべお (自然キヌを含む) は、その属性の特殊なケヌスにすぎたせん。 その䞭で すべおの属性はデフォルトで互いに独立しおいたすしたがっお、各属性に぀いお、 別のテヌブル.

В デヌタ保管庫 ゚ンティティキヌを含むテヌブルは呌び出されたす 湖芋。 ハブには垞に、次のフィヌルドの固定セットが含たれたす。

  • 自然゚ンティティキヌ
  • 代理キヌ
  • ゜ヌスぞのリンク
  • レコヌド远加時間

ハブの投皿 決しお倉曎されず、バヌゞョンもありたせん。 倖郚的には、ハブは䞀郚のシステムでサロゲヌトを生成するために䜿甚される ID マップ タむプのテヌブルに非垞に䌌おいたすが、Data Vault ではビゞネス キヌのセットからのハッシュをサロゲヌトずしお䜿甚するこずをお勧めしたす。 このアプロヌチでは、゜ヌスからの関係ず属性のロヌドが簡玠化されたす (サロゲヌトを取埗するためにハブに参加する必芁はなく、自然キヌのハッシュを蚈算するだけです) が、他の問題 (衝突、倧文字ず小文字、印刷䞍胜などに関連した問題) が発生する可胜性がありたす。文字列キヌなどの文字.p.)、したがっお、䞀般的には受け入れられたせん。

他のすべおの゚ンティティ属性は、ず呌ばれる特別なテヌブルに保存されたす。 衛星。 XNUMX ぀のハブに、異なる属性セットを保存する耇数のサテラむトを含めるこずができたす。

アゞャむル DWH 蚭蚈手法の抂芁

衛星間の属性の配垃は、次の原理に埓っお行われたす。 関節の倉曎 — XNUMX ぀のサテラむトにはバヌゞョン管理されおいない属性 (個人の生幎月日や SNILS など) を保存でき、別のサテラむトにはほずんど倉曎されないバヌゞョン管理された属性 (姓やパスポヌト番号など)、XNUMX 番目には頻繁に倉曎される属性が保存されたす。 (䟋: 配送先䜏所、カテゎリ、最埌の泚文日など)。 この堎合、バヌゞョン管理ぱンティティ党䜓ではなく、個々のサテラむトのレベルで実行されるため、XNUMX ぀のサテラむト内のバヌゞョンの亀差が最小限になるように属性を分散するこずをお勧めしたす (保存されるバヌゞョンの総数が枛少したす)。 。

たた、デヌタ読み蟌みプロセスを最適化するために、さたざたな゜ヌスから取埗した属性が個々の衛星に含たれるこずがよくありたす。

衛星はハブず通信したす。 倖郚キヌ (これは 1 察倚のカヌディナリティに察応したす)。 これは、耇数の属性倀 (たずえば、XNUMX ぀のクラむアントに察する耇数の連絡先電話番号) がこの「デフォルト」アヌキテクチャでサポヌトされおいるこずを意味したす。

В アンカヌモデル キヌを栌玍するテヌブルはず呌ばれたす アンカヌ。 そしお圌らは次のように続けおいたす。

  • 代理キヌのみ
  • ゜ヌスぞのリンク
  • レコヌド远加時間

アンカヌモデルの芳点からの自然キヌが考慮されたす 通垞の属性。 このオプションは理解するのが難しいように思えるかもしれたせんが、オブゞェクトを識別するための範囲がはるかに広がりたす。

アゞャむル DWH 蚭蚈手法の抂芁

たずえば、同じ゚ンティティに関するデヌタが異なるシステムから取埗され、それぞれが独自の自然キヌを䜿甚する堎合です。 Data Vault では、これにより、耇数のハブ (゜ヌスごずに XNUMX ぀ + 統合マスタヌ バヌゞョン) ずいうやや面倒な構造が生じる可胜性がありたすが、アンカヌ モデルでは、各゜ヌスのナチュラル キヌが独自の属性に分類され、独立しおロヌドするずきに䜿甚できたす。他のすべお。

しかし、ここには泚意しにくい点が XNUMX ぀ありたす。異なるシステムの属性が XNUMX ぀の゚ンティティに結合されおいる堎合、おそらく、いく぀かの属性が存圚する可胜性がありたす。 「接着」のルヌルこれにより、システムは、さたざたな゜ヌスからのレコヌドが゚ンティティの XNUMX ぀のむンスタンスに察応するこずを理解する必芁がありたす。

В デヌタ保管庫 これらのルヌルがフォヌメヌションを決定する可胜性が高くなりたす マスタヌ゚ンティティの「サロゲヌトハブ」 たた、自然な゜ヌス キヌずその元の属性を保存するハブには䞀切圱響を䞎えたせん。 ある時点でマヌゞ ルヌルが倉曎された堎合 (たたはマヌゞ ルヌルを実行する属性が曎新された堎合)、サロゲヌト ハブを再フォヌマットするだけで十分です。

В アンカヌモデル そのような゚ンティティは、おそらく次の堎所に保存されたす。 唯䞀のアンカヌ。 これは、どのような゜ヌスから来たものであっおも、すべおの属性が同じサロゲヌトにバむンドされるこずを意味したす。 誀っおマヌゞされたレコヌドを分離し、䞀般に、そのようなシステムでマヌゞの関連性を監芖するこずは、特にルヌルが非垞に耇雑で頻繁に倉曎され、同じ属性が異なる゜ヌスから取埗できる堎合には、はるかに困難になる可胜性がありたす (ただし、確かにそうです)。各属性バヌゞョンがその゜ヌスぞのリンクを保持しおいるため、可胜です)。

いずれにせよ、システムがその機胜を実装する必芁がある堎合は、 重耇排陀、レコヌドのマヌゞ、その他の MDM 芁玠、アゞャむル手法における自然キヌの保存の偎面に特に泚意を払う䟡倀がありたす。 おそらく、より倧芏暡な Data Vault 蚭蚈が、マヌゞ ゚ラヌの芳点から突然安党になる可胜性がありたす。

アンカヌモデル ずいう远加のオブゞェクト タむプも提䟛したす。 結び目 それは本質的に特別です 退化タむプのアンカヌ、属性を XNUMX ぀だけ含めるこずができたす。 ノヌドは、フラットなディレクトリ (性別、婚姻状況、顧客サヌビス カテゎリなど) を保存するために䜿甚されるこずになっおいたす。 アンカヌずは異なり、ノットは 関連する属性テヌブルがありたせん、その唯䞀の属性 (名前) は垞にキヌず同じテヌブルに保存されたす。 アンカヌが盞互に接続されるのず同じ方法で、ノヌドはタむ テヌブル (Tie) によっおアンカヌに接続されたす。

ノヌドの䜿甚に関しお明確な意芋はありたせん。 䟋えば、 ニコラむ・ゎロフロシアでアンカヌモデルの䜿甚を積極的に掚進しおいる圌は、䞍合理ではないがどの参考曞に぀いおも、次のように断蚀できるず信じおいる。 垞に は静的で単䞀レベルになるため、すべおのオブゞェクトに察しおすぐに本栌的なアンカヌを䜿甚するこずをお勧めしたす。

Data Vault ずアンカヌ モデルのもう XNUMX ぀の重芁な違いは、可甚性です。 接続の属性:

В デヌタ保管庫 リンクはハブず同じ本栌的なオブゞェクトであり、次のものを持぀こずができたす。 自分の属性。 で アンカヌモデル リンクはアンカヌずアンカヌを接続するためにのみ䜿甚されたす。 独自の属性を持぀こずはできたせん。 この違いにより、モデリング アプロヌチが倧幅に異なりたす。 事実の、これに぀いおはさらに説明したす。

ファクトストレヌゞ

これたでは、䞻に枬定モデリングに぀いお説明したした。 事実は少し明らかではありたせん。

В デヌタ保管庫 ファクトを保存するための兞型的なオブゞェクトは次のずおりです。 リンク、その衛星には実際のむンゞケヌタヌが远加されたす。

このアプロヌチは盎感的に思えたす。 これは、分析された指暙ぞの簡単なアクセスを提䟛し、䞀般に埓来のファクト テヌブルに䌌おいたす (指暙のみがテヌブル自䜓ではなく、「隣接する」テヌブルに保存されたす)。 しかし、萜ずし穎もありたす。モデルの兞型的な倉曎の XNUMX ぀であるファクト キヌの拡匵では、 新しい倖郚キヌをリンクに远加する。 そしお、これによりモゞュヌル性が「砎壊」され、他のオブゞェクトぞの倉曎が必芁になる可胜性がありたす。

В アンカヌモデル 接続は独自の属性を持぀こずができないため、このアプロヌチは機胜したせん。絶察にすべおの属性ずむンゞケヌタヌを XNUMX ぀の特定のアンカヌにリンクする必芁がありたす。 ここからの結論は簡単です - それぞれの事実にも独自のアンカヌが必芁です。 私たちが事実ずしお認識するこずに慣れおいるものにずっおは、これは自然に芋えるかもしれたせん。たずえば、賌入の事実は、「泚文」たたは「受領曞」ずいうオブゞェクト、セッションぞのサむト蚪問などに完党に還元できたす。 しかし、そのような自然な「茞送物䜓」を芋぀けるのがそれほど簡単ではない事実もありたす。たずえば、毎日の始たりに倉庫にある商品の残骞などです。

したがっお、アンカヌ モデルでファクト キヌを展開するずきにモゞュヌル性の問題は発生したせん (察応するアンカヌに新しいリレヌションシップを远加するだけで十分です) が、ファクトを衚瀺するモデルの蚭蚈はそれほど明確ではなく、「人工的な」アンカヌが衚瀺される可胜性がありたす。ビゞネス オブゞェクト モデルが䞍明瞭に衚瀺されたす。

柔軟性を実珟する方法

どちらの堎合でも、結果ずしお埗られる構造には次のものが含たれたす。 倧幅に倚くのテヌブル埓来の枬定よりも優れおいたす。 しかし、それはかかるかもしれたせん ディスク容量が倧幅に枛少 埓来のディメンションず同じバヌゞョン化された属性セットを䜿甚したす。 圓然のこずながら、ここには魔法はありたせん。すべおは正芏化に関するものです。 サテラむト (Data Vault 内) たたは個々のテヌブル (アンカヌ モデル) 党䜓に属性を分散するこずで、属性を削枛 (たたは完党に排陀) したす。 他の属性を倉曎するず、䞀郚の属性の倀が重耇する.

のために デヌタ保管庫 賞金はサテラむト間の属性の配分によっお異なりたす。 アンカヌモデル — は、枬定オブゞェクトごずの平均バヌゞョン数にほが正比䟋したす。

ただし、スペヌスの節玄は、属性を個別に保存するこずの重芁な利点ではありたすが、䞻な利点ではありたせん。 このアプロヌチは、関係を個別に保存するこずず䜵せお、ストアを䜜成したす。 モゞュヌル蚭蚈。 ぀たり、そのようなモデルに個々の属性ず新しいサブゞェクト領域党䜓の䞡方を远加するず、次のようになりたす。 䞊郚構造 オブゞェクトの既存のセットを倉曎せずに䞊曞きしたす。 そしお、これこそが、説明されおいる方法論を柔軟にするものです。

これは、個数生産から倧量生産ぞの移行にも䌌おいたす。埓来のアプロヌチでは、モデルの各テヌブルが独自で特別な泚意が必芁である堎合、柔軟な方法論では、それはすでに暙準の「郚品」のセットです。 䞀方で、テヌブルの数が増え、デヌタのロヌドず取埗のプロセスがより耇雑になるはずです。 䞀方、圌らは次のようになりたす。 兞型的な。 ぀たり、あるかもしれない 自動化およびメタデヌタ䞻導型。 「どのように構築するか?」ずいう質問は、その答えが改善蚭蚈の䜜業の重芁な郚分を占める可胜性がありたすが、今ではたったく䟡倀がありたせん (モデルの倉曎が䜜業プロセスに及がす圱響に぀いおの質問も同様です) 。

これは、このようなシステムではアナリストがたったく必芁ないずいう意味ではありたせん。䟝然ずしお誰かが属性を持぀オブゞェクトのセットを調べお、それをすべおどこにどのようにロヌドするかを刀断する必芁がありたす。 しかし、䜜業量だけでなく、゚ラヌの可胜性やコストも倧幅に削枛されたす。 分析段階ず ETL の開発䞭の䞡方で、重芁な郚分はメタデヌタの線集に削枛できたす。

ダヌクサむド

䞊蚘のすべおにより、どちらのアプロヌチも真に柔軟で、技術的に進歩し、反埩的な改善に適したものになりたす。 もちろん、「軟膏の暜」もありたすが、それに぀いおはすでに掚枬できるず思いたす。

柔軟なアヌキテクチャのモゞュヌル性の基瀎ずなるデヌタ分解は、テヌブル数の増加に぀ながり、それに応じお、 オヌバヌヘッド サンプリング時に結合したす。 ディメンションのすべおの属性を単玔に取埗するには、埓来のストアでは XNUMX 回の遞択で十分ですが、柔軟なアヌキテクチャでは䞀連の結合党䜓が必芁になりたす。 さらに、レポヌトのこれらすべおの結合を事前に䜜成できる堎合、手動で SQL を䜜成するこずに慣れおいるアナリストは二重に苊劎するこずになりたす。

この状況を容易にするいく぀かの事実がありたす。

倧きなディメンションを操䜜する堎合、そのすべおの属性が同時に䜿甚されるこずはほずんどありたせん。 これは、モデルを䞀芋したように芋えるよりも結合が少ない可胜性があるこずを意味したす。 Data Vault は、属性をサテラむトに割り圓おるずきに、予想される共有頻床も考慮に入れるこずができたす。 同時に、ハブたたはアンカヌ自䜓は䞻に読み蟌み段階でサロゲヌトを生成およびマッピングするために必芁であり、ク゚リで䜿甚されるこずはほずんどありたせん (これは特にアンカヌに圓おはたりたす)。

すべおの結合はキヌによっお行われたす。 さらに、より「圧瞮された」デヌタの保存方法により、必芁な堎合 (属性倀によるフィルタヌ凊理など) のテヌブルのスキャンのオヌバヌヘッドが削枛されたす。 これにより、倚数の結合を含む正芏化されたデヌタベヌスからのサンプリングの方が、行ごずに倚くのバヌゞョンを含む XNUMX ぀の重いディメンションをスキャンするよりも高速になる可胜性がありたす。

たずえば、ここでは この この蚘事には、XNUMX ぀のテヌブルのサンプルを䜿甚したアンカヌ モデルのパフォヌマンスの詳现な比范テストが含たれおいたす。

゚ンゞンに倧きく䟝存したす。 最新のプラットフォヌムの倚くには、内郚結合最適化メカニズムが備わっおいたす。 たずえば、MS SQL ず Oracle は、デヌタが他の結合以倖で䜿甚されおおらず、最終的な遞択 (テヌブル/結合の削陀) に圱響を䞎えない堎合、テヌブルぞの結合を「スキップ」できたす。たた、MPP Vertica は、テヌブルぞの結合を「スキップ」できたす。 Avito の同僚の経隓は、ク゚リ プランを手動で最適化した堎合、アンカヌ モデルにずっお優れた゚ンゞンであるこずが蚌明されおいたす。 䞀方、たずえば、結合サポヌトが制限されおいる Click House にアンカヌ モデルを保存するこずは、ただあたり良いアむデアずは思えたせん。

さらに、どちらのアヌキテクチャにも、 特別な動きにより、デヌタ アクセスが容易になりたす (ク゚リ パフォヌマンスの芳点ず゚ンド ナヌザヌの䞡方の芳点から)。 䟋えば、 ポむントむンタむムテヌブル Data Vault たたは 特別なテヌブル関数 アンカヌモデルで。

合蚈で

怜蚎されおいる柔軟なアヌキテクチャの䞻な本質は、その「蚭蚈」のモゞュヌル性です。

このプロパティにより、次のこずが可胜になりたす。

  • メタデヌタの展開ず基本的な ETL アルゎリズムの䜜成に関連する初期準備を行った埌、 顧客に最初の結果を迅速に提䟛する わずか数個の゜ヌス オブゞェクトからのデヌタを含むいく぀かのレポヌトの圢匏。 オブゞェクト モデル党䜓を (最䞊䜍レベルであっおも) 培底的に考える必芁はありたせん。
  • デヌタ モデルは、わずか 2  3 個のオブゞェクトで動䜜し始める (そしお䟿利になる) こずができたす。 埐々に成長する アンカヌモデルのニコラむに぀いお 適甚された 菌糞䜓ずの玠晎らしい比范)。
  • 察象領域の拡倧や新しい゜ヌスの远加など、ほずんどの改善 既存の機胜には圱響せず、すでに動䜜しおいるものを壊すリスクもありたせん.
  • 暙準芁玠ぞの分解のおかげで、そのようなシステムの ETL プロセスは同じように芋え、その蚘述はアルゎリズム化に適しおおり、最終的には オヌトメヌション.

この柔軟性の代償は、 パフォヌマンス。 これは、そのようなモデルで蚱容可胜なパフォヌマンスを達成するこずが䞍可胜であるこずを意味するものではありたせん。 倚くの堎合、必芁な指暙を達成するには、より倚くの努力ず现郚ぞの泚意が必芁になる堎合がありたす。

アプリ

゚ンティティの皮類 デヌタ保管庫

アゞャむル DWH 蚭蚈手法の抂芁

Data Vault の詳现情報:
ダン・ラむシュタットのりェブサむト
ロシア語での Data Vault のすべお
Habré の Data Vault に぀いお

゚ンティティの皮類 アンカヌモデル

アゞャむル DWH 蚭蚈手法の抂芁

アンカヌ モデルの詳现:

Anchor Model 䜜成者の Web サむト
Avito でのアンカヌ モデルの実装䜓隓に関する蚘事

怜蚎されたアプロヌチの共通の特城ず盞違点をたずめた衚:

アゞャむル DWH 蚭蚈手法の抂芁

出所 habr.com

コメントを远加したす