ãã®æç¹ã§ãã»ãšãã©ãã¹ãŠãæåã§è¡ããŸãããDDLãçæããOracleããŒã¿ããŒã¹ã®ã¡ã¿ããŒã¿ã«åºã¥ããŠedwexãšjsonãåéããŸããã å€ãã®å ¥åãã©ã¡ãŒã¿ãŒããããŸãã èŠéããå Žåããšã³ãã£ãã£ã誀ã£ãŠåœ¢æããŸãã ãããŠã圢æã®ããã»ã¹å šäœãäžè²«ããŠãããç¶ç¶çã§ãã£ãããããšã©ãŒã¯æåŸã«ã®ã¿æ€åºãããŸãã ç§ãã¡å šå¡ãã©ã®ããã«ãšã©ãŒãèªååããå æãããã«ã€ããŠã¯ã以äžãèªãã§ãã ããã
ã€ã³ãã©ã¹ãã©ã¯ãã£ã«ã€ããŠå°ã
ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã®ããŒãã«ã«ããŒã¿ãå ¥åããåã«ããœãŒã¹ïŒExcelãªã©ã®ä»»æã®åœ¢åŒïŒããããŒã¿ãåãå ¥ããå¿ èŠããããŸãã 瀟å ã¡ã«ããºã ã䜿çšãããœãŒã¹ããã®ããŒã¿ã¯ãHadoopïŒããŒã¿ã¬ã€ã¯ïŒã«è»¢éãããŸãã Hiveã«ã¯Hiveã¢ãã€ã³ãã€ã³ã¹ããŒã«ãããŠããŸããããã«ãããSQLã®ãããªæ§æã䜿çšããŠãã¡ã€ã«ã®å 容ã衚瀺ã§ããŸãã
ããŒã¿ã¬ã€ã¯ã®ããŒã¿ãããŒãã«åœ¢åŒã§è»¢éããã«ã¯ãã¡ã¿ããŒã¿ã«åºã¥ããŠåœ¢æãããJSONãå¿ èŠã§ãã ããŒã¿ãExcel圢åŒã§è§£æããã«ã¯ãEDWEXãã¡ã€ã«ãäœæããå¿ èŠããããŸãã EDWEXïŒEDW_EXTRACTORïŒãã¡ã€ã«ã¯ãååãæã€ããŒãã«ã®ã»ãããšãã¡ã¿ããŒã¿ã«åºã¥ããŠåœ¢æããããããã®åããŒãã«ã®ãã£ãŒã«ãã®ã»ãããå«ãã¢ãŒãã£ãã¡ã¯ãã®ã»ããã§ãã ã¢ãã«ã®ããŒãžã§ã³ãšãœãŒã¹IDã«å¿ããŠããã£ãŒã«ãã®ã»ããã¯ç°ãªããŸãã DDLã®åœ¢æã¯ãHiveããŒã¿ããŒã¹ã®ããŒãã«èªäœãéçšããŒã¿ã¬ãã«ã§äœæããGreenplumããŒã¿ããŒã¹ã®è©³çŽ°ããŒã¿ãšéèšããŒã¿ã®ã¬ãã«ã§äœæããããã«å¿ èŠã§ãã ã€ãŸããå¿ èŠã«å¿ããŠæåã«ããŒã¿ãHiveã«è»¢éããããã®åŸã®ããŒã¿æäœãšããã«åºã¥ããŠã¹ãã¢ããã³ããäœæããããã«ãã£ã«ã¿ãŒåŠçãããGreenplumã«è»¢éãããŸãã
Edwexã¢ãŒãã£ãã¡ã¯ãã®äŸ
pack-ããŒãã«ã®ã»ãããå«ãŸããŠããŸã
ããŒã¿-ãã£ãŒã«ãã®ã»ãããå«ãŸããŠããŸã
pack.edwexïŒ
data.edwexïŒ
ããŒã¿-ãã£ãŒã«ãã®ã»ãããå«ãŸããŠããŸã
pack.edwexïŒ
1 Table_1 User Table_1 bid between to_char($fromdt,'yyyymm') and to_char($actualdt,'yyyymm') 2 Table_2 User Table_2 curbid between to_char($fromdt,'yyyymm') and to_char($actualdt,'yyyymm') 3 Table_3 User Table_3 bid between to_char($fromdt,'yyyymm') and to_char($actualdt,'yyyymm')
data.edwexïŒ
1 1 CHARGE_ID NUMBER 38 0 1 2 SVC_ID NUMBER 38 0 1 3 VND_ID NUMBER 38 0 1 4 PRICE NUMBER 38 5 1 5 QUANTITY NUMBER 38 5 1 6 BASE NUMBER 38 5 1 7 TAX NUMBER 38 5 1 8 TOTAL NUMBER 38 5 1 9 TAX_RATE NUMBER 38 5 1 10 TAX_IN VARCHAR 1 1 11 CHARGE_KIND VARCHAR 3 1 12 PRIVILEGE_ID NUMBER 38 0 1 13 CHARGE_REF_ID NUMBER 38 0 1 14 EBID NUMBER 38 0 1 15 INVOICE_ID NUMBER 38 0 1 16 ZERO_STATE_ID NUMBER 38 0 1 17 USER_ID NUMBER 38 0 1 18 BID NUMBER 38 0 1 19 QUANTITY_REAL NUMBER 38 5 2 1 CURBID NUMBER 38 0 2 2 USER_ID NUMBER 38 0 2 3 VND_ID NUMBER 38 0 2 4 APPBID NUMBER 38 0 2 5 SVC_ID NUMBER 38 0 2 6 DEBT NUMBER 38 5 2 7 INSTDEBT NUMBER 38 5 3 1 INVOICE_ID NUMBER 38 0 3 2 INVOICE_DATE DATE 3 3 INVOICE_NUM VARCHAR 64 3 4 INVOICE_NUM_N NUMBER 38 5 3 5 BASE NUMBER 38 5 3 6 TAX NUMBER 38 5 3 7 TOTAL NUMBER 38 5 3 8 PREPAID VARCHAR 1 3 9 EXPLICIT VARCHAR 1 3 10 VND_ID NUMBER 38 0 3 11 ADV_PAYMENT_ID NUMBER 38 0 3 12 MDBID NUMBER 38 0 3 13 BID NUMBER 38 0 3 14 USER_ID NUMBER 38 0 3 15 ZERO_STATE_ID NUMBER 38 0 3 16 ACTIVE_SUM NUMBER 38 5 3 17 SPLIT_VND NUMBER 38 5 3 18 PRECREATED VARCHAR 1
JSONææç©ã®äŸ
Table.json: { "metadata": [ { "colOrder":"1", "name":"charge_id", "dataType":"DECIMAL", "precision":"0", "requied":"true", "keyFile":"" }, { "colOrder":"2", "name":"svc_id", "dataType":"DECIMAL", "precision":"0", "requied":"false", "keyFile":"" }, { "colOrder":"3", "name":"vnd_id", "dataType":"DECIMAL", "precision":"0", "requied":"false", "keyFile":"" }, { "colOrder":"4", "name":"price", "dataType":"DECIMAL", "precision":"0", "requied":"false", "keyFile":"" }, { "colOrder":"5", "name":"quantity", "dataType":"DECIMAL", "precision":"0", "requied":"false", "keyFile":"" }, { "colOrder":"6", "name":"base", "dataType":"DECIMAL", "precision":"0", "requied":"false", "keyFile":"" }, { "colOrder":"7", "name":"tax", "dataType":"DECIMAL", "precision":"0", "requied":"false", "keyFile":"" }, { "colOrder":"8", "name":"total", "dataType":"DECIMAL", "precision":"0", "requied":"false", "keyFile":"" }, { "colOrder":"9", "name":"tax_rate", "dataType":"DECIMAL", "precision":"0", "requied":"false", "keyFile":"" }, { "colOrder":"10", "name":"tax_in", "dataType":"STRING", "precision":"0", "requied":"false", "keyFile":"" }, { "colOrder":"11", "name":"charge_kind", "dataType":"STRING", "precision":"0", "requied":"false", "keyFile":"" }, { "colOrder":"12", "name":"privilege_id", "dataType":"DECIMAL", "precision":"0", "requied":"false", "keyFile":"" }, { "colOrder":"13", "name":"charge_ref_id", "dataType":"DECIMAL", "precision":"0", "requied":"false", "keyFile":"" }, { "colOrder":"14", "name":"ebid", "dataType":"DECIMAL", "precision":"0", "requied":"false", "keyFile":"" }, { "colOrder":"15", "name":"invoice_id", "dataType":"DECIMAL", "precision":"0", "requied":"false", "keyFile":"" }, { "colOrder":"16", "name":"zero_state_id", "dataType":"DECIMAL", "precision":"0", "requied":"false", "keyFile":"" }, { "colOrder":"17", "name":"user_id", "dataType":"DECIMAL", "precision":"0", "requied":"false", "keyFile":"" }, { "colOrder":"18", "name":"bid", "dataType":"DECIMAL", "precision":"0", "requied":"false", "keyFile":"" }, { "colOrder":"19", "name":"quantity_real", "dataType":"DECIMAL", "precision":"0", "requied":"false", "keyFile":"" } ], "ctlPath":" ctl", "errPath":" ", "inPath":" hdfs", "outSchema":" ", "outTable":" ", "isPartitioned":" ", "sourceId":"id " }
DDLã¢ãŒãã£ãã¡ã¯ãã®äŸ
ããŒãã«scheme.GP_000001_TABLEãZ_GP_000001_TABLE_20180807ã«å€æŽããŸãã
ããŒãã«ã¹ããŒã ãäœæããŸããGP_000001_TABLE
ïŒ
`charge_id` DECIMALïŒ38.0ïŒã
`svc_id` DECIMALïŒ38.0ïŒã
`vnd_id` DECIMALïŒ38.0ïŒã
ãäŸ¡æ ŒãDECIMALïŒ38.5ïŒã
ãæ°éãDECIMALïŒ38.5ïŒã
`base` DECIMALïŒ38.5ïŒã
`tax` DECIMALïŒ38.5ïŒã
ãåèšã10é²æ°ïŒ38.5ïŒã
`tax_rate` DECIMALïŒ38.5ïŒã
`tax_in` STRINGã
ãcharge_kindãSTRINGã
`privilege_id` DECIMALïŒ38.0ïŒã
`charge_ref_id` DECIMALïŒ38.0ïŒã
ãebidãDECIMALïŒ38.0ïŒã
`invoice_id` DECIMALïŒ38.0ïŒã
`zero_state_id` DECIMALïŒ38,0ïŒã
`user_id` DECIMALïŒ38.0ïŒã
ãå ¥æã10é²æ°ïŒ38.0ïŒã
`quantity_real` DECIMALïŒ38.5ïŒã
`load_dttm` TIMESTAMPã
`src_id` SMALLINTã
`package_id` BIGINTã
`wf_run_id` BIGINTã
`md5` STRING
ïŒ
'\ t'ã§çµäºããè¡åœ¢åŒã®åºåããã£ãŒã«ã
INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'ãšããŠä¿å
äœçœ® 'hdfsã§ã®åœ¢ææ¹æ³'
TBLPROPERTIESïŒ 'auto.purge' = 'true'ã 'transient_lastDlastDdlTime' = '1489060201'ïŒ;
scheme.GP_000001_TABLEïŒ `charge_id`ã«æ¿å ¥ããŸãã
`svc_id`ã
`vnd_id`ã
ãäŸ¡æ Œãã
ãæ°éãã
ãããŒã¹ãã
ãçšãã
ãåèšãã
`tax_rate`ã
`tax_in`ã
`charge_kind`ã
`privilege_id`ã
`charge_ref_id`ã
ãebidãã
`invoice_id`ã
`zero_state_id`ã
`user_id`ã
å ¥æ
`quantity_real`ã
`load_dttm`ã
`src_id`ã
package_id
`wf_run_id`ã
`md5`ïŒ
ãcharge_idããéžæãã
`svc_id`ã
`vnd_id`ã
ãäŸ¡æ Œãã
ãæ°éãã
ãããŒã¹ãã
ãçšãã
ãåèšãã
`tax_rate`ã
`tax_in`ã
`charge_kind`ã
`privilege_id`ã
`charge_ref_id`ã
ãebidãã
`invoice_id`ã
`zero_state_id`ã
`user_id`ã
å ¥æ
`quantity_real`ã
load_dttmã
src_id
package_idã
wf_run_idã
scheme.Z_GP_000001_TABLE_20180807ããã®md5;
ããŒãã«scheme.GP_000001_TABLEãZ_GP_000001_TABLE_20180807ã«å€æŽããŸãã
ããŒãã«ã¹ããŒã ãäœæããŸããGP_000001_TABLE
ïŒ
`charge_id` DECIMALïŒ38.0ïŒã
`svc_id` DECIMALïŒ38.0ïŒã
`vnd_id` DECIMALïŒ38.0ïŒã
ãäŸ¡æ ŒãDECIMALïŒ38.5ïŒã
ãæ°éãDECIMALïŒ38.5ïŒã
`base` DECIMALïŒ38.5ïŒã
`tax` DECIMALïŒ38.5ïŒã
ãåèšã10é²æ°ïŒ38.5ïŒã
`tax_rate` DECIMALïŒ38.5ïŒã
`tax_in` STRINGã
ãcharge_kindãSTRINGã
`privilege_id` DECIMALïŒ38.0ïŒã
`charge_ref_id` DECIMALïŒ38.0ïŒã
ãebidãDECIMALïŒ38.0ïŒã
`invoice_id` DECIMALïŒ38.0ïŒã
`zero_state_id` DECIMALïŒ38,0ïŒã
`user_id` DECIMALïŒ38.0ïŒã
ãå ¥æã10é²æ°ïŒ38.0ïŒã
`quantity_real` DECIMALïŒ38.5ïŒã
`load_dttm` TIMESTAMPã
`src_id` SMALLINTã
`package_id` BIGINTã
`wf_run_id` BIGINTã
`md5` STRING
ïŒ
'\ t'ã§çµäºããè¡åœ¢åŒã®åºåããã£ãŒã«ã
INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'ãšããŠä¿å
äœçœ® 'hdfsã§ã®åœ¢ææ¹æ³'
TBLPROPERTIESïŒ 'auto.purge' = 'true'ã 'transient_lastDlastDdlTime' = '1489060201'ïŒ;
ã¹ããŒã ã«æ¿å ¥ããŸããGP_000001_CPA_CHARGEïŒ `charge_id`ã
`svc_id`ã
`vnd_id`ã
ãäŸ¡æ Œãã
ãæ°éãã
ãããŒã¹ãã
ãçšãã
ãåèšãã
`tax_rate`ã
`tax_in`ã
`charge_kind`ã
`privilege_id`ã
`charge_ref_id`ã
ãebidãã
`invoice_id`ã
`zero_state_id`ã
`user_id`ã
å ¥æ
`quantity_real`ã
`load_dttm`ã
`src_id`ã
package_id
`wf_run_id`ã
`md5`ïŒ
ãcharge_idããéžæãã
`svc_id`ã
`vnd_id`ã
ãäŸ¡æ Œãã
ãæ°éãã
ãããŒã¹ãã
ãçšãã
ãåèšãã
`tax_rate`ã
`tax_in`ã
`charge_kind`ã
`privilege_id`ã
`charge_ref_id`ã
ãebidãã
`invoice_id`ã
`zero_state_id`ã
`user_id`ã
å ¥æ
`quantity_real`ã
load_dttmã
src_id
package_idã
wf_run_idã
scheme.Z_GP_000001_TABLE_20180807ããã®md5;
ããŒãã«ã¹ããŒã ãäœæããŸããGP_000001_TABLE
ïŒ
`charge_id` DECIMALïŒ38.0ïŒã
`svc_id` DECIMALïŒ38.0ïŒã
`vnd_id` DECIMALïŒ38.0ïŒã
ãäŸ¡æ ŒãDECIMALïŒ38.5ïŒã
ãæ°éãDECIMALïŒ38.5ïŒã
`base` DECIMALïŒ38.5ïŒã
`tax` DECIMALïŒ38.5ïŒã
ãåèšã10é²æ°ïŒ38.5ïŒã
`tax_rate` DECIMALïŒ38.5ïŒã
`tax_in` STRINGã
ãcharge_kindãSTRINGã
`privilege_id` DECIMALïŒ38.0ïŒã
`charge_ref_id` DECIMALïŒ38.0ïŒã
ãebidãDECIMALïŒ38.0ïŒã
`invoice_id` DECIMALïŒ38.0ïŒã
`zero_state_id` DECIMALïŒ38,0ïŒã
`user_id` DECIMALïŒ38.0ïŒã
ãå ¥æã10é²æ°ïŒ38.0ïŒã
`quantity_real` DECIMALïŒ38.5ïŒã
`load_dttm` TIMESTAMPã
`src_id` SMALLINTã
`package_id` BIGINTã
`wf_run_id` BIGINTã
`md5` STRING
ïŒ
'\ t'ã§çµäºããè¡åœ¢åŒã®åºåããã£ãŒã«ã
INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'ãšããŠä¿å
äœçœ® 'hdfsã§ã®åœ¢ææ¹æ³'
TBLPROPERTIESïŒ 'auto.purge' = 'true'ã 'transient_lastDlastDdlTime' = '1489060201'ïŒ;
scheme.GP_000001_TABLEïŒ `charge_id`ã«æ¿å ¥ããŸãã
`svc_id`ã
`vnd_id`ã
ãäŸ¡æ Œãã
ãæ°éãã
ãããŒã¹ãã
ãçšãã
ãåèšãã
`tax_rate`ã
`tax_in`ã
`charge_kind`ã
`privilege_id`ã
`charge_ref_id`ã
ãebidãã
`invoice_id`ã
`zero_state_id`ã
`user_id`ã
å ¥æ
`quantity_real`ã
`load_dttm`ã
`src_id`ã
package_id
`wf_run_id`ã
`md5`ïŒ
ãcharge_idããéžæãã
`svc_id`ã
`vnd_id`ã
ãäŸ¡æ Œãã
ãæ°éãã
ãããŒã¹ãã
ãçšãã
ãåèšãã
`tax_rate`ã
`tax_in`ã
`charge_kind`ã
`privilege_id`ã
`charge_ref_id`ã
ãebidãã
`invoice_id`ã
`zero_state_id`ã
`user_id`ã
å ¥æ
`quantity_real`ã
load_dttmã
src_id
package_idã
wf_run_idã
scheme.Z_GP_000001_TABLE_20180807ããã®md5;
ããŒãã«scheme.GP_000001_TABLEãZ_GP_000001_TABLE_20180807ã«å€æŽããŸãã
ããŒãã«ã¹ããŒã ãäœæããŸããGP_000001_TABLE
ïŒ
`charge_id` DECIMALïŒ38.0ïŒã
`svc_id` DECIMALïŒ38.0ïŒã
`vnd_id` DECIMALïŒ38.0ïŒã
ãäŸ¡æ ŒãDECIMALïŒ38.5ïŒã
ãæ°éãDECIMALïŒ38.5ïŒã
`base` DECIMALïŒ38.5ïŒã
`tax` DECIMALïŒ38.5ïŒã
ãåèšã10é²æ°ïŒ38.5ïŒã
`tax_rate` DECIMALïŒ38.5ïŒã
`tax_in` STRINGã
ãcharge_kindãSTRINGã
`privilege_id` DECIMALïŒ38.0ïŒã
`charge_ref_id` DECIMALïŒ38.0ïŒã
ãebidãDECIMALïŒ38.0ïŒã
`invoice_id` DECIMALïŒ38.0ïŒã
`zero_state_id` DECIMALïŒ38,0ïŒã
`user_id` DECIMALïŒ38.0ïŒã
ãå ¥æã10é²æ°ïŒ38.0ïŒã
`quantity_real` DECIMALïŒ38.5ïŒã
`load_dttm` TIMESTAMPã
`src_id` SMALLINTã
`package_id` BIGINTã
`wf_run_id` BIGINTã
`md5` STRING
ïŒ
'\ t'ã§çµäºããè¡åœ¢åŒã®åºåããã£ãŒã«ã
INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'ãšããŠä¿å
äœçœ® 'hdfsã§ã®åœ¢ææ¹æ³'
TBLPROPERTIESïŒ 'auto.purge' = 'true'ã 'transient_lastDlastDdlTime' = '1489060201'ïŒ;
ã¹ããŒã ã«æ¿å ¥ããŸããGP_000001_CPA_CHARGEïŒ `charge_id`ã
`svc_id`ã
`vnd_id`ã
ãäŸ¡æ Œãã
ãæ°éãã
ãããŒã¹ãã
ãçšãã
ãåèšãã
`tax_rate`ã
`tax_in`ã
`charge_kind`ã
`privilege_id`ã
`charge_ref_id`ã
ãebidãã
`invoice_id`ã
`zero_state_id`ã
`user_id`ã
å ¥æ
`quantity_real`ã
`load_dttm`ã
`src_id`ã
package_id
`wf_run_id`ã
`md5`ïŒ
ãcharge_idããéžæãã
`svc_id`ã
`vnd_id`ã
ãäŸ¡æ Œãã
ãæ°éãã
ãããŒã¹ãã
ãçšãã
ãåèšãã
`tax_rate`ã
`tax_in`ã
`charge_kind`ã
`privilege_id`ã
`charge_ref_id`ã
ãebidãã
`invoice_id`ã
`zero_state_id`ã
`user_id`ã
å ¥æ
`quantity_real`ã
load_dttmã
src_id
package_idã
wf_run_idã
scheme.Z_GP_000001_TABLE_20180807ããã®md5;
èªååããæ¹æ³
ãã®åé¡ã解決ããããã«ã次ã䜿çšããŸããã
- Jenkins-CIããã»ã¹ãå®è£
ããããã®ãªãŒã±ã¹ãã©ããã³ããŒã«ãšããŠã
- Python-æ©èœãšåäœãã¹ããå®è£
ããŸãã
- SQL-ã¡ã¿ããŒã¿ããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ããŸãã
- ã·ã§ã«ã¹ã¯ãªãã-ãã£ã¬ã¯ããªéã§ã¢ãŒãã£ãã¡ã¯ããã³ããŒããJenkinsãµãŒããŒã§å®è¡ãããŠãããã«ããžã§ããããžã§ã¯ãã§ã¹ã¯ãªãããäœæããŸãã
ãŸããæåã«å€æ°ã®ãœãŒã¹ã䜿çšãããããã·ã§ã«ã¹ã¯ãªãããéå§ãã©ã¡ãŒã¿ãŒãšããŠäœ¿çšããŠããœãŒã¹ã®IDãSQLé¢æ°ã«æž¡ããŠèå¥ããŸãã çµæã®SQLé¢æ°ã¯ãã¡ã¿ããŒã¿ããŒã¿ããŒã¹ã§èªåçã«å®è¡ãããŸãã 䜿çšå¯èœãªã¡ã¿ããŒã¿ã«åºã¥ããŠããããã®é¢æ°ã¯ããœãŒã¹ããŒãã«ããšã«æ°ããSQLé¢æ°ã®ãªã¹ããæã€ãã¡ã€ã«ã圢æããŸããããã«ãããåŸã§å®è¡å¯èœããã°ã©ã ã§åŒã³åºãããšãã§ããŸãã çæãããé¢æ°ã®å®è¡çµæã¯ãDDLãJSONããŸãã¯EDWEXå€ã®åºåãã©ã¡ãŒã¿ãŒãžã®è»¢éã§ãã
ããã§Pythonãæ¥ç¶ããããã¹ãŠã®å®è¡å¯èœæ©èœãšåäœãã¹ããäœæãããŸãã åäœãã¹ãã䜿çšããŠã¢ãŒãã£ãã¡ã¯ããããŒãªã³ã°ããããã®ã¢ãžã¥ãŒã«ãéå§ããåã«ãæ£ãããã©ã¡ãŒã¿ãŒã®è»¢éããã§ãã¯ãããPythonã¹ã¯ãªãããå®è¡ãããŸãã ãã¹ãã§ã¯ãå ¥åãã©ã¡ãŒã¿ãŒã®æ£ç¢ºãã ãã§ãªããã¡ã¿ããŒã¿ã¢ãžã¥ãŒã«å ã®ååšãäœæããããã¡ã€ã«ã®ãµã€ãºãäœææ¥ã確èªããŸãã ãã¹ãã§ã¯ãäœæãããæ°ããã¢ãŒãã£ãã¡ã¯ãã®æ°ãšæ¢åã®ã¢ãŒãã£ãã¡ã¯ãã®æ°ãç£èŠããŸãã ããŒãªã³ã°çšã«æ°ãããã¡ã€ã«ã®ã¿ãååŸããæ¢åã®ã¢ãã«ãåã€ã³ã¹ããŒã«ããªãããããµãŒããŒãªãœãŒã¹ã®äœ¿çšãæé©åããŸãã
ãããŠããã¹ãŠã®ãã§ãã¯ã«æåããåŸã®ã¿ãå¿ èŠãªã¢ãŒãã£ãã¡ã¯ããäœæããçµæããµãŒããŒäžã®å¿ èŠãªãããžã§ã¯ããã©ã«ããŒã«å解ããpythonããã°ã©ã ãå®è¡ãããŸãã Pythonã¯ãçæãããjsonãã¡ã€ã«ããã£ã¬ã¯ããªã«éãã ãã§ãªããããŒã¿ãæ£ããèªã¿èŸŒãŸããããã«Data Lakeã«æ§é ã圢æããŸãã DDLã¢ãŒãã£ãã¡ã¯ããçæãããšãåŸã§åæããã³åå©çšããããã«ä¿åãããã ãã§ãªããã¡ã¿ããŒã¿ã¢ãžã¥ãŒã«ã§æå®ãããæ°ããã¢ãã«ãšæ§é ã䜿çšããŠããŒã¿ããŒã¹ã«ããã«ã€ã³ã¹ããŒã«ããããšãã§ããŸãã ããã«ãããæäœæ¥ã䌎ãããšãªããçæéã§æ°çŸã®ããŒãã«ãäœæã§ããŸãã
ãžã§ã³ãã³ã¹ã¯ã©ãã«ããã®ïŒ
Jenkinsã¯ãã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŠããããã¹ãŠã®ããã»ã¹ãèŠèŠçã«ç®¡çããå¿ èŠãããå Žåã«åå ¥ããŸãã
ãã®ããŒã«ãéžæãããçç±ã¯æ¬¡ã®ãšããã§ãã
- çµã¿ç«ãŠãšèšçœ®ã®èªååã®ããŒãºãå®å
šã«ã«ããŒ
- èªåãã¹ãã®ããã»ã¹ãå®è£
ããŠãææç©ãçµã¿ç«ãŠãã¡ã«ããºã ãèšèšã§ããŸã
- ããªãã¯ç°¡åã«ãžã§ãã®ç«ã¡äžãã管çããããã°ã©ãã³ã°ããé ãé¢ãã人ãžã®å®è¡ãç£èŠããããšãã§ããŸã
- å®è¡ã®çµæãããŒã ã®èª°ã§ãç解ã§ããããã«ããã®ã³ã°ã¡ã«ããºã ãèšå®ã§ããŸãã ã¢ã»ã³ããªã®åé¡ãæ瀺çã«ç€ºãããããããã»ã¹ãæåããŸãã
ã¿ã¹ã¯ã解決ããããã«ãããã€ãã®ãã«ããžã§ããããžã§ã¯ããäœæããŸããã ãã®ã¿ã€ãã®ãããžã§ã¯ãã¯ã1åã®èµ·åã§ä»ã®ã¯ãŒã¯ã¹ããŒã·ã§ã³ãšäžŠè¡ããŠåäœã§ãããã䜿çšãããŸããã åãžã§ãã¯ããã®æ©èœãããã¯ã®å®è£ ãæ åœããŸãã ãã®ãããã¢ãŒãã£ãã¡ã¯ããååŸããã·ãŒã±ã³ã·ã£ã«ããã»ã¹ãèªåŸçãªäžŠè¡ããã»ã¹ã«çœ®ãæããŸããã EDWEXãJSONãDDLã®åœ¢æãHIVEã§ã®æ§é ã®åœ¢æãããŒã¿ããŒã¹ã§ã®ããŒãã«æ§é ã®ã€ã³ã¹ããŒã«ãªã©ããã¹ãŠãåå¥ã«å§ãŸããŸãã ææç©ã®åœ¢æã®ããŸããŸãªæ®µéã§çµæãåæããæåããå Žåã¯åŸç¶ã®ã¢ã¯ã·ã§ã³ãéå§ããŸãã
Jenkinséšåã¯ãå€ãã®ããªãã¯ãªãã§å®è£ ãããŸãã ã¹ããªã³ã°ãŸãã¯å®è¡ãã©ã¡ãŒã¿ãŒã¯ãPythonã³ãŒããéå§ããããã«å ¥åã«éä¿¡ãããŸãã Stringãã©ã¡ãŒã¿ãŒã¯ãéå§ããåã«stråã®å€ãå ¥åããããã®ãŠã£ã³ããŠã§ãã å®è¡ãã©ã¡ãŒã¿ãŒã¯ãå®è¡äžã«å¥ã®ãžã§ãã«ãªã³ã¶ãã©ã€ã§è»¢éã§ããŸããããã¯ãåãåã£ãå€æ°ãååŸããå¿ èŠããããããžã§ã¯ãã瀺ãã ãã§ååã§ãã ãŸããããŒãã¯å®è¡çšã®åå¥ã®ãã©ã¡ãŒã¿ãŒãšããŠæž¡ãããŸãã ããã§ã¯ãDEVãTSTãUATãPRDã®ã©ã³ã¿ã€ã ãžã®ããŒãã£ã·ã§ã³åå²ãå®è£ ãããŠããŸãã å€æŽãããæ§é ã®ããŒãžã§ã³ã远跡ã§ããããã«ãå¥ã®ãžã§ãã䜿çšããŠãåä¿¡ããEDWEXãã¡ã€ã«ããªããžã§ã³çªå·ä»ãã®SVNã«è»¢éããŸããã
Jenkinsã®ãµã³ãã«ã€ã³ã¿ãŒãã§ã€ã¹ïŒ
ãžã§ãã®å®è¡çµæã¯ãå¿ èŠãªã¢ãŒãã£ãã¡ã¯ãã®äœæãšã€ã³ã¹ããŒã«ãSVNãžã®è»¢éãããã³åäœãã¹ãã®åæ Œã®æåãšã¢ãŒãã£ãã¡ã¯ãã®ã¢ã»ã³ããªãšã€ã³ã¹ããŒã«ã®çµæã衚瀺ããHTMLã¬ããŒãã®åœ¢æã§ãã ãžã§ãã¯ãæã§åå¥ã«å®è¡ããããšãã以åã«å®è¡ãã§ãŒã³ãæ§ç¯ããŠããèªåã¢ãŒãã§å®è¡ããããšãã§ããŸãã
ã¢ã»ã³ããªããã³ã€ã³ã¹ããŒã«ã¡ã«ããºã ã®ã¢ãŒããã¯ãã£
ãŸãšãããš
ã¢ãŒãã£ãã¡ã¯ãã®åœ¢æãèªååããããã«å€ãã®äœæ¥ãè¡ãããŸããã 以åã¯ãæåã§ãµãŒããŒã«ç»ããã·ã§ã«ã¹ã¯ãªãããå®è¡ããŠãããé·æéããŒã¿ãæã§èª¿ã¹ãŠç·šéããå¿ èŠããããŸããã éå§ãã¿ã³ãã¯ãªãã¯ããŠããœãŒã¹ã·ã¹ãã IDãã¢ãã«çªå·ãå®è¡ã«ãŒããæå®ããŸãã Jenkinsã®å©ããåããŠãã¢ãŒãã£ãã¡ã¯ãã®ã¢ã»ã³ããªãšã€ã³ã¹ããŒã«ã¡ã«ããºã å šäœãç¬ç«ããã¹ããŒãžã«æ§é åããå解ããããšãã§ããŸããã ææç©ã®åœ¢æãšãããã®çµ±åãéå§ããåã«ãå¿ èŠãªãã§ãã¯ãè¿œå ãããŸããã åä¿¡ããã¢ãŒãã£ãã¡ã¯ãã¯èªåçã«SVNã«è»¢éããããããã·ã¹ãã ã¢ããªã¹ããšããŒã¿ã¢ãã©ãŒã®é¢é£ããŒã ãšã®äœæ¥ãç°¡åã«ãªããŸãã ã¢ãŒããã¡ã¯ã圢æã®ã¢ã€ãã«èµ·åãåé¿ãããã®æ£ç¢ºæ§ã確èªããããã«ãã§ãã¯ãå®è£ ãããŠããŸãã
ãã®çµæãã¢ãã«ã®ã¢ãŒãã£ãã¡ã¯ããçµã¿ç«ãŠãŠã€ã³ã¹ããŒã«ããæéã®ãããããã»ã¹ãæ°æéããæ°åã«ççž®ããŸããã ãããŠæãéèŠãªããšã¯ãè€éãªã«ãŒãã³ããã»ã¹ã§å¿ ç¶çã«çºçãã人çèŠå ã«ãããšã©ãŒã®çºçãæé€ããããšã§ãã