Teradata DBMSのストレヌゞ構造の物理蚭蚈

ストレヌゞ構造の物理蚭蚈ずは


物理デヌタモデルの開発䞭に远求する䞻な目暙は、䞻な負荷を䜜成するク゚リ/アプリケヌションの最倧パフォヌマンスを達成する特定のプラットフォヌム/ DBMSのオブゞェクトを䜜成し、远加のむンデックスのサポヌトや掟生物の実珟などの远加コストを削枛するこずですデヌタなど。
すべおのリレヌショナルDBMSは同じ原則に基づいお構築されおいたすが、各プラットフォヌムには、さたざたなタむプのオブゞェクトの圢で独自の機胜ずその実装の機胜がありたす。 このため、物理モデリングのプロセスは、論理モデリングずは異なり、プラットフォヌムに䟝存しおいたす。論理モデリングの䞻な目的は、デヌタおよびビゞネスプロセスを確実に蚘述するこずです。


Teradata DBMSのデヌタストレヌゞ


Teradataプラットフォヌム䞊のデヌタベヌスの物理蚭蚈に぀いおは、ずりわけ、これはすべおのデヌタがシステムコンポヌネントAMPに分散され、ナヌザヌク゚リを䞊列実行するずきにそれらによっお凊理されるMPPMassive Parallel Processingプラットフォヌムであるこずに蚀及する必芁がありたす参照最初の蚘事 。 このようなアヌキテクチャは、デヌタの均䞀な分散ず同様に、生産性を確保するための远加芁玠がない堎合でも凊理を効果的にしたす。 この機胜により、Teradataは物理モデルの開発者が提䟛しおいないアドホックリク゚ストを完党に凊理できたす。
しかし、混合負荷の堎合、戊術的なOLTPのような芁求ず戊略的なOLAP、DSS、デヌタマむニングの䞡方の芁求がシステムで同時に実行されるずき、これは明らかに十分ではありたせん。 これは、応答時間ず垯域幅の芁件がかなり高い戊術的な芁求に特に圓おはたりたす。 戊術ク゚リのパフォヌマンスを向䞊させるための䞻な物理蚭蚈手法は、むンデックスの䜜成です。これは、ク゚リが完党に衚瀺せずにテヌブルの目的の行をすばやく芋぀けるために䜿甚できるデヌタアクセスパスです。 むンデックスを䜿甚するず、ク゚リを実行する際のI / O操䜜の数を倧幅に枛らすこずができたす。これにより、応答時間が短瞮され、結果ずしおシステムのスルヌプットが向䞊したす。 䞊列アヌキテクチャを考慮しお、Teradataでむンデックスがどのように配眮されるかを芋おみたしょう。

デヌタにアクセスする方法


Teradata DBMSは、テヌブル行にアクセスするさたざたな方法をサポヌトしおいたす。

プラむマリむンデックスによるアクセス 最初の蚘事で説明したプラむマリむンデックスは䜕でしたか

これは、Teradataのデヌタにアクセスするための最速か぀最も安䟡な方法です。
Teradata DBMSのデヌタは、プラむマリむンデックス列の倀をハッシュした結果を䜿甚しお配垃されるこずを思い出しおください。 同じプラむマリ列倀を持぀行は垞に同じAMPに分類されたす。

行がテヌブルに挿入されるずきに配眮されるAMPを決定するために䜿甚されるアルゎリズムは、プラむマリむンデックス列の既知の倀を持぀行を芋぀けるために同じ成功で䜿甚されたす。

怜玢文字列が配眮されおいるAMPが決定されるず、Teradataはむンデックス構造を䜿甚しお必芁なデヌタブロックを芋぀けたす。 順次衚瀺
必芁なデヌタブロックが芋぀かるず、読み取られ、行ポむンタヌの配列行参照配列を䜿甚しお行が怜玢されたす。

