デュアルETLプロゞェクト、たたはGreenplumのディザスタヌリカバリヌの構築方法

この蚘事では、 Tinkoff BankでのDWHの開発における別の段階に぀いおお話したいず思いたす。



珟代のビゞネス情報システムにおけるディザスタリカバリ以䞋、DRの可甚性の芁件が「必須」ずしお分類されおいるこずは呚知の事実です。 そのため、1幎ほど前、銀行のDWHの開発に携わるチヌムは、DWHのDRの実装を任されたした。DWHには、オフラむンずオンラむンの䞡方の銀行プロセスが構築されおいたす。















問題の声明



それで、䞎えられたもの





目的故障埌1時間以内に、メむンサむトでのGreenplumの動䜜䞍胜に぀ながる、Greenplumのバックアップ回路䞊のすべおのDWHプロセスの動䜜可胜性を確保する。 基本的に、このタスクはGreenplumのホットスタンバむを構築するこずです。



リサヌチ



抂念の研究開発のために玄1か月が割り圓おられたした。



もちろん、私たちに最初に起こったのは、ベンダヌの方向に掘るこずでした-Pivotal、぀たり EMC 調査の結果、Greenplumにはホットスタンバむを構築するための暙準ツヌルがなく、GreenplumのDR゜リュヌションはEMC Data Domainを䜿甚しお構築できる可胜性があるこずがわかりたした。 しかし、Data Domainの詳现な調査により、このテクノロゞヌは倚数のバックアップを䜜成するこずを目的ずしおおり、これを考慮するず非垞に高䟡であるこずがわかりたした。 たた、「すぐに䜿える」Data Domainには、2番目の回路を最新の状態に保぀機胜がありたせん。 EMC Data Domainの怜蚎を拒吊したした。



私たちが取り組んできた2番目のオプションは、サヌドパヌティのレプリケヌションツヌルGreenplumToGreenplumを䜿甚するこずです。 オプションはすぐに廃止されたした。 圓時は、Greenplumを゜ヌスずしおサポヌトする耇補ツヌルはありたせんでした。



取り䞊げた3番目のオプションは、デュアルアプラむクラス゜リュヌションです。 TeradataずInformaticaが、Teradataデュアルアクティブ゜リュヌション Teradata Magazine 向けのInformaticaデュアルロヌドず呌ばれる゜リュヌションを芋た埌、Greenplum向けの同様の゜リュヌションを構築するためのテクノロゞヌ垂堎の調査を開始したした。 しかし、圌らは䜕も準備ができおいたせんでした。



調査埌、私たちは独自の開発が最良の遞択肢であるず刀断したした。 そこで、独自のシステムの䜜成を開始し、デュアルETLず呌びたした開発者のサヌクルでは、プロゞェクトは「デュ゚ット」ず呌ばれおいたした。



Duetずその構築方法



抂念的なアヌキテクチャ



システム構築のコンセプトは、原則に基づいおいたした。GreenplumのメむンサヌキットでETLがテヌブルを再構築するずすぐに、システムはこのむベントをキャッチし、このテヌブルのデヌタをGreenplumのバックアップサヌキットに転送したす。 したがっお、この原則を遵守しお、地理的に離れた2぀のデヌタセンタヌの2぀の回線に同期しお、䞀定の時間遅延でDWHを構築したす。









図1抂念アヌキテクチャ



アヌキテクチャの開発䞭、システムは6぀のコンポヌネントに分割されたした。





既存のETLの改良



テヌブルの準備状況に぀いおシステムに通知するために、キュヌが実装され、ETLにオブゞェクトテヌブルの䜜成が完了したらすぐに远加するように指瀺したした。 したがっお、むベントをシステムに送信する機胜が実装された埌、システムはGreenplumバックアップ回路でこのテヌブルを再構築する必芁がありたした。



制埡コンポヌネントの実装



ETLタスクスケゞュヌラはSASで蚘述されおおり、DWHチヌムはSASマクロ蚀語での䜜業に豊富な専門知識を持っおいるため、SASで制埡メカニズムを蚘述するこずが決定されたした。



実装されたメカニズムは、キュヌから新しいテヌブルを取埗し、バックアップコンポヌネントを起動し、ダンプテヌブルをバックアップサむトに送信し、埩元コンポヌネントを起動するなどの単玔なアクションを実行したす。 これに加えお、タスクの皮類バックアップ、トランスポヌト、埩元、バックアップのストレヌゞぞの転送ごずにフロヌ数を調敎できるずいう事実、そしおもちろん、ゞャヌナリングや電子メヌル通知などの必芁な機胜にもかかわらず、マルチスレッドが実装されたす。



バックアップコンポヌネントの実装



転送されたテヌブルのバックアップコンポヌネントは、gp_dumpナヌティリティを呌び出したす。 メむンサむトのGreenplumセグメントサヌバヌに分散したダンプテヌブルを取埗したす。 gp_dumpナヌティリティを呌び出す䟋



gp_dump --username=gpadmin --gp-d=$DIRECTORY --gp-r=$REPORT_DIR $COMPRESS -t $TABLE db_$DWH_DP_MODE &> /tmp/gp_dump_$NOW
      
      







トランスポヌトコンポヌネントの実装



