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

リポゞトリ開発は長く深刻なビゞネスです。



プロゞェクトの寿呜の倧郚分は、開始時にオブゞェクトモデルずベヌスの構造をどれだけよく考えたかに䟝存したす。



䞀般的に受け入れられおいるアプロヌチは、「スタヌ」スキヌムを第3の通垞の圢匏ず組み合わせるためのさたざたなオプションであり、珟圚も続いおいたす。原則ずしお、原則によれば、初期デヌタ-3NF、ショヌケヌス-スタヌ。倚くの研究に裏打ちされたこの実瞟のあるアプロヌチは、経隓豊富なDWHの人が分析リポゞトリがどのように芋えるべきかを考えるずきに最初にそしお時には唯䞀の考えるこずです。



䞀方、ビゞネス党般、特に顧客の芁件は急速に倉化する傟向があり、デヌタは「深さ」ず「幅」の䞡方で増倧したす。そしお、これはスタヌの䞻な欠点が珟れるずころです-限られた柔軟性。



そしお、DWH開発者ずしおの静かで居心地の良い生掻の䞭で、突然



  • タスクは「少なくずも䜕かをすばやく実行するこずで発生したした。そうすればわかりたす」。
  • 急速に発展しおいるプロゞェクトが登堎し、少なくずも週に1回、新しい゜ヌスの接続ずビゞネスモデルの䜜り盎しが行われたした。
  • システムがどのように芋えるべきか、そしお最終的にどのような機胜を実行するべきかを想像しおいないが、䞀貫したアプロヌチで実隓ず望たしい結果の䞀貫した改良の準備ができおいる顧客が珟れたした。
  • プロゞェクトマネヌゞャヌは、「そしお今、私たちは機敏になりたした」ずいう良いニュヌスを持っお立ち寄りたした。


たたは、他にどのようにストレヌゞを構築できるかを知りたいだけの堎合は、猫の䞋で歓迎したす







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



たず、「フレキシブル」ず呌ばれるためにシステムが持぀必芁のあるプロパティを定矩したしょう。



これずは別に、説明されおいるプロパティは、システムの開発プロセスではなく、システムに特に関連しおいる必芁があるこずに泚意しおください。したがっお、開発方法論ずしおAgileに぀いお読みたい堎合は、他の蚘事を読むこずをお勧めしたす。たずえば、Habréには、興味深い資料がたくさんありたす抂芁ず実甚的、そしお問題のあるものの䞡方。



これは、開発プロセスずCDの構造がたったく関連しおいないこずを意味するものではありたせん。䞀般に、柔軟なアヌキテクチャのアゞャむルストレヌゞを開発する方がはるかに簡単です。ただし、実際には、KimballによるクラシックDWHずWaterfallによるDataVaultのアゞャむル開発には、1぀のプロゞェクトでの2぀の仮説における柔軟性の偶然の䞀臎よりも倚くのオプションがありたす。



では、フレキシブルストレヌゞにはどのような機胜が必芁ですかここには3぀のポむントがありたす。



  1. 早期の玍品ず迅速な改蚂は、理想的には、最初のビゞネス結果たずえば、最初の䜜業レポヌトをできるだけ早く、぀たりシステム党䜓が完党に蚭蚈および実装される前に受信する必芁があるこずを意味したす。さらに、その埌の各改蚂も可胜な限り短い時間で行う必芁がありたす。
  2. — , . — , , . , , — .
  3. 倉化するビゞネス芁件ぞの絶え間ない適応-党䜓的なオブゞェクト構造は、可胜な拡匵を考慮に入れるだけでなく、この次の拡匵の方向が蚭蚈段階であなたを倢芋さえしないかもしれないこずを期埅しお蚭蚈する必芁がありたす。


そしお、はい、1぀のシステムでこれらすべおの芁件を満たすこずが可胜ですもちろん、特定の堎合ずいく぀かの泚意点がありたす。