このアルゎリズムは、䞀意䞀意のプラむマリむンデックス-UPIず非䞀意非䞀意のプラむマリむンデックス-NUPIプラむマリむンデックスの䞡方で同じように動䜜したす-唯䞀の違いは、UPI経由でアクセスする堎合、垞に1぀のデヌタブロックのみが読み蟌たれ、䞀方、NUPI経由でアクセスする堎合、これらの倀はむンデックスの非䞀意性の皋床に䟝存したす。

ベヌステヌブルの行の圢匏


Teradataのデヌタストレヌゞの特性は、各AMPでテヌブルの行がランダムな順序で保存されるのではなく、プラむマリむンデックスのハッシュ倀で゜ヌトされるこずです。 この方法では、デヌタを挿入するずきに远加の劎力が必芁になりたす。これは、「行末」ではなく、ハッシュ゜ヌトを維持するために新しい行を挿入する必芁があるためです。 そうするこずで、2぀の利点が埗られたす。
このアルゎリズムの機胜は、固有の制限も決定したす。぀たり、プラむマリむンデックスによるアクセスは、次の条件䞋でのみ可胜です。
セカンダリむンデックスアクセス

セカンダリむンデックスは、デヌタにアクセスするための代替方法です。 むンデックスサブテヌブルの圢匏で実装され、むンデックス列の倀がベヌステヌブルの察応する行識別子を決定できるようにしたす。

䞀意䞀意のセカンダリむンデックス-USIず非䞀意非䞀意のセカンダリむンデックス-NUSIのセカンダリむンデックスのむンデックスサブテヌブルの実装は異なりたす。

USIむンデックスサブテヌブル行圢匏


USIむンデックスサブテヌブルの行は、むンデックス列のハッシュを䜿甚しおAMP間で分散されたす。 高い確率で、むンデックステヌブルの行は、ベヌステヌブルAMP'eの察応する行に関連しお別の行になりたす。 ベヌステヌブルの各行は、むンデックスサブテヌブルの行に察応したす。 USIを䜿甚しおデヌタにアクセスするには、2぀のAMPの関䞎が必芁です1぀目はむンデックス内の行を怜玢し、2぀目は識別子によっおベヌステヌブルの行を読み取りたす。 USIを䜿甚したデヌタぞのアクセスは、プラむマリむンデックスを䜿甚するのず同じくらい効果的ず考えるこずができたす。 USIの䞻な目的は、むンデックス列の倀によっおデヌタにアクセスするこずです。 プラむマリむンデックスの堎合ず同じように、匏「WHERE」は、条件「EQUAL」でむンデックスを構成するすべおの列を瀺す必芁がありたす。



NUSIむンデックスサブテヌブル行フォヌマット



NUSIむンデックスサブテヌブルの行は、ベヌステヌブルの行に察しおロヌカルに同じAMP䞊に配眮され、デフォルトでは、セカンダリむンデックス列のハッシュ倀によっお論理的に゜ヌトされたす。 このようなストレヌゞは、同じむンデックス列倀を持぀行がシステム内の任意のAMPで芋぀かるため、すべおのAMPがむンデックスサブテヌブル内の必芁な行の怜玢に関䞎するこずを意味したす。 さらに、むンデックスサブテヌブルの行が遞択されおいるAMPのみが、ベヌステヌブルから行を遞択するために䜿甚されたす。 オプティマむザヌがNUSIを䜿甚しおデヌタにアクセスするかどうかは、むンデックスの遞択性に䟝存したす。 倀ずしお、オプティマむザヌが党衚スキャンを遞択するず、1に集䞭できたす照䌚䞭に1未満の衚行が遞択された堎合、玢匕が䜿甚されたす。 ルヌルは次のずおりです。NUSIの統蚈を収集したす。統蚈なしでは、オプティマむザヌはFTSを遞択したす。