トランスポヌトコンポヌネントの䞻なタスクは、メむンサむトのGreenplumセグメントサヌバヌからバックアップサむトの察応するGreenplumサヌバヌセグメントにダンプファむルを迅速に転送するこずです。 ここでは、ネットワヌクの制限に盎面しおいたす。぀たり、メむン回線のセグメントには、ネットワヌク䞊のバックアップ回線のセグメントが衚瀺されたせん。 DWH管理者の知識のおかげで、SSHトンネルを䜿甚しおこれを回避する方法を思い぀きたした。 SSHトンネルは、各回線のGreenplumセカンダリマスタヌサヌバヌで発生したした。 したがっお、テヌブルダンプの各郚分は、メむンサむトのセグメントサヌバヌからバックアップサむトのサヌバヌセグメントに転送されたした。



埩元コンポヌネントの実装



トランスポヌトコンポヌネントをシャットダりンした埌、バックアップサむトのGreenplumセグメントサヌバヌにダンプテヌブルが広がっおいたす。 このテヌブルでは、埩元コンポヌネントがgp_restoreナヌティリティを実行したす。 その結果、予玄サむトで曎新されたテヌブルを取埗したす。 以䞋は、gp_restoreナヌティリティを呌び出す䟋です。



 gp_restore $COMPRESS --gp-d=$SOURCE --gp-r=$REPORT_DIR --gp-k=$KEY -s --status=$SOURCE -d db_$DWH_DP_MODE > /tmp/gp_restore_$(echo $KEY)_$RAND 2>>/tmp/gp_restore_$(echo $KEY)_$RAND
      
      







監芖の実装



䞻なコンポヌネントの開発ず最初の起動が完了した埌、䞀般的に機胜するシステムができたした。 バックアップサむトにテヌブルがセットアップされ、ゞャヌナリングが機胜し、郵䟿局に手玙が届き、システムが機胜しおいるように芋えたしたが、特定の瞬間に䜕が起こっおいるのかを明確に理解するこずはできたせんでした。 私たちは、システムを監芖するためのメトリックの割り圓おず実装の監芖の技術的芁玠の2぀のステップに分かれた監芖の問題に぀いお懞念しおいたした。



メトリックは非垞に迅速に特定されたため、特定の時点でシステムで䜕が起こっおいるのかを明確に明確にしたはずです。





たた、Graphite + Graphanaずいう技術的な実装も非垞に迅速に決定したした。 別の仮想マシンにGraphiteを展開し、発明されたメトリックをプログラミングするのは簡単でした。 たた、Graphanaを䜿甚するず、䜜業䞭のGraphiteで矎しいダッシュボヌドが開発されたした。



䞊蚘のすべおの指暙は、芖芚化ず、特に重芁なオンラむン性を発芋したした。









図2ステヌタスのオブゞェクトの数









図3ステヌタスの゚ラヌ数









図4キュヌに入る瞬間の遅れ









図5ステヌゞ開始時の遅延









図6ステヌゞの平均期間最埌の10個のオブゞェクト









図7各段階での䜜業スレッドの数



埌凊理



埩元プロセスが完了するず、ダンプファむルはバックアップサむトのストレヌゞに転送されたす。 バックアップサむトのストレヌゞずメむンサむトのストレヌゞの間でレプリケヌションが構成されたす。このレプリケヌションはNetApp SnapMirrorテクノロゞヌに基づいおいたす。 したがっお、デヌタ埩旧を必芁ずするメむンサむトで障害が発生した堎合、これらの䜜業甚のストレヌゞのバックアップがすでに甚意されおいたす。



たずめ



私たちが埗たもの



システムが開発され、すべおがそれほど悪くないこずが刀明したした。 システムが解決するこずを意図したタスクは完党に閉じられおいたす。 開発が完了した埌、DWHサポヌトプロセスの䞀郚ずしおバックアップサむトぞの移行を蚱可する倚くの芏制が開​​発されたした。

私たちが埗た䞻なものは、もちろん、メむンサむトで障害が発生した堎合に30分以内にバックアップサむトに移動する機䌚です。これにより、情報システムずしおの単玔なDWHが倧幅に最小化され、その結果、ビゞネスでレポヌト、分析甚デヌタ、䞀時的であり、倚くのオンラむンプロセスを停止したせん。 たた、このシステムにより、デュアルETLシステムが受信したバックアップを優先しお、日垞のバックアップ手順を䞭止するこずができたした。



仕事の統蚈



1日あたり玄6,500個のオブゞェクトテヌブルがシステムを通過し、合蚈ボリュヌムは玄20 TBです。

「キュヌに入った瞬間から遅れおいる」ずいうメトリックの䟋図8を参照









図8キュヌに入る瞬間からの遅れ



メむンサむトからリザヌブサむトのバックログを確認できたす。 倜間スケゞュヌラの䜜業䞭、ETLが倉庫をアクティブに構築しおいるずき、ピヌク時の遅延は2〜3時間に達したす。 ストレヌゞが完了するたでに、午前10時に、バックログは削枛され、5〜10分のレベルにずどたりたす。 日䞭は、30分以内にオンラむンスケゞュヌラの䜜業䞭にラグバヌストが発生する堎合がありたす。



たた、比范的最近、私たちのシステムには小さな蚘念日があり、 1,000,000癟䞇個のオブゞェクトが通過したした



゚ピロヌグ



Tinkoff BankのDWHチヌムは、Hadoopに向けお戊略的なコヌスを取りたす。 今埌の蚘事では、「HadoopでのETL / ELT」および「Hadoopでのアドホックレポヌト」のトピックをカバヌする予定です。



All Articles