ã¯ããã«
ãã®èšäºã¯ãSAS ETLã䜿çšããŠããŒã¿ãŠã§ã¢ããŠã¹ãæ§ç¯ãã人ã«ãšã£ãŠèå³æ·±ããã®ã§ãã æè¿ãã¹ãã¬ãŒãžãGreenplumããŒã¿ããŒã¹ã«ç§»è¡ãããããžã§ã¯ãã®ã¢ã¯ãã£ããã§ãŒãºãå®äºããŸããã ãã以åã¯ãSASããŒã¿ã»ããã¯ããŒã¿ããŒã¹ãšããŠäœ¿çšãããŠããŸããã å®éãããŒãã«ã¯ãã¡ã€ã«ã·ã¹ãã äžã®ãã¡ã€ã«ã§ããã ããæç¹ã§ãããŒã¿ããªã¥ãŒã ã®å¢å çããã¡ã€ã«ã·ã¹ãã ã®ããã©ãŒãã³ã¹ãåäžãããé床ããã倧ããããšãæããã«ãªããå°çšããŒã¿ããŒã¹ãžã®åãæ¿ãã決å®ãããŸããã
ãããžã§ã¯ããéå§ãããšããSAS DISãšGreenplumã®éã®ãªã³ã¯ã«é¢ããŠã€ã³ã¿ãŒãããäžã§äœããèŠã€ããããšã¯äžå¯èœã§ããã 移è¡ã®äž»ãªãã€ã³ããšããã®èšäºã®ããã»ã¹ã§çããå°é£ã匷調ããããšæããŸãã
ãããžã§ã¯ãã®è¿œå ã®è€éãã¯ãããã»ã¹ããŒãããæ§ç¯ããã®ã§ã¯ãªããæ¢åã®ããã»ã¹ãäœãçŽãå¿ èŠããããšããäºå®ã§ãããããããªããšããããžã§ã¯ãã®æ¡ä»¶ãšã³ã¹ããåãå ¥ããããªãã§ãããã æŽå²çã«ãETLãšããŠãSASãç¹ã«SAS Data Integration Studioã䜿çšããŠããŸãã ããã§ã®åETLããã»ã¹ã¯ããããã å ¥åããŒãã«ããã®åŠçã®ããžãã¯ãåºåããŒãã«ãååšãããžã§ãã æ¯æ¥ã®ã¹ãã¬ãŒãžã®èªã¿èŸŒã¿ããã»ã¹ã¯ãçŽ800åã®ãã®ãããªãžã§ãã§æ§æãããŠããŸãã 圌ãGreenplumãžã®å ¥å/åºåããŒãã«ã®è»¢éã«åã€ããã«ãããããããçŽãå¿ èŠããããŸããã
SAS / Greenplumã®ã¢ã¯ã»ã¹
SAS Baseã§èšè¿°ãããã³ãŒãã¯ãããŒã¿ããŒã¹å ã®ããŒãã«ãšã©ã®ããã«æ©èœããŸããïŒ ããŸããŸãªããŒã¿ããŒã¹ã«ã¯ãéåžž<ããŒã¿ããŒã¹å>ã®SAS AccessãšåŒã°ããäžé£ã®SAS補åããããŸãã Greenplumã®ãã®ãããªã³ãã¯ã¿ã¯ãSASãã䜿çšã§ããç¹å¥ãªã©ãããŒãåããODBCãã©ã€ãã§ãã ã³ãã¯ã¿ã¯ãããŒã¿ã«ã¢ã¯ã»ã¹ãã2ã€ã®æ¹æ³ãæäŸããŸãã
- ããŒã¿ããŒã¹ã¹ããŒãã¯SAS libnameãä»ããŠå®çŸ©ãããããŒãã«ã¯éåžžã®SASããŒã¿ã»ãããšåæ§ã«æäœã§ããŸãã ãã®å ŽåãSASã³ãŒãã¯ããŒã¿ããŒã¹ã®æ瀺ã«æé»çã«å€æãããŸããããã®ãããªå€æãäžå¯èœãªå ŽåïŒããšãã°ãGreenplumã«ãªãSASé¢æ°ã䜿çšãããå ŽåïŒãSASåŽã®èŠæ±åŠçãé©çšãããŸãã
- SQLãã¹ã¹ã«ãŒã proc sqlã§ã¯ãå®éã«ãã®ãŸãŸODBCãã©ã€ããŒã«æž¡ãããã³ãŒããäœæã§ããŸãã
SAS Data Integration Studioã§ã¯ããã¹ã¹ã«ãŒã¡ã«ããºã ã䜿çšããã³ãŒãã¯ãSQL Joinãå€æã®ã¿ãçæã§ããæ®ãã¯éåžžã®SASã³ãŒããçæããŸããããã¯æçµçã«ã³ãã¯ã¿ã«æž¡ããããã®ãïŒãã°ã§ïŒãã§ãã¯ããå¿ èŠããããŸãã 誀ã£ãŠçæãããã³ãŒãã®äŸããããŸããã
ä»äº-> Greenplum Work
ããã©ã«ãã§ã¯ãSASã®ãžã§ãã®ååã¯ãWorkãäžæããŒãã«ã®å ŽæãšããŠäœ¿çšããããšãããã®ã§ãããã£ã¹ã¯äžã®ã»ãã·ã§ã³ã®éå§æã«äœæãããããã»ã¹ã®çŸåšã®ææè ã®ã¿ãã¢ã¯ã»ã¹ã§ããçµäºåŸããã«åé€ããããã£ã¬ã¯ããªã§ãã ãã®äœæ¥ã«ã¯ãSAS Baseèšèªãé©çšå¯èœãªSASããŒã¿ã»ãããå«ãŸããŠãããããETLãéåžžã«è¿ éã«éçºã§ããŸãã ãŸãããã®ãããªåé¢ã«ãããèœã¡ããžã§ãã®å Žæãç°¡åã«ãã¯ãªãŒãã³ã°ãããŠã䜿çšãããã£ã¹ã¯å®¹éãå¶åŸ¡ã§ããŸãã ãžã§ããGreenplumã«è»¢éãããšãäžéããŒãã«ã®äžéšïŒãŸãã¯ãã¹ãŠïŒãWORKããGreenplumã«ç§»åãããããã®ããŒãã«ãããŒã¿ããŒã¹ã®ã©ãã«é 眮ããããšããçåãçããŸããã
SASã§ã¯ãGreenplumã§äžæããŒãã«ãæäœããããšã¯èš±å¯ãããŠããªãããããªãã·ã§ã³ã®1ã€ã¯ããããã«å¥ã®ã¹ããŒã ã䜿çšããããšã§ããã ãããããã®ã¢ãããŒãã«ã¯ããã€ãã®é倧ãªæ¬ ç¹ããããŸããã
- SAS DI Studioã§ã®èªåã³ãŒãçæã§ã¯ãäžèŠã«ãªã£ãããŒãã«ã¯åé€ãããŸããã ãã¹ãŠã®ãžã§ãã«çµã¿èŸŒãŸããäœããã®çš®é¡ã®æé ãå¿ èŠã§ãã ETLãã«ããŒããŒãã«ã®å šéãããŒã¿ããŒã¹ã«åžžã«ä¿æããã®ã¯ç¡é§ã§ãã
- 䞊åãžã§ãã§ã¯ååã®ç«¶åãçºçããå¯èœæ§ããããŸãã
- åé¡ãçºçããå ŽåãããŒãã«ã誰ïŒã©ã®ãžã§ãïŒã«å±ããŠããããç¹å®ããããšã¯å°é£ã§ãã
ãã®çµæãå¥ã®ã¢ãããŒããéžæãããŸãã-ããŒã¿ããŒã¹ã§SASã®åäœãåçŸããããã åSASã»ãã·ã§ã³ã¯ããã®ã»ãã·ã§ã³ã®ãã¹ãŠã®äžéããŒãã«ãè¿œå ãããã¹ããŒããGreenplumã«äœæããŸãã ããã€ãã®è©³çŽ°ïŒ
- ãã®ãããªãäœæ¥ãã¹ããŒã ã®1ã€ã¯ã1ã€ã®SASã»ãã·ã§ã³ã«å¯Ÿå¿ããŸãã SASã»ãã·ã§ã³ã®éå§æã«ãGreenplumã«ã¹ããŒã ãäœæãããSASã©ã€ãã©ãªãããã«å²ãåœãŠãããŸãã
- äœæãããã¹ããŒã ã®ååã¯ãSAS workãhostãuserãprocessãžã®ãã¹ãªã©ã®å¿ èŠãªæ å ±ããšã³ã³ãŒãããŸãïŒ ïŒ let LOAD_ETL_WRK_SCH_NAME = work_ïŒ substrïŒïŒ sysfuncïŒpathnameïŒworkïŒïŒãïŒ sysfuncïŒprxmatchïŒ/ïŒïŒ<= SAS_workïŒ ./,%sysfunc(pathname(work)))),12)_&SYSUSERID._srv%substr(&SYSHOSTNAME.,% evalïŒïŒ lengthïŒïŒSYSHOSTNAMEãïŒ-1ïŒïŒ_ïŒSYSJOBIDã;
- å ã«ã¯ãGreenplumã®æéã¹ããŒã ã®ãã¯ãªãŒããŒããé 眮ããŸããã Greenplumã®åãwork_ãã¹ããŒã ã«å¯Ÿå¿ããSASã»ãã·ã§ã³ã®ååšã確èªããååšããªãå Žåã¯ãwork_ãã¹ããŒã ãåé€ããŸãã
DI Studioã¯ãã¹ããŒããšLOAD_ETL_WRK_SCH_NAMã䜿çšããŠODBCã©ã€ãã©ãªãäœæããå¿ èŠã«å¿ããŠäžéããŒãã«ãå²ãåœãŠãŸãã
SASãšGreenpluméã®ããŒã¿è»¢é
ãã®éçšæ¹åŒã§ã¯ãäž»ãªåé¡ã®1ã€ã¯SASãšGreenpluméã®ããŒã¿è»¢éé床ã§ãã GreenplumããSASãžã®ããŒã¿è»¢éã¯åžžã«ãã¹ã¿ãŒããŒããçµç±ãããã©ã€ããŒã®é床ã«ãã£ãŠå¶éãããŸãã é床ã¯ãããŒãžåãããããŒãã«ã®ãã£ãŒã«ãã®å¹ ãšæ§æã«äŸåããå¹³åã§çŽ50MB /ç§ã«ãªããŸãã
SASããGreenplumãžã®ããŒã¿ã®ããŠã³ããŒãã¯ãã¯ããã«èå³æ·±ããã®ã§ãã Greenplumã§ã¯ãããã¹ããã¡ã€ã«ããã®äžæ¬èªã¿èŸŒã¿ãå¯èœã§ãã ãã®ã¡ã«ããºã ã®æ¬è³ªã¯ãå€éšãã¡ã€ã«ãå€éšããŒãã«ãšããŠå®çŸ©ããïŒETLãã¹ãã«ã€ã³ã¹ããŒã«ãããç¹å¥ãªãŠãŒãã£ãªãã£ã«ãã£ãŠGreenplumã«ã¢ã¯ã»ã¹ã§ããïŒããã¹ã¿ãŒããã€ãã¹ããŠããŒã¿ãã¹ãã«çŽæ¥ããŒããããããšã§ãã ããã«ãããããŠã³ããŒãé床ãå€§å¹ ã«åäžããŸãã SASåŽããèŠããšãããã»ã¹ã¯æ¬¡ã®ããã«ãªããŸããããŒãã«ã¯csvãã¡ã€ã«ã«ã¢ããããŒããããGreenplumã¯ãã®ãã¡ã€ã«ãããŒã¿ããŒã¹ã«åŒ·å¶ããŸãã ãã ãããã®ããã»ã¹ã®é床ã¯ãããŒãã«ãSASããcsvãã¡ã€ã«ã«ã¢ã³ããŒãããé床ã«å€§ããäŸåããããšãå€æããŸããã ãã¡ã€ã«ã¯æ倧20ã30MB / sã®é床ã§ã¢ããããŒãããïŒããã»ããµäžã«çœ®ãããŸãïŒãGreenplumã®csvããŠã³ããŒãé床ã¯150 MB / sãè¶ ããŸãã 倧ããªããŒãã«ã®å Žåãããã«ããããŠã³ããŒãé床ãå®å šã«äžååã«ãªããŸããã å éã¯ãããŒããããããŒãã«ãããŒãã«åå²ããããšã«ãã£ãŠåŸãããŸãããè€æ°ã®äžŠåã¹ã¬ãããèµ·åããããããããããŒãã«ã®ç¬èªã®éšåã§åäœããŸã-csvã§ã¢ã³ããŒãããGreenplumã§æ¿å ¥ããŸãã ããã«ãããGreenplumã§ã®ããŒã¿ã®èªã¿èŸŒã¿é床ãæ倧90ã100 MB / sã«å¢ããããšãã§ããŸããã
ETLããªããã£ã
DI Studioã§äœæ¥ããã«ã¯ãããã€ãã®å€æãæžãçŽãå¿ èŠããããŸããã æšæºçãªãã®ã¯ã次åçã§åäœããããšã©ãŒã§åäœããã³ãŒããçæããŸããã ãããã¯ãTable LoaderãšSCD Type2 Table Loaderã§ãã äžéšã®å Žæã§ã¯ãããŒãã«ãGreenplumã«è»¢éããããããžã§ããç·šéããå¿ èŠããããŸãããããšãã°ãæšæºã®å€æãã«ãã¯ã¢ãããã¯ãäž¡æ¹ã®å ¥åããŒãã«ãããŒã¿ããŒã¹ã«ããå Žåãéå¹ççã«åäœããŸãã
çµè«ã®ä»£ããã«
ãã®èšäºã§ã¯ã移è¡ããã»ã¹äžã«å¯ŸåŠããå¿ èŠããã£ãäž»ãªã¿ã¹ã¯ã«ã€ããŠèª¬æããŸãã ãã®èšäºã®ç¯å²ãã¯ããã«è¶ ããŠããŸãã ããã·ã¥çµåããŠãŒã¶ãŒã¯ãšãªã«ããããŒãã«ããã¯ãããŒãã£ã·ã§ã³åããã³å§çž®ã®åé¡ã èå³ãããå Žåã¯ã次ã®æçš¿ã§ããã«ã€ããŠè©³ãã説æããŸãã