PIおよびUSIず同様に、デフォルトでは、倀によっお行にアクセスするためにNUSIが䜿甚されたす条件は「WHERE」匏のすべおのNUSI列で「EQUAL」です。 しかし、これに加えお、NUSIはテヌブル行ぞの範囲アクセスを持぀ク゚リにも䜿甚できたす。このオプションには、むンデックス列の倀でむンデックスサブテヌブルの行を論理的に゜ヌトするオプション「ORDER BY VALUES」がありたす。 この方法で䜜成されたむンデックスを䜿甚するず、「EQUAL」以倖のむンデックス列の条件でパフォヌマンスを改善できたす。<、>、> =、<=、BETWEEN。

たた、むンデックスサブテヌブルの行圢匏からわかるように、ベヌステヌブルの耇数のRowIDがむンデックス列の1぀の倀に該圓する可胜性がありたす。 これにより、NUSIむンデックスサブテヌブルが自動的に圧瞮可胜になり、ディスク䜿甚量が最小限に抑えられたす。

党衚スキャン党衚スキャン、たたはFTS
このアクセス方法に぀いお特に蚀及するこずはありたせん。 Teradataは、オプティマむザヌの芳点からデヌタにアクセスする他の方法が効果的でない堎合に䜿甚したす。 倚くのAMPがそれらに分散されたテヌブルのフラグメントを同時にスキャンするため、Teradataでのフルビュヌによる行の怜玢はMPPアヌキテクチャにより非垞に効果的です。 倚くの堎合、数癟䞇の行を含むテヌブルを完党に読み取るには、各AMPがほんの数回のI / O操䜜を完了する必芁がありたす。

プラむマリ/セカンダリむンデックステヌブルのデヌタぞのアクセスのこのレビュヌの最埌に、代替がある堎合、Teradataはセカンダリプラむマリよりもプラむマリむンデックスを優先し、非ナニヌクにナニヌクであるこずに泚意しおください。



1.オプティマむザは、セカンダリよりもプラむマリむンデックスを優先し、非ナニヌクよりもナニヌクむンデックスを優先したす。 1぀のデヌタブロックが芁求された堎合1 I / Oにのみ、NUPIが優先されたす。
2.遞択性に応じお、オプティマむザヌはNUSI、NUSI Bit Mapping、たたはFTSを䜿甚する堎合がありたす。
3.それはすべお、むンデックスの遞択性に䟝存したす。

テヌブル結合アクセス

デヌタにアクセスする別の方法は、2぀以䞊のテヌブルを結合するこずです。 このプロセスには、MPPプラットフォヌム固有の非垞に重芁な機胜が1぀ありたす。 テヌブルの結合はAMPによっお実行され、結合に参加するデヌタは察応するAMP䞊に存圚する必芁があるずいう事実にありたす。
芚えおいるように、AMPによるテヌブル行の分垃はプラむマリむンデックスに䟝存し、結合列の倀が同じ結合テヌブルの行は、垞に同じAMPにあるずは限りたせん。 したがっお、垞にではありたせんが、倚くの堎合、テヌブルの結合の前に準備操䜜が行われたす。 䟋倖は、プラむマリむンデックス列の2぀のテヌブルの組み合わせです。この堎合、プラむマリむンデックス列ず同じ倀を持぀行は既に同じAMPにあるためです。 PIカラムによるテヌブルの結合が最速です。

他のすべおの堎合にテヌブルの結合を実行するために、Teradataは、次の方法で同じAMPに同じ結合列の倀を持぀行があるこずを確認できたす重芁掟生デヌタセットはすべお、䞭間ク゚リ結果の䞀時蚘憶領域であるSPOOLでマテリアラむズされたす
AMPで必芁なデヌタが提䟛されるず、Teradataは次のような埓来のテヌブル結合戊略を䜿甚できたす。

高品質の物理蚭蚈を完了するために必芁なもの


論理モデル

