çŸä»£ã®ããžãã¹æ å ±ã·ã¹ãã ã«ããããã£ã¶ã¹ã¿ãªã«ããªïŒä»¥äžãDRïŒã®å¯çšæ§ã®èŠä»¶ããå¿ é ããšããŠåé¡ãããŠããããšã¯åšç¥ã®äºå®ã§ãã ãã®ããã1幎ã»ã©åãéè¡ã®DWHã®éçºã«æºããããŒã ã¯ãDWHã®DRã®å®è£ ãä»»ãããŸãããDWHã«ã¯ããªãã©ã€ã³ãšãªã³ã©ã€ã³ã®äž¡æ¹ã®éè¡ããã»ã¹ãæ§ç¯ãããŠããŸãã
![](https://habrastorage.org/files/f76/830/dab/f76830dabc7d4149824e3009406daf40.png)
åé¡ã®å£°æ
ããã§ãäžãããããã®ïŒ
- ããŒã¿ãœãŒã¹åŽã§å€æŽããã£ããã£ããããããã¬ã€ã€ãŒãªã³ã©ã€ã³æäœããŒã¿ïŒä»¥éOODïŒã«é©çšããããã®ã·ã¹ãã -Attunity Replicate ã
- ããŠã³ããŒããããŒã¿å€æãIN / OUTããŒã¿çµ±åããŠã£ã³ããŠãã¬ãã·ã³ã°ãããã³ETL / ELTå
šäœ-SAS Data Integration Studio ã ã1700 ETLã¿ã¹ã¯ ã
- éè¡ã§DWHãæ§ç¯ãããäž»ãªDBMSã¯ãMPP DBMS Pivotal Greenplumã ããŒã¿ããªã¥ãŒã ã30TBã§ãã
- ã¬ããŒããããžãã¹ã€ã³ããªãžã§ã³ã¹ãã¢ãããã¯-SAP BusinessObjects + SASãšã³ã¿ãŒãã©ã€ãºã¬ã€ãã
- ã¢ã¹ã¯ã¯ã®ç°ãªã端ã«å°ççã«åæ£ããŠãã2ã€ã®ããŒã¿ã»ã³ã¿ãŒã®éã«ãããã¯ãŒã¯ãã£ãã«ããããŸãã
ç®çïŒæ éåŸ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ãæ§ç¯ããŸãã
![](https://habrastorage.org/files/d6b/d68/4fa/d6bd684fa92f48c698f37f8f32a63c31.jpg)
å³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ã€ã®ã¹ãããã«åãããç£èŠã®åé¡ã«ã€ããŠæžå¿µããŠããŸããã
ã¡ããªãã¯ã¯éåžžã«è¿ éã«ç¹å®ããããããç¹å®ã®æç¹ã§ã·ã¹ãã ã§äœãèµ·ãã£ãŠããã®ããæ確ã«æ確ã«ããã¯ãã§ãã
- ã¹ããŒã¿ã¹ã®ãªããžã§ã¯ãã®æ°ã
- ã¹ããŒã¿ã¹ã®ãšã©ãŒã®æ°ã
- åŸ
ã¡è¡åã«å
¥ã£ãç¬éããã®é
ãã
- ã¹ããŒãžã®éå§æã®é
延ã
- ã¹ããŒãžã®å¹³åæéïŒæåŸã®10åã®ãªããžã§ã¯ãïŒã
- ãŸããå段éã§äœæ¥ã¹ã¬ããã®æ°ãç£èŠããŸãã
ãŸããGraphite + Graphanaãšããæè¡çãªå®è£ ãéåžžã«è¿ éã«æ±ºå®ããŸããã å¥ã®ä»®æ³ãã·ã³ã«Graphiteãå±éããçºæãããã¡ããªãã¯ãããã°ã©ãã³ã°ããã®ã¯ç°¡åã§ããã ãŸããGraphanaã䜿çšãããšãäœæ¥äžã®Graphiteã§çŸããããã·ã¥ããŒããéçºãããŸããã
äžèšã®ãã¹ãŠã®ææšã¯ãèŠèŠåãšãç¹ã«éèŠãªãªã³ã©ã€ã³æ§ãçºèŠããŸããã
![](https://habrastorage.org/files/be4/191/914/be4191914b694e5c801aeaa2fec6f9f4.jpg)
å³2ã¹ããŒã¿ã¹ã®ãªããžã§ã¯ãã®æ°
![](https://habrastorage.org/files/bea/c5f/5b0/beac5f5b0ebd4c1a86b4c17b35590574.jpg)
å³3ã¹ããŒã¿ã¹ã®ãšã©ãŒæ°
![](https://habrastorage.org/files/6eb/84b/343/6eb84b34398e402386344d32bca40535.jpg)
å³4ãã¥ãŒã«å ¥ãç¬éã®é ã
![](https://habrastorage.org/files/49a/ee3/30b/49aee330beee498cae2819721820a119.jpg)
å³5ã¹ããŒãžéå§æã®é 延
![](https://habrastorage.org/files/461/7fc/bc8/4617fcbc827a4601add063bf0753cbb3.jpg)
å³6ã¹ããŒãžã®å¹³åæéïŒæåŸã®10åã®ãªããžã§ã¯ãïŒ
![](https://habrastorage.org/files/c75/6be/58c/c756be58ccb743139ea2b5fb33cde35c.jpg)
å³7å段éã§ã®äœæ¥ã¹ã¬ããã®æ°
åŸåŠç
埩å ããã»ã¹ãå®äºãããšããã³ããã¡ã€ã«ã¯ããã¯ã¢ãããµã€ãã®ã¹ãã¬ãŒãžã«è»¢éãããŸãã ããã¯ã¢ãããµã€ãã®ã¹ãã¬ãŒãžãšã¡ã€ã³ãµã€ãã®ã¹ãã¬ãŒãžã®éã§ã¬ããªã±ãŒã·ã§ã³ãæ§æãããŸãããã®ã¬ããªã±ãŒã·ã§ã³ã¯NetApp SnapMirrorãã¯ãããžãŒã«åºã¥ããŠããŸãã ãããã£ãŠãããŒã¿åŸ©æ§ãå¿ èŠãšããã¡ã€ã³ãµã€ãã§é害ãçºçããå Žåããããã®äœæ¥çšã®ã¹ãã¬ãŒãžã®ããã¯ã¢ããããã§ã«çšæãããŠããŸãã
ãŸãšã
ç§ãã¡ãåŸããã®
ã·ã¹ãã ãéçºããããã¹ãŠãããã»ã©æªããªãããšãå€æããŸããã ã·ã¹ãã ã解決ããããšãæå³ããã¿ã¹ã¯ã¯å®å šã«éããããŠããŸãã éçºãå®äºããåŸãDWHãµããŒãããã»ã¹ã®äžéšãšããŠããã¯ã¢ãããµã€ããžã®ç§»è¡ãèš±å¯ããå€ãã®èŠå¶ãéââçºãããŸããã
ç§ãã¡ãåŸãäž»ãªãã®ã¯ããã¡ãããã¡ã€ã³ãµã€ãã§é害ãçºçããå Žåã«30å以å ã«ããã¯ã¢ãããµã€ãã«ç§»åããæ©äŒã§ããããã«ãããæ å ±ã·ã¹ãã ãšããŠã®åçŽãªDWHãå€§å¹ ã«æå°åããããã®çµæãããžãã¹ã§ã¬ããŒããåæçšããŒã¿ãäžæçã§ãããå€ãã®ãªã³ã©ã€ã³ããã»ã¹ãåæ¢ããŸããã ãŸãããã®ã·ã¹ãã ã«ããããã¥ã¢ã«ETLã·ã¹ãã ãåä¿¡ããããã¯ã¢ãããåªå ããŠãæ¥åžžã®ããã¯ã¢ããæé ãäžæ¢ããããšãã§ããŸããã
ä»äºã®çµ±èš
1æ¥ãããçŽ6,500åã®ãªããžã§ã¯ãïŒããŒãã«ïŒãã·ã¹ãã ãééããåèšããªã¥ãŒã ã¯çŽ20 TBã§ãã
ããã¥ãŒã«å ¥ã£ãç¬éããé ããŠããããšããã¡ããªãã¯ã®äŸïŒå³8ãåç §ïŒ
![](https://habrastorage.org/files/024/707/a52/024707a52e4549ad94b6187531ab1fb4.jpg)
å³8ãã¥ãŒã«å ¥ãç¬éããã®é ã
ã¡ã€ã³ãµã€ããããªã¶ãŒããµã€ãã®ããã¯ãã°ã確èªã§ããŸãã å€éã¹ã±ãžã¥ãŒã©ã®äœæ¥äžãETLãå庫ãã¢ã¯ãã£ãã«æ§ç¯ããŠãããšããããŒã¯æã®é 延ã¯2ã3æéã«éããŸãã ã¹ãã¬ãŒãžãå®äºãããŸã§ã«ãåå10æã«ãããã¯ãã°ã¯åæžããã5ã10åã®ã¬ãã«ã«ãšã©ãŸããŸãã æ¥äžã¯ã30å以å ã«ãªã³ã©ã€ã³ã¹ã±ãžã¥ãŒã©ã®äœæ¥äžã«ã©ã°ããŒã¹ããçºçããå ŽåããããŸãã
ãŸããæ¯èŒçæè¿ãç§ãã¡ã®ã·ã¹ãã ã«ã¯å°ããªèšå¿µæ¥ãããã 1,000,000ïŒçŸäžïŒåã®ãªããžã§ã¯ããééããŸããïŒ
ãšãããŒã°
Tinkoff Bankã®DWHããŒã ã¯ãHadoopã«åããŠæŠç¥çãªã³ãŒã¹ãåããŸãã ä»åŸã®èšäºã§ã¯ããHadoopã§ã®ETL / ELTãããã³ãHadoopã§ã®ã¢ãããã¯ã¬ããŒããã®ãããã¯ãã«ããŒããäºå®ã§ãã