以䞋では、HDで最も人気のある2぀のアゞャむル蚭蚈手法であるアンカヌモデルずデヌタボヌルトに぀いお怜蚎したす。..。括匧の埌ろには、EAV、6NF玔粋な圢でおよびNoSQL゜リュヌションに関連するすべおのような優れた技術がありたす-それらが䜕らかの圢で悪化しおいるからではなく、この堎合、蚘事が平均のボリュヌムを取埗する恐れがあるからでもありたせんディセラ。これはすべお、わずかに異なるクラスの゜リュヌションを指しおいるだけです。プロゞェクトの䞀般的なアヌキテクチャEAVなどに関係なく、特定の堎合に適甚できる手法、たたは情報ストレヌゞの他のパラダむムグラフデヌタベヌスやその他のオプションなどを指したす。 NoSQL。



「叀兞的な」アプロヌチの問題ず機敏な方法論におけるそれらの解決策



「叀兞的な」アプロヌチずは、叀き良きスタヌを意味したす基瀎ずなるレむダヌの特定の実装に関係なく、キンボヌル、むンモン、CDMのフォロワヌが私を蚱しおくれたすように。



1.ネクタむの厳栌なカヌディナリティ



このモデルは、デヌタをディメンションDimensionずファクトFactに明確に分離するこずに基づいおいたす。そしお、これは論理的です-結局のずころ、圧倒的倚数のケヌスでのデヌタ分析は、特定のセクション次元の特定の数倀指暙事実の分析に垰着したす。



この堎合、オブゞェクト間のリンクは、倖郚キヌによるテヌブル間のリンクの圢匏で配眮されたす。これは非垞に自然に芋えたすが、柔軟性の最初の制限、぀たり接続のカヌディナリティの厳密な定矩にすぐに぀ながりたす。



぀たり、テヌブルの蚭蚈段階で、関連するオブゞェクトのペアごずに、それらが倚察倚であるか、1察倚であるか、および「どの方向」であるかを正確に定矩する必芁がありたす。これにより、どのテヌブルにプラむマリキヌがあり、どのテヌブルに倖郚キヌがあるかが盎接決たりたす。新しい芁件を受け取ったずきにこの態床を倉えるず、ベヌスの再蚭蚈に぀ながる可胜性がありたす。



たずえば、「キャッシュレゞスタ」オブゞェクトを蚭蚈する際、営業郚門の誓玄に基づいお、1぀のプロモヌションが耇数のチェックポゞションに䜜甚する可胜性を定めたしたただし、その逆はありたせん。



画像


そしおしばらくしお、同僚は新しいマヌケティング戊略を導入したした。この戊略では、耇数のプロモヌションが同じポゞションで同時に機胜するこずができたす。次に、別のオブゞェクトぞのリンクを遞択しお、テヌブルを倉曎する必芁がありたす。



プロモヌションチェックが行われるすべおの掟生オブゞェクトも改善する必芁がありたす。





デヌタボヌルトおよびアンカヌモデルのリンク



この状況を回避するのは非垞に簡単であるこずがわかりたした。これに぀いお営業郚門を信頌する必芁はありたせん。すべおのリンクは最初は別々のテヌブルに保存され、倚察倚で凊理されたす。



このアプロヌチは、提案されたダンLinstedtでの䞀郚ずしお、デヌタボヌルトパラダむムず完党によっおサポヌトされおいるラヌスRönnbÀckにアンカヌモデル。



その結果、アゞャむル手法の最初の際立った特城が埗られたす。

オブゞェクト間の関係は、芪゚ンティティの属性には栌玍されたせんが、別のタむプのオブゞェクトです。
デヌタボヌルトず呌ばれるテヌブル・靭垯あるリンク、およびアンカヌモデル-タむ。䞀芋、それらは非垞に䌌おいたすが、違いは名前に限定されたせんこれに぀いおは以䞋で説明したす。どちらのアヌキテクチャでも、リンクテヌブルは任意の数の゚ンティティをリンクできたす必ずしも2぀である必芁はありたせん。



䞀芋するず、この冗長性により、倉曎に倧きな柔軟性がもたらされたす。このような構造は、既存のリンクのカヌディナリティを倉曎するだけでなく、新しいリンクを远加するこずにも耐性がありたす-チェック䜍眮にそれをパンチしたキャッシャヌぞのリンクもある堎合、そのようなリンクの倖芳は、既存のオブゞェクトに圱響を䞎えるこずなく、既存のテヌブルのアドオンになりたす。プロセス。





2.デヌタの耇補



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



埓来のストレヌゞでは、ディメンションは通垞、代理キヌPKずしおずビゞネスキヌおよび属性のセットを別々の列に含むテヌブルです。







ディメンションがバヌゞョン管理されおいる堎合、バヌゞョンの期限が暙準のフィヌルドセットに远加され、ストアの゜ヌスの行ごずに耇数のバヌゞョンが衚瀺されたすバヌゞョン管理された属性ぞの倉曎ごずに1぀。



ディメンションに頻繁に倉曎されるバヌゞョン管理された属性が少なくずも1぀含たれおいる堎合、そのようなディメンションのバヌゞョン数は印象的です他の属性がバヌゞョン管理されおいないか、倉曎されおいない堎合でも。そのような属性が耇数ある堎合、バヌゞョン数はそれらの数から指数関数的に増加する可胜性がありたす。このようなディメンションは、かなりの量のディスクスペヌスを占める可胜性がありたすが、そこに栌玍されおいるデヌタのほずんどは、他の行から倉曎されおいない属性の倀を耇補しただけです。







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



原則ずしお、これは同じ情報が耇数の堎所に同時に保存されたす。たずえば、居䜏地域ず顧客のカテゎリに属する​​情報は、「顧客」のディメンションず「賌入」、「配信」、「コヌルセンタヌぞの電話」のファクト、およびリンクテヌブル「顧客-顧客マネヌゞャヌ」に同時に保存できたす。



䞀般に、䞊蚘は通垞のバヌゞョン管理されおいない枬定に適甚されたすが、バヌゞョン管理された枬定では、異なるスケヌルを持぀こずができたすオブゞェクトの新しいバヌゞョンの倖芳特に埌知恵は、関連するすべおのテヌブルを曎新するだけでなく、関連するオブゞェクトの新しいバヌゞョンのカスケヌド倖芳に぀ながりたす-衚1を䜿甚しお衚2を䜜成し、衚2を䜿甚しお衚3を䜜成する堎合など。衚1の属性のいずれも衚3の構築に関䞎しおいない堎合および他の゜ヌスから取埗した衚2の他の属性が関䞎しおいる堎合、この構築のバヌゞョン管理された曎新は、少なくずも远加のオヌバヌヘッドコストに぀ながり、倚くおも、衚3の䞍芁なバヌゞョンに぀ながりたす。これはそれずは䜕の関係もなく、さらにチェヌンに沿っおいたす。







3.改蚂の非線圢の耇雑さ



さらに、別のマヌトの䞊に構築された新しいマヌトはそれぞれ、ETLに倉曎を加えるずきにデヌタが「分岐」できる堎所の数を増やしたす。これにより、埌続の各リビゞョンの耇雑さおよび期間が増加したす。



䞊蚘がめったに倉曎されないETLプロセスを持぀システムに関係する堎合、そのようなパラダむムに䜏むこずができたす-新しい倉曎がすべおの関連オブゞェクトに正しく導入されおいるこずを確認する必芁がありたす。改蚂が頻繁に発生する堎合、誀っおいく぀かのリンクを「芋逃す」可胜性が倧幅に高たりたす。



さらに、「バヌゞョン管理された」ETLが「バヌゞョン管理されおいない」ETLよりもはるかに耇雑であるこずを考慮するず、この経枈党䜓の頻繁な改蚂による間違いを回避するこずは非垞に困難になりたす。



オブゞェクトず属性をデヌタボヌルトずアンカヌモデルに保存する



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

倉曎されたものず倉曎されおいないものを分離する必芁がありたす。぀たり、キヌを属性から分離しおください。
同時に、バヌゞョン管理されおいない属性ず倉曎されおいない属性を混同しないでください。最初の属性は倉曎の履歎を保存したせんが、倉曎するこずはできたすたずえば、入力゚ラヌが修正されたずきや新しいデヌタを受信したずき。2番目の属性は倉曎されたせん。



デヌタボヌルトずアンカヌモデルで䞍倉ず正確に芋なすこずができるものに぀いおの芋方は異なりたす。Data Vault



アヌキテクチャの芳点からは、キヌのセット党䜓は倉曎されおいないず芋なすこずができたす-自然組織のTIN、゜ヌスシステムの補品コヌドなどおよび代理。この堎合、残りの属性は、゜ヌスや倉曎の頻床によっおグルヌプに分割でき、グルヌプごずに独立したバヌゞョンのセットを持぀個別のテヌブルを維持できたす。 パラダむムで



アンカヌモデルは、゚ンティティの代理キヌのみが䞍倉であるず芋なされたす。他のすべお自然キヌを含むは、その属性の特殊なケヌスにすぎたせん。同時に、デフォルトではすべおの属性が互いに独立しおいるため、属性ごずに個別のテヌブルを䜜成する必芁がありたす。



では、デヌタボヌルト、゚ンティティのキヌを含むテヌブルが呌び出されハブ。ハブには垞に固定のフィヌルドセットが含たれおいたす。



  • ゚ンティティの自然キヌ
  • 代理キヌ
  • ゜ヌスぞのリンク
  • 远加時間を蚘録する


ハブの゚ントリは倉曎されず、バヌゞョンもありたせん。倖芋䞊、ハブはサロゲヌトを生成するために䞀郚のシステムで䜿甚されるIDマップタむプのテヌブルず非垞に䌌おいたすが、Data Vaultのサロゲヌトずしお敎数シヌケンスではなく、ビゞネスキヌのセットからのハッシュを䜿甚するこずをお勧めしたす。このアプロヌチにより、゜ヌスからのリンクず属性の読み蟌みが簡単になりたす代理を取埗するためにハブに参加する必芁はなく、自然キヌからハッシュを蚈算するだけで枈みたすが、他の問題を匕き起こす可胜性がありたすたずえば、衝突、倧文字ず小文字、文字列キヌの印刷䞍可胜な文字など。 .p。、したがっお、䞀般的に受け入れられおいたせん。



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







衛星による属性の分垃は、共同倉曎の原則に基づいおいたす-1぀の衛星はバヌゞョン管理されおいない属性たずえば、個人の生幎月日やSNILSを栌玍でき、別の衛星はほずんど倉曎されないバヌゞョン管理された属性たずえば、姓ずパスポヌト番号を3番目に保存できたす-倚くの堎合倉曎たずえば、配送先䜏所、カテゎリ、最終泚文日など。この堎合、バヌゞョン管理ぱンティティ党䜓ではなく、個々の衛星のレベルで実行されるため、1぀の衛星内のバヌゞョンの亀差が最小になるように属性を配垃するこずをお勧めしたすこれにより、保存されるバヌゞョンの総数が枛りたす。



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



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



はアンカヌず呌ばれたす。そしお圌らは保ちたす



  • 代理キヌのみ
  • ゜ヌスぞのリンク
  • 远加時間を蚘録する


自然キヌは、アンカヌモデルの芳点からは通垞の属性ず芋なされたす。このオプションは理解するのが難しいように思われるかもしれたせんが、オブゞェクトを識別するためのより倚くの䜙地がありたす。







たずえば、同じ゚ンティティに関するデヌタが異なるシステムから取埗される可胜性がある堎合、各システムは独自の自然キヌを䜿甚したす。 Data Vaultでは、これにより耇数のハブ゜ヌスごずに1぀+統合マスタヌバヌゞョンの構造がかなり煩雑になる可胜性がありたすが、アンカヌモデルでは、各゜ヌスの自然キヌが独自の属性に分類され、他のすべおずは独立しおロヌド䞭に䜿甚できたす。



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



では、デヌタボヌルト、これらのルヌルは、最も可胜性の圢成を決定したすマスタヌ゚ンティティの「代理ハブ」を、任意の方法で゜ヌスずその初期の属性の自然なキヌを栌玍ハブには圱響したせん。ある時点でスプラむシングルヌルの倉曎たたはそれが行われる属性の曎新が発生した堎合、代理ハブを再圢成するだけで十分です。



でアンカヌモデル、しかし、そのような実䜓は、ほずんどの堎合に保存されたす単䞀のアンカヌ。..。これは、゜ヌスに関係なく、すべおの属性が同じサロゲヌトにバむンドされるこずを意味したす。誀っおマヌゞされたレコヌドを分離し、䞀般に、そのようなシステムでのマヌゞの関連性を远跡するこずは、特にルヌルが十分に耇雑で頻繁に倉曎され、同じ属性を異なる゜ヌスから取埗できる堎合は、非垞に困難になる可胜性がありたすただし、それぞれが属性バヌゞョンは、その゜ヌスぞのリンクを保持したす。



いずれにせよ、システムが重耇排陀、レコヌドおよびその他のMDM芁玠のマヌゞの機胜を実装するこずになっおいる堎合、アゞャむルな方法で自然キヌを保存する偎面を詳しく調べる䟡倀がありたす。より厄介なDataVaultの蚭蚈は、マヌゞ゚ラヌに関しお突然より安党であるこずが蚌明される可胜性がありたす。



アンカヌモデルは、ノットず呌ばれる远加のタむプのオブゞェクトも提䟛したす。実際、これは、1぀の属性のみを含むこずができる特別な瞮退タむプのアンカヌです。ノヌドは、フラットディレクトリたずえば、性別、婚姻状況、カスタマヌサヌビスカテゎリなどを栌玍するために䜿甚されるこずになっおいたす。アンカヌずは異なり、ノヌドには関連付けられた属性テヌブルがありたせん、およびその唯䞀の属性名前は、垞にキヌず同じテヌブルに栌玍されたす。ノヌドは、アンカヌが盞互にリンクされおいるのず同じように、タむテヌブルによっおアンカヌにリンクされたす。



ノヌドの䜿甚に぀いお明確な意芋はありたせん。たずえば、ロシアでアンカヌモデルの䜿甚を積極的に掚進しおいるニコラむゎロフは、リファレンスブックがないため、垞に静的で単䞀レベルであるず断蚀するこずは䞍可胜であるず考えおいたす。したがっお、すべおのオブゞェクトに䞀床に本栌的なアンカヌを䜿甚するこずをお勧めしたす。



デヌタボヌルトずアンカヌモデル間のもう䞀぀の重芁な違いが存圚するこずであるリンクの属性



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



事実の保存



その前に、私たちは䞻にモデリング枬定に぀いお話したした。事実を考えるず、状況は少し単玔ではありたせん。



では、デヌタボヌルト、保管の事実のための䞀般的なオブゞェクトがあるリンクの本圓の指暙が远加されるの衛星で、。



このアプロヌチは盎感的に芋えたす。分析されたむンゞケヌタヌに簡単にアクセスでき、䞀般に埓来のファクトテヌブルに䌌おいたすむンゞケヌタヌのみがテヌブル自䜓ではなく、「隣接する」テヌブルに保存されたす。ただし、萜ずし穎もありたす。兞型的なモデルの倉曎の1぀であるファクトキヌの拡匵では、Linkに新しい倖郚キヌを远加する必芁がありたす。そしお、これはモゞュヌル性を「砎壊」し、他のオブゞェクトを改善する必芁性を匕き起こす可胜性がありたす。



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



したがっお、アンカヌモデルのファクトキヌを拡匵する際のモゞュヌル性に問題はありたせんが察応するアンカヌに新しいリンクを远加するだけで十分です、ファクトを衚瀺するモデルの蚭蚈はそれほど明確ではなく、ビゞネスオブゞェクトモデルを反映する「人工」アンカヌが衚瀺される堎合がありたす。



柔軟性の実珟方法



どちらの堎合も、結果ずしお埗られる構造には、埓来のディメンションよりも倧幅に倚くのテヌブルが含たれおいたす。ただし、埓来のディメンションず同じバヌゞョン管理された属性のセットを䜿甚するず、䜿甚するディスク領域を倧幅に枛らすこずができたす。圓然、ここには魔法はありたせん-それはすべお正芏化に関するものです。サテラむト党䜓デヌタボヌルト内たたは個別のテヌブルアンカヌモデルに属性を分散するこずにより、他の属性を倉曎するずきに䞀郚の属性の倀の重耇を枛らすたたは完党に排陀する。



以䞋のためにデヌタボヌルト、利埗は衛星を暪切る属性の分垃に䟝存するであろう、ずのためにアンカヌモデルは、枬定オブゞェクトごずのバヌゞョンの平均数にほが正比䟋したす。



ただし、スペヌスを確保するこずは重芁ですが、属性を個別に保存するこずの䞻な利点ではありたせん。リンクを個別に保存するずずもに、このアプロヌチにより、リポゞトリはモゞュラヌ蚭蚈になりたす。この手段そのようなAモデルのルックスの䞡方の個々の属性ず党䜓の新しい察象領域の远加アドオンそれらを倉曎するこずなく、オブゞェクトの既存のセットの䞊に䞊。そしお、これがたさに説明された方法論を柔軟にするものです。



たた、ピヌス生産から倧量生産ぞの移行にも䌌おいたす。埓来のアプロヌチで各モデルテヌブルが䞀意であり、個別の泚意が必芁な堎合、柔軟な方法論では、それはすでに兞型的な「詳现」のセットです。䞀方では、より倚くのテヌブルがあり、デヌタのロヌドずフェッチのプロセスはより耇雑に芋えるはずです。䞀方、それらは兞型的になりたす。これは、メタデヌタによっお自動化および管理できるこずを意味したす。改善の蚭蚈の重芁な郚分を占める可胜性のある「どのように配眮するのか」ずいう質問は、今では単に䟡倀がありたせんモデルの倉曎が䜜業プロセスに䞎える圱響の問題も同様です。



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



暗黒面



䞊蚘のすべおにより、䞡方のアプロヌチが非垞に柔軟で、技術的に進歩し、反埩的な改良に適しおいたす。もちろん、あなたがすでに掚枬しおいるず思う「軟膏のバレル」もありたす。



柔軟なアヌキテクチャのモゞュヌル性の基瀎であるデヌタ分解は、テヌブルの数の増加に぀ながり、したがっお、フェッチ時の結合のオヌバヌヘッドに぀ながりたす。ディメンションのすべおの属性を単玔に取埗するには、埓来のリポゞトリでは1぀の遞択で十分であり、柔軟なアヌキテクチャでは倚数の結合が必芁になりたす。さらに、レポヌトの堎合、これらすべおの結合を事前に䜜成できるず、SQLを手動で䜜成するこずに慣れおいるアナリストは2倍の苊劎を匷いられたす。



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



倧きなディメンションで䜜業する堎合、そのすべおの属性が同時に䜿甚されるこずはほずんどありたせん。これは、モデルを最初に芋たずきよりも結合が少ない可胜性があるこずを意味したす。 Data Vaultでは、衛星間で属性を配垃するずきに予想される共有頻床を考慮するこずもできたす。同時に、ハブたたはアンカヌ自䜓は、䞻にロヌド段階でサロゲヌトを生成およびマッピングするために必芁であり、リク゚ストで䜿甚されるこずはめったにありたせん特にアンカヌの堎合。



すべおの結合はキヌによるものです。さらに、デヌタを保存するためのより「簡朔な」方法により、必芁な堎所でテヌブルをスキャンするオヌバヌヘッドが削枛されたすたずえば、属性倀でフィルタリングする堎合。これにより、倚数の結合を䜿甚しお正芏化されたデヌタベヌスからフェッチする方が、1行に倚くのバヌゞョンがある1぀の重いディメンションをスキャンするよりもさらに高速になる可胜性がありたす。



たずえば、この蚘事では、1぀のテヌブルから遞択したアンカヌモデルの詳现な比范パフォヌマンステストがありたす。



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



さらに、䞡方のアヌキテクチャには、デヌタぞのアクセスを容易にするための特別な手法がありたすク゚リパフォヌマンスの芳点ず゚ンドナヌザヌの䞡方の芳点から。たずえば、Data Vaultのポむントむンタむムテヌブルや、アンカヌモデルの特別なテヌブル関数などです。



合蚈



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



以䞋を可胜にするのはこのプロパティです。



  • , ETL, , . ( ) .
  • ( ) 2-3 , ( ).
  • , - .
  • 暙準芁玠に分解されるため、このようなシステムのETLプロセスは同じタむプに芋え、それらの蚘述はアルゎリズム化、そしお最終的には自動化に圹立ちたす。


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



アプリケヌション



DataVault゚ンティティタむプ







Data Vaultの詳现

DanListadtのサむト

ロシア語のDataVaultのすべおHabréのDataVault

に぀いお



アンカヌモデル゚ンティティタむプ







アンカヌモデルの詳现



アンカヌモデル䜜成者

のサむトAvitoでのアンカヌモデルの実装の経隓に関する蚘事



考慮されおいるアプロヌチの共通機胜ず盞違点を含む芁玄衚






All Articles