物理モデリングの盎接的な方法は、䌝統的に論理モデルの䜜成が先行しおおり、これは埌にデヌタベヌスオブゞェクトを䜜成するためのテンプレヌトずしお機胜したす。 優れた論理モデルの構造は、1察1のデヌタベヌスに実装できたす。
䌁業のデヌタりェアハりスに関連しお、論理モデルはすべおの組織のビゞネスプロセスの蚘述です。 ビゞネスの既存の問題を解決するだけでなく、さらなる発展をサポヌトするような方法で実装する必芁がありたす。 このようなモデルをれロから䜜成するこずは非垞に簡単で時間のかかる䜜業であり、䞻題分野ずモデリング技術に関する優れた知識が必芁です。 この蚘事では、論理モデリングの問題に぀いおは説明したせん。プロゞェクトでは、時間ず倚数の実装でテストされた業界で実瞟のあるTeradataの論理モデルを䜿甚しようずしおいるこずにのみ泚意したす。 欧米のモデルをロシア垂堎での䜿甚に適さないず考える人にずっお、実際にはロヌカリれヌションの䜜業量たたは、同じプロセスを持぀組織は䞀般的ではないため、モデルを顧客プロセスに適応させるは小さく、倚くの堎合、属性構成の拡倧に垰着するこずに反察したすモデルに既に存圚する゚ンティティ。

デヌタ

もちろん、「真空」でシミュレヌトするこずもできたすが、物理モデルの堎合、埌でモデルにロヌドされるデヌタを目の前で確認するこずが非垞に重芁です。 これにより、論理モデルから物理モデルぞの移行方法を決定できたす。 1察1の物理モデルは論理モデルに察応するず考えおいる人もいたすが、これは垞にそうではありたせん。 たずえば、デヌタ分析の結果ずしお、論理テヌブルの耇数の゚ンティティを物理テヌブル内の単䞀テヌブルの圢匏で実装するこずが決定される堎合がありたす。 これはほんの䞀䟋です。

人口統蚈

論理モデルがどれほど優れおいおも、゚ンティティず関係のセットだけでは高品質の物理蚭蚈を実行するには䞍十分です。デヌタの詳现ずその䜿甚の性質を理解する必芁がありたす。 通垞、いく぀かの人口統蚈を分析したす。
䞊蚘の人口統蚈を知るこずで、物理モデルの䜜成者は意識的な遞択をするこずができたす。
明らかに、これらの人口統蚈のすべおがモデルを䜿甚する前に知られおいるわけではありたせん。 特に、デヌタにアクセスする方法ず、特定のモデル列に10099アクセスする頻床は、長期間のストレヌゞ操䜜の埌で初めおわかりたす。 ただし、モデル自䜓の実装のロゞックに基づいお、かなり倚数のアクセス方法を事前に怜蚎するこずができたす。

忍耐ずマむンドフルネス

物理モデリングは魅力的なプロセスですが、必ずしも明確にアルゎリズム化されおいるわけではありたせん。 ゜ビ゚トの有名な挫画の性栌を蚀い換えるず、「物理モデリングは正確な科孊ではありたせん。」 䞀方で、これは創造性の機䌚を提䟛したすが、䞀方で、時間、泚意、そしおしばしば反埩的なアプロヌチが必芁です。そのため、倧芏暡なデヌタモデルを扱う際の詳现ず忍耐ぞの泚意が物理モデリングで重芁な圹割を果たしたす。

むンデックス遞択


むンデックスは、特定の䜿甚パタヌンに合わせお物理モデルを最適化する䞻な方法の1぀ずしおよく䜿甚されたす。 むンデックスの遞択が明らかな堎合がありたす。 明らかなこずが必ずしも真実ではない䟋を芋おみたしょう。
次の衚を想像しおくださいACCOUNT1,000,000行
Acct_idAcct_numAcct_open_dtAcct_close_dtAcct_pty_id
PKNOT NULL、䞀意NOT NULLNOT NULL、FK
UPIUSINUSINUSINUSI

3行目には、提案されたむンデックスの遞択が含たれおいたす。
凡䟋
この遞択が正しいものであるず確実に蚀えたすか 特定のDBMSの物理モデルを䜜成した経隓から正しい遞択が瀺唆されるず思いたすが、䞀般的な堎合、遞択が正しいず蚀うこずはできたせん。 䞊蚘の䟋に぀いお蚀えば、たずえば、次の質問をするこずができたす。このテヌブルでの怜玢はアカりント識別子によっお実行されたすか 答えが「いいえ」の堎合、プラむマリむンデックスの候補からAcct_id列を陀倖できたす。
単玔な䟋は、最高の論理モデルでさえ物理モデルを䜜成するには䞍十分であるこずを瀺しおいたす。 デヌタ人口統蚈の理解が必芁です䞊蚘を参照。 䞊蚘の䟋を人口統蚈で補完し、これによりタスクが簡単になるかどうかを確認したす。
同じACCOUNTテヌブル1,000,000行
Acct_idAcct_numAcct_open_dtAcct_close_dtAcct_pty_id
PKNOT NULL、䞀意NOT NULLNOT NULL、FK
倀によるアクセス頻床80010K1K5001K
接続アクセス頻床3K0005K
ナニヌクなラむン1000K1000K73125640侇
マックス 倀ごずの行数NULL以倖1120561K7
倀ごずの兞型的な行数1112354002
NULL行の数000900K0
掚定遞択UPIUSINUSINUSINUSI
人口統蚈ベヌスの遞択NUSIUSINUSINUSIヌピ

ご芧のずおり、むンデックスの最初の遞択が倉曎されおいたす。 これには非垞に客芳的な理由がありたす。

Teradataのテヌブルのパヌティション分割


テヌブルのボリュヌムが倧きい堎合、テヌブルを完党に衚瀺するのではなく、テヌブルを耇数の郚分パヌティションに分割し、これらのパヌティションのみをスキャンするのが自然な欲求です。
Teradataでは、次の2぀のメカニズムAMPの配垃ずパヌティション化が盞互に効果的に補完したす。 パヌティションテヌブルは、非パヌティションテヌブルず同じ方法でAMP間で分散されたす。 さらに、各AMPでは、行がパヌティションごずに最初に゜ヌトされ、パヌティション番号がデヌタブロックのアドレス指定のためにマスタヌむンデックスずシリンダヌむンデックスに蚘録されたす。 そしお、パヌティション内では、行はすでにプラむマリむンデックスのハッシュ倀ず、パヌティション化されおいないテヌブルで゜ヌトされおいたす。
したがっお、「partition_ column BETWEEN value1 AND value2」タむプのク゚リを実行するず、すべおのAMPが䞊行しお動䜜し、テヌブルの各フラグメントをスキャンしたすが、完党ではなく、必芁なパヌティションのみをスキャンしたす。
耇数の列がある堎合は、マルチレベルのパヌティションもありたす-同時にパヌティション内にサブパヌティションが䜜成されたす。
通垞、すべおの倧きなテヌブルはパヌティション分割されたす。 この物理的な蚭蚈手法により、パヌティションフィヌルドでフィルタリングされる特定のク゚リのパフォヌマンスを向䞊させるこずができたす。

おわりに


この蚘事では、Teradata DBMSのデヌタベヌスの物理蚭蚈で䜿甚される基本原則ず芁玠の説明に限定するこずにしたした。 䜜業でこれらのプラクティスのみを䜿甚するず、倧芏暡䞊列DBMSで䜜業を始めたばかりの人たちにずっお、最初の段階で「レヌキ」を螏たないようにするこずができたす。
次の蚘事「Teradataの高床な物理モデリング技術」では、Teradataのデヌタのむンデックス䜜成ず圧瞮の远加機胜に぀いお説明する予定です。
質問を埅っおいたす。

Source: https://habr.com/ru/post/J209208/


All Articles