ä¿¡é Œæ§ã«ã€ããŠ
ãã®ããã¥ã¡ã³ãã§ã¯ãå¯çšæ§ãèä¹ æ§ãããŒã¿æŽåæ§ãããã©ãŒãã³ã¹ã®æŽåæ§ãããŒã¿åŸ©æ§ããšã©ãŒåŠçã«é¢ããèæ ®äºé ã®ç¢ºèªãªã©ãBigQuery ã®ä¿¡é Œæ§æ©èœã«ã€ããŠèª¬æããŸãã
ãã®ããã¥ã¡ã³ãã§ã¯ãæ¬¡ã«æãã 3 ã€ã®äž»èŠãªæ€èšäºé ãžã®å¯ŸåŠããµããŒãããŸãã
- BigQuery ããžã§ãã«é©ããããŒã«ãã©ããã倿ããã
- BigQuery ã®ä¿¡é Œæ§ã®èŠçŽ ãçè§£ããã
- å ·äœçãªãŠãŒã¹ã±ãŒã¹ã«å¯Ÿããå ·äœçãªä¿¡é Œæ§èŠä»¶ãæç¢ºã«ããã
BigQuery ã®éžæ
BigQuery ã¯ãå€§èŠæš¡ãªããŒã¿ã»ãããä¿åããŠåæããããã«æ§ç¯ãããããã«ãããŒãžãã®ãšã³ã¿ãŒãã©ã€ãº ããŒã¿ ãŠã§ã¢ããŠã¹ã§ããã¡ã¬ãã€ããããã¿ãã€ããŸã§ã®ããŒã¿ã®åã蟌ã¿ãä¿åãèªã¿åããã¯ãšãªãå®å®ããããã©ãŒãã³ã¹ã§è¡ããåºç€ãšãªãã€ã³ãã©ã¹ãã©ã¯ãã£ã管çããå¿ èŠã¯ãããŸããããã®æ§èœãšããã©ãŒãã³ã¹ãããBigQuery ã¯ããŸããŸãªãœãªã¥ãŒã·ã§ã³ã§ã®äœ¿çšã«é©ããŠããŸãããã®ããã€ãã¯ããªãã¡ã¬ã³ã¹ ãã¿ãŒã³ãšããŠè©³çްã«ããã¥ã¡ã³ãåãããŠããŸãã
äžè¬ã« BigQuery ã¯ã倧éã®ããŒã¿ãåã蟌ã¿ãåæããã¯ãŒã¯ããŒãã«é©ããŠããŸããå ·äœçã«ã¯ãïŒã¹ããªãŒãã³ã°åã蟌ã¿ã BigQuery ML ã䜿çšããïŒãªã¢ã«ã¿ã€ã ãã€äºæž¬çãªããŒã¿åæãç°åžžæ€åºãªã©ãäºæž¬å¯èœãªããã©ãŒãã³ã¹ã瀺ã倧éã®ããŒã¿ãåæããããšãéèŠã«ãªããŠãŒã¹ã±ãŒã¹ã®å Žåã«ã广çã«ãããã€ã§ããŸãããã ãããªã³ã©ã€ã³ ãã©ã³ã¶ã¯ã·ã§ã³åŠçïŒOLTPïŒã¹ã¿ã€ã«ã®ã¢ããªã±ãŒã·ã§ã³ããµããŒãããããŒã¿ããŒã¹ããæ¢ãã®å Žåã¯ããããããŠãŒã¹ã±ãŒã¹ã«é©ããŠãããšèãããã SpannerãCloud SQLãBigtable ãªã©ã®ä»ã® Google Cloud ãµãŒãã¹ãæ€èšããŠãã ããã
BigQuery ã®ä¿¡é Œæ§ã®èŠçŽ
å¯çšæ§
å¯çšæ§ã«ããããŠãŒã¶ãŒã BigQuery ããããŒã¿ã®èªã¿åããŸã㯠BigQuery ãžã®æžã蟌ã¿ãè¡ããèœåãå®çŸ©ãããŸããBigQuery ã¯ãã©ã¡ãã 99.99% ã® SLA ã§é«å¯çšæ§ãå®çŸããããã«æ§ç¯ãããŠããŸããã©ã¡ãã®ãªãã¬ãŒã·ã§ã³ã«ããæ¬¡ã® 2 ã€ã®ã³ã³ããŒãã³ããé¢äžããŸãã
- BigQuery ãµãŒãã¹
- ã¯ãšãªãå®è¡ããããã«å¿ èŠãªã³ã³ãã¥ãŒãã£ã³ã° ãªãœãŒã¹
ããŒã¿ã®ååŸã«äœ¿çšããã BigQuery API ã®åãã«ãã£ãŠãBigQuery ãµãŒãã¹ã«ä¿¡é Œæ§ãããããããŸããã³ã³ãã¥ãŒãã£ã³ã° ãªãœãŒã¹ã®å¯çšæ§ã¯ãã¯ãšãªã®å®è¡æã«ãŠãŒã¶ãŒã䜿çšã§ãã容éã«ãã£ãŠç°ãªããŸããBigQuery ã®ã³ã³ãã¥ãŒãã£ã³ã°ã®åºæ¬åäœãšãçµæãšããŠåŸãããã¹ããã ãªãœãŒã¹ ãšã³ãããŒã®è©³çްã«ã€ããŠã¯ãã¹ãããã«ã€ããŠãã芧ãã ããã
èä¹ æ§
èä¹ æ§ã«ã€ããŠã¯ãSRE Workbook ã® SLO ã®å®è£ ã®ç« ã§èª¬æãããŠãããšããããæ£åžžã«èªã¿åãããšãã§ããããŒã¿ã®å²åããšèšãããŠããŸãã
ããŒã¿ã®æŽåæ§
æŽåæ§ã«ãããæžã蟌ã¿ãŸãã¯å€æŽãè¡ãããããŒã¿ã®ã¯ãšãªæ¹æ³ã«å¯ŸãããŠãŒã¶ãŒã®æåŸ ãå®çŸ©ãããŸããããŒã¿ã®æŽåæ§ã®äžã€ã®åŽé¢ã¯ãããŒã¿ã®åã蟌ã¿ã«å¯ŸããŠã1 åéãããšããã»ãã³ãã£ã¯ã¹ã宿œããããšã§ãã詳现ã«ã€ããŠã¯ã倱æãããžã§ãæ¿å ¥ãå詊è¡ãããã芧ãã ããã
ããã©ãŒãã³ã¹ã®å®å®æ§
äžè¬çã«ãããã©ãŒãã³ã¹ã¯ 2 ã€ã®èŠçŽ ã§è¡šãããšãã§ããŸããã¬ã€ãã³ã·ã¯ãã¯ãšãªãªã©ã®é·æéããŒã¿ååŸãªãã¬ãŒã·ã§ã³ã®å®è¡æéã®æž¬å®å€ã§ããã¹ã«ãŒãããã¯ãBigQuery ãç¹å®ã®æéã«åŠçã§ããããŒã¿éã®æž¬å®å€ã§ããBigQuery ã¯ãã«ãããã³ãã«å¯Ÿå¿ããŠãããæ°Žå¹³æ¹åã«ã¹ã±ãŒã©ãã«ãªèšèšã®ãããã¹ã«ãŒãããã¯ä»»æã®ããŒã¿ãµã€ãºã«ã¹ã±ãŒã«ã¢ããã§ããŸããã¬ã€ãã³ã·ãšã¹ã«ãŒãããã®çžå¯ŸçãªéèŠåºŠã¯ãç¹å®ã®ãŠãŒã¹ã±ãŒã¹ã«ãã£ãŠæ±ºãŸããŸãã
ããŒã¿åŸ©æ§
忢åŸã«ããŒã¿ã埩å ããæ©èœã枬å®ããæ¹æ³ã«ã¯ã次㮠2 ã€ããããŸãã
- ç®æšåŸ©æ§æéïŒRTOïŒ:ã€ã³ã·ãã³ãã®çºçåŸã«ããŒã¿ã䜿çšã§ããªãæéã
- ç®æšåŸ©æ§æç¹ïŒRPOïŒ:ã€ã³ã·ãã³ãã®åã«åéãããããŒã¿ã®èš±å®¹ã§ããæ¶å€±éã
ãããã®æ€èšäºé ã¯ããŸãŒã³ããªãŒãžã§ã³ã§è€æ°æ¥ãŸãã¯ç Žå£çãªåæ¢ãçºçãããšãã£ããŸããªã±ãŒã¹ã§ç¹ã«éèŠã§ãã
é害察ç
ããã£ã¶ã¹ã¿ãŒããšããèšèããã¯èªç¶çœå®³ãã€ã¡ãŒãžããããããããŸãããããã®ã»ã¯ã·ã§ã³ã®ç¯å²ãšããŠã¯ãåã ã®ãã·ã³ã®æå€±ããããªãŒãžã§ã³ã®å£æ» çãªæ¶å€±ã«è³ããŸã§å ·äœçãªé害ã«ã€ããŠèª¬æããŸããåè 㯠BigQuery ãèªåçã«å¯ŸåŠããæ¥åžžçã«çºçããäºè±¡ã§ãããåŸè ã¯å¿ èŠã«å¿ããŠå¯Ÿå¿ããããã«ã¢ãŒããã¯ãã£ãèšèšããå¿ èŠããããŸããé害察çã¯ãã客æ§ã®è²¬ä»»ãšäº€å·®ããç¯å²ã§ããããšãçè§£ããã ãããšãéèŠã§ãã
BigQuery ã¯æ¥çãããã¯ã©ã¹ã® 99.99% 皌åçã® SLA ãæäŸããŸããããã¯ã2 ã€ã®ç°ãªããŸãŒã³ã§ããŒã¿ãæžã蟌ã¿ãåé·ãªã³ã³ãã¥ãŒãã£ã³ã°å®¹éãããããžã§ãã³ã°ãããBigQuery ã®ãªãŒãžã§ã³ ã¢ãŒããã¯ãã£ã«ãã£ãŠå®çŸãããŸããBigQuery SLA ã¯ããªãŒãžã§ã³ïŒus-central1 ãªã©ïŒãšãã«ããªãŒãžã§ã³ïŒUS ãªã©ïŒã§åããšããç¹ã«çæããããšãéèŠã§ãã
ã·ããªãªã®èªååŠç
BigQuery ã¯ãªãŒãžã§ãã« ãµãŒãã¹ã§ããããã1 ã€ã®ãã·ã³ããŸãŒã³å šäœã®æå€±ã§ãããèªåçã«åŠçããå¿ èŠããããŸããBigQuery ãè€æ°ã®ãŸãŒã³äžã«æ§ç¯ãããŠãããšããäºå®ã¯ããŠãŒã¶ãŒããã¯èŠããªããªã£ãŠããŸãã
ãã·ã³ã®æå€±
ãã·ã³ã®é害ã¯ãGoogle ãéçšããŠããèŠæš¡ã§ã¯æ¥åžžçã«çºçããŸããBigQuery ã¯ããã·ã³ã®é害ãèªåçã«åŠçããããã«èšèšãããŠãããå«ãŸãããŸãŒã³ã«åœ±é¿ãäžããããšã¯ãããŸããã
ã¯ãšãªã®å®è¡ã¯ãå
éšçã«ã¯ã倿°ã®ãã·ã³ã«äžŠè¡ããŠãã£ã¹ãããã§ããå°ããªã¿ã¹ã¯ã«åå²ãããŸãããã·ã³ã®ããã©ãŒãã³ã¹ã®æ¥æ¿ãªæžå°ãäœäžã¯ãå¥ã®ãã·ã³ã«äœæ¥ãå床ãã£ã¹ãããããããšã§èªåçã«åŠçãããŸãããã®ãããªã¢ãããŒãã¯ãããŒã« ã¬ã€ãã³ã·ãåæžããããã«éèŠã§ãã
BigQuery ã¯ããªãŒãã»ãœãã¢ã³ ãšã³ã³ãŒãã䜿çšããŠãããŒã¿ã®ãŸãŒã³ã³ããŒãå¹ççãã€æ°žç¶çã«ä¿åããŸããäžãäžãè€æ°ã®ãã·ã³ã®é害ã«ãã£ãŠãŸãŒã³ã³ããŒã倱ãããå Žåã«ã¯ãããŒã¿ã¯ä»ã®å°ãªããšã 1 ã€ã®ãŸãŒã³ã«ãåãæ¹æ³ã§ä¿åãããŸãããã®ãããªå ŽåãBigQuery ã¯åé¡ãæ€åºããåé·æ§ã埩å ããããã«ããŒã¿ã®æ°ãããŸãŒã³ã³ããŒãäœæããŸãã
ãŸãŒã³ã®æå€±
ç¹å®ã®ãŸãŒã³ã®ã³ã³ãã¥ãŒãã£ã³ã° ãªãœãŒã¹ã®å¯çšæ§ã¯ãBigQuery ã® 99.99% 皌åçã® SLA ãæºããã«ã¯äžååã§ããBigQuery ã¯ããŒã¿ãšã³ã³ãã¥ãŒãã£ã³ã° ã¹ãããã®äž¡æ¹ã«èªååããããŸãŒã³åé·æ§ãåããŠããŸããçããŸãŒã³ã®éçµ¶ã¯ãé »ç¹ã«ã¯èµ·ãããŸãããçºçããŸããããããBigQuery ã®èªååã«ãããé倧ãªäžæãçºçããŠãã 1ïœ2 å以å ã§ãã¯ãšãªã¯å¥ã®ãŸãŒã³ã«ãã§ã€ã«ãªãŒããŒãããŸãããã§ã«åŠçäžã®ã¯ãšãªã¯ãããã«ã¯åŸ©å ãããªããããããŸããããæ°ããçºè¡ãããã¯ãšãªã¯åŸ©å ãããŸããããã¯ãæ°ããçºè¡ãããã¯ãšãªãããã«å®äºããäžæ¹ã§ãåŠçäžã®ã¯ãšãªã¯å®äºãŸã§ã«é·æéãèŠããããšãã衚é¢åããããšã«ãªããŸãã
1 ã€ã®ãŸãŒã³ãé·æé䜿çšã§ããªããŠããBigQuery ã¯åæçã« 2 ã€ã®ãŸãŒã³ã«ããŒã¿ãæžã蟌ããããããŒã¿ã倱ãããããšã¯ãããŸããããããã£ãŠããŸãŒã³ãæ¶å€±ãããšããŠããã客æ§ã¯ãµãŒãã¹ã®äžæãçµéšããããšã¯ãããŸããã
ãšã©ãŒã®ã¿ã€ã
é害ã«ã¯ããœããé害ãšããŒãé害㮠2 çš®é¡ããããŸãã
ãœããé害ãšã¯ãããŒããŠã§ã¢ãç Žå£ãããããšã®ãªããéçšäžã®äžå šã§ããããšãã°ãåé»ããããã¯ãŒã¯ ããŒãã£ã·ã§ã³ããã·ã³ ã¯ã©ãã·ã¥ãªã©ãèããããŸããäžè¬ã«ããœããé害ãçºçããå Žåã§ããBigQuery ã®ããŒã¿ã¯å€±ãããŸããã
ããŒãé害ãšã¯ãããŒããŠã§ã¢ãç Žå£ãããéçšäžã®äžå šã§ããããŒãé害ã¯ãœããé害ãããæ·±å»ã§ããããŒãé害ã®äŸãšããŠã措氎ããããå°éãããªã±ãŒã³ãªã©ã«ãã被害ããããŸãã
å¯çšæ§ãšèä¹ æ§
BigQuery ããŒã¿ã»ãããäœæãããšãã«ãããŒã¿ãä¿åãããã±ãŒã·ã§ã³ãéžæããŸãããã®ãã±ãŒã·ã§ã³ã¯æ¬¡ã®ããããã§ãã
- ãªãŒãžã§ã³: ã¢ã€ãªã¯å·ïŒ
us-central1
ïŒãã¢ã³ããªãªãŒã«ïŒnorthamerica-northeast1
ïŒãªã©ã®å ·äœçãªå°ççå Žæã - ãã«ããªãŒãžã§ã³: ç±³åœïŒ
US
ïŒããšãŒãããïŒEU
ïŒãªã©ã2 ã€ä»¥äžã®å°ççãªå Žæãå«ãåºãå°ççãªãšãªã¢ã
ã©ã¡ãã®å ŽåããBigQuery ã§ã¯éžæãããã±ãŒã·ã§ã³ã® 1 ã€ã®ãªãŒãžã§ã³å ã«ãã 2 ã€ã®ç°ãªã Google Cloud ãŸãŒã³ã«ããŒã¿ã®ã³ããŒãèªåçã«ä¿åãããŸãã
BigQuery ã§ã¯ãã¹ãã¬ãŒãžã®åé·æ§ã«å ããŠãè€æ°ã®ãŸãŒã³ã«ãããåé·ãªã³ã³ãã¥ãŒãã£ã³ã°å®¹éãç¶æãããŸããè€æ°ã®ã¢ãã€ã©ããªã㣠ãŸãŒã³ã«ãããåé·ã¹ãã¬ãŒãžãšã³ã³ãã¥ãŒãã£ã³ã°ãçµã¿åãããããšã§ãBigQuery ã¯é«å¯çšæ§ãšèä¹ æ§ã®äž¡æ¹ãå®çŸããŸãã
ãã·ã³ã¬ãã«ã®é害ãçºçããå ŽåãBigQuery ã¯æ°ããªç§ä»¥äžã®é å»¶ã§çšŒåãç¶ç¶ããŸããçŸåšå®è¡äžã®ã¯ãšãªã¯ããã¹ãŠåŠçãç¶è¡ããŸãããŸãŒã³ã§ãœããé害ãŸãã¯ããŒãé害ãçºçããå Žåã«ãããŒã¿ã®æå€±ãçºçããããšããããŸãããã ããçŸåšå®è¡äžã®ã¯ãšãªã倱æããåéä¿¡ãå¿ èŠã«ãªãå ŽåããããŸããåé»ãå€å§åšã®ç Žæããããã¯ãŒã¯ ããŒãã£ã·ã§ã³ãªã©ã«ãããŸãŒã³ã®ãœããé害ã¯ååã«æ€èšŒãè¡ãããŠããŸãããã®éå®³ã¯æ°å以å ã«èªåçã«ç·©åãããŸãã
ãªãŒãžã§ã³å šäœã®ãããã¯ãŒã¯æ¥ç¶ã倱ãããå Žåãªã©ããœãã ãªãŒãžã§ã³ã«é害ãçºçãããšããã®ãªãŒãžã§ã³ããªã³ã©ã€ã³ã«åŸ©æ§ãããŸã§å¯çšæ§ã倱ãããŸãããã ããããŒã¿ã倱ãããããšã¯ãããŸããããªãŒãžã§ã³ã®ããŒãé害ã®å ŽåïŒããšãã°ãé害ã«ãã£ãŠãªãŒãžã§ã³å šäœãç Žå£ãããå ŽåïŒã¯ããã®ãªãŒãžã§ã³ã«ä¿åãããŠããããŒã¿ã倱ãããå¯èœæ§ããããŸããBigQuery ã§ã¯ãå¥ã®å°ççãªãŒãžã§ã³ã«ããŒã¿ã®ããã¯ã¢ãããã¬ããªã«ãèªåçã«æäŸãããŸããããªãŒãžã§ã³éã§ããŒã¿ã»ããã®ã³ããŒãäœæããŠãéå®³åŸ©æ§æŠç¥ã匷åã§ããŸãã
BigQuery ããŒã¿ã»ããã®ãã±ãŒã·ã§ã³ã®è©³çްã«ã€ããŠã¯ããã±ãŒã·ã§ã³ã«é¢ããçæäºé ãã芧ãã ããã
ã·ããªãª: ãªãŒãžã§ã³ã®æå€±
BigQuery ã§ã¯ãåäŸã®ãªãç©ççãªãŒãžã§ã³æå€±ãçºçããå Žåãèä¹ æ§ãå¯çšæ§ã¯ç¢ºä¿ãããŠããŸãããããã¯ãããªãŒãžã§ã³ãšãã«ããªãŒãžã§ã³ãã®æ§æã«åœãŠã¯ãŸããŸãããã®ããããã®ãããªã·ããªãªã§èä¹ æ§ãšå¯çšæ§ãç¶æããã«ã¯ãã客æ§ã«ããèšç»ãå¿ èŠã§ãããããã¯ãŒã¯åæ¢ãªã©ã®äžæçãªæå€±ã«ãããŠãBigQuery ã® 99.99% ã® SLA ã§ã¯ååã§ãªãå Žåã¯ãåé·ãªå¯çšæ§ãèæ ®ããå¿ èŠããããŸãã
ãªãŒãžã§ã³ã®ç Žå£çãªæå€±ã«çŽé¢ããå Žåã®ããŒã¿æå€±ãé¿ããã«ã¯ãããŒã¿ãå¥ã®å°ççäœçœ®ã«ããã¯ã¢ããããå¿
èŠããããŸããããšãã°ãããŒã¿ã®ã¹ãããã·ã§ããããå°ççã«ç°ãªãå¥ã®ãªãŒãžã§ã³ã® Google Cloud Storage ã«å®æçã«ãšã¯ã¹ããŒãã§ããŸããããã¯ããããããŒã¿åŠçã®ãŠãŒã¹ã±ãŒã¹ã«åŸã£ãŠå®è¡ã§ããŸãã
BigQuery ã®ãã«ããªãŒãžã§ã³ã®å Žåã¯ããã«ããªãŒãžã§ã³ã®ç¯å²å
ã«ãããªãŒãžã§ã³ã«ã¯ããã¯ã¢ããããªãããã«ããŸããããšãã°ãç±³åœã®ããŒã¿ã us-central1 ãªãŒãžã§ã³ã«ããã¯ã¢ããããªãã§ãã ããããã®ãªãŒãžã§ã³ãšãã«ããªãŒãžã§ã³ã¯é害çºçãã¡ã€ã³ãå
±æããçœå®³æã®éåœãå
±æããŠããå¯èœæ§ããããŸãã代ããã«ãç±³åœä»¥å€ã®ãªãŒãžã§ã³ïŒnorthamerica-northeast1
ãªã©ïŒã«ããŒã¿ãããã¯ã¢ããããŠãã ãããããŒã¿æåšå°ã®èŠä»¶ã«ãããããã¯ã¢ãããç±³åœå
ã«ä¿åããå¿
èŠãããå Žåã¯ãus-central1 ãš us-east1 ãªã©ã® 2 ã€ã®ãªãŒãžã§ã³ããã¢ãªã³ã°ããããšãããããããŸãã
é·æã«ããã£ãŠäœ¿çšäžèœãšãªãç¶æ³ãåé¿ããã«ã¯ãå°ççã«é¢ãã 2 ã€ã® BigQuery ãã±ãŒã·ã§ã³ã«ãè€è£œãããããŒã¿ãšããããžã§ãã³ã°ãããã¹ãããã®äž¡æ¹ãçšæããå¿ èŠããããŸããåè¿°ããããã«ããªãŒãžã§ã³ãšãã«ããªãŒãžã§ã³ãæ··åšãããªãã§ãã ããããããã¯é害çºçæã«éåœãå ±ã«ããå¯èœæ§ãããããã§ãã
ãªãŒãžã§ã³åé·ã®èšå®ã§æãä¿¡é Œæ§ã®é«ãã¢ãŒããã¯ãã£ã¯ãããã - ãããå®è¡ïŒã¢ã¯ãã£ã - ã¢ã¯ãã£ãïŒã§ããã€ãŸããã¯ãŒã¯ããŒãã¯ãã©ã€ã㪠ãªãŒãžã§ã³ãšã»ã«ã³ã㪠ãªãŒãžã§ã³ã®äž¡æ¹ã§äžŠè¡ããŠå®è¡ãããŸããã³ã¹ãã¯é«ããªããŸãããã»ã«ã³ã㪠ãªãŒãžã§ã³ãç¶ç¶çã«æ€èšŒãåãããã§ã€ã«ãªãŒããŒãå¿ èŠãªå Žåã«åäœããããšãä¿èšŒãããŸãããªãŒãžã§ã³ã®åæ¢äžã®å¯çšæ§ãããã»ã©åé¡ã«ãªããªãå Žåã¯ãããŒã¿ãå¥ã®ãªãŒãžã§ã³ã«ããã¯ã¢ããããããšã§èä¹ æ§ã確ä¿ã§ããŸãã
ã·ããªãª: 誀ã£ãŠåé€ãŸãã¯ããŒã¿ç Žæããå Žå
BigQuery ã®ãã«ãããŒãžã§ã³åæå®è¡å¶åŸ¡ã¢ãŒããã¯ãã£ã«ãããBigQuery ã¯ã¿ã€ã ãã©ãã«ããµããŒãããŠããŸãããã®æ©èœã«ãããéå» 7 æ¥éã®ä»»æã®æç¹ã§ã®ããŒã¿ãã¯ãšãªã§ããŸããããã«ãããéå» 7 æ¥éã«èª€ã£ãŠåé€ã倿ŽããŸãã¯ç ŽæãããããŒã¿ã®ã»ã«ããµãŒãã¹ã§ã®åŸ©å ãå¯èœã«ãªããŸããã¿ã€ã ãã©ãã«ã¯ãåé€ãããããŒãã«ã«å¯ŸããŠãæ©èœããŸãã
BigQuery ã¯ãããŒãã«ãã¹ãããã·ã§ããããæ©èœããµããŒãããŠããŸãããã®æ©èœã«ããã7 æ¥éã®ã¿ã€ã ãã©ãã«æéãããé·ãæéãåããªãŒãžã§ã³å ã§ããŒã¿ãæç€ºçã«ããã¯ã¢ããã§ããŸããã¹ãããã·ã§ããã¯çŽç²ã«ã¡ã¿ããŒã¿ ãªãã¬ãŒã·ã§ã³ã§ããã远å ã®ã¹ãã¬ãŒãž ãã€ãã¯çºçããŸãããããã«ããã誀åé€ã«å¯Ÿããä¿è·ã¯åŒ·åãããŸãããããŒã¿ã®èä¹ æ§ã¯åäžããŸããã
ãŠãŒã¹ã±ãŒã¹: ãªã¢ã«ã¿ã€ã åæ
ãã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ãã¹ããªãŒãã³ã° ããŒã¿ããšã³ããã€ã³ãã®ãã°ãã BigQuery ã«é£ç¶ããŠåã蟌ãŸããŸãããªãŒãžã§ã³å šäœã§ BigQuery ãé·æã«ããã£ãŠäœ¿çšäžèœã«ãªãã®ãé²ãã«ã¯ãå¥ã®ãªãŒãžã§ã³ã§ããŒã¿ãç¶ç¶çã«è€è£œããã¹ããããããããžã§ãã³ã°ããå¿ èŠããããŸããåã蟌ã¿çµè·¯ã« Pub/Sub ãš Dataflow ã䜿çšãããããBigQuery ãå©çšã§ããªãå Žåã§ãã¢ãŒããã¯ãã£ã«ã¯åŸ©å æ§ãåãã£ãŠããŸããããã®é«æ¬¡ã®åé·æ§ã¯è²»çšã®ç¹ã§èŠåããªãå¯èœæ§ããããŸãã
ãŠãŒã¶ãŒã us-east4 ã® BigQuery ããŒã¿ããus-central1 ã® Archive Storage ã¯ã©ã¹ã«ãã Cloud Storage ãžã®ãšã¯ã¹ããŒã ãžã§ãã䜿çšããŠå€éã«ãšã¯ã¹ããŒãããããã«æ§æãããšããŸããããã«ãããus-east4 ã§å£æ» çãªããŒã¿æå€±ãçããå Žåã®èä¹ æ§ã®é«ãããã¯ã¢ãããå®çŸããŸãããã®å ŽåãæåŸã«ãšã¯ã¹ããŒããããããã¯ã¢ããã¯ææªã®å Žåãæå€§ 24 æéåã®ãã®ã«ãªãå¯èœæ§ããããããç®æšåŸ©æ§æç¹ïŒRPOïŒã¯ 24 æéã§ããCloud Storage ããã¯ã¢ãããã us-central1 ã® BigQuery ã«ããŒã¿ã埩å ããå¿ èŠããããããç®æšåŸ©æ§æéïŒRTOïŒã¯æ°æ¥ã«ãªãå¯èœæ§ããããŸããBigQuery ãããã¯ã¢ãããååšãããªãŒãžã§ã³ãšã¯ç°ãªããªãŒãžã§ã³ã«ããããžã§ãã³ã°ããå Žåã¯ããŸãããã®ãªãŒãžã§ã³ã«ããŒã¿ã転éããå¿ èŠããããŸãããŸãããªã«ã㪠ãªãŒãžã§ã³ã§åé·ã¹ãããããããããè³Œå ¥ããŠããªãéããèŠæ±ãããæ°éã«ãã£ãŠã¯å¿ èŠãª BigQuery 容éãããããžã§ãã³ã°ããããŸã§ã«é å»¶ãçããå¯èœæ§ããããŸãã
ãŠãŒã¹ã±ãŒã¹: ãããããŒã¿åŠç
ãã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ãæ¥æ¬¡ã¬ããŒããæ±ºãŸã£ãæéãŸã§ã«å®äºããèŠå¶æ©é¢ã«éä¿¡ãããããšãããžãã¹äžã®éèŠäºé ã§ããåŠçãã€ãã©ã€ã³å šäœã®ã€ã³ã¹ã¿ã³ã¹ã 2 ã€å¥ã ã«å®è¡ããŠåé·æ§ãå®è£ ããããšã¯ãã³ã¹ãã«èŠåã䟡å€ããããŸããus-west1 ãš us-east4 ãªã©ç°ãªã 2 ã€ã®ãªãŒãžã§ã³ã䜿çšããããšã§ãå°ççãªåé¢ãšã1 ã€ã®ãªãŒãžã§ã³ãé·æé䜿çšã§ããªããªã£ãå ŽåãããŸãã«ãªãŒãžã§ã³ãæ¶å€±ããå Žåã«åã㊠2 ã€ã®ç¬ç«ããé害ãã¡ã€ã³ã確ä¿ããŸãã
ã¬ããŒã㯠1 åã ãé ä¿¡ããå¿ èŠããããšä»®å®ãããšãäž¡æ¹ã®ãã€ãã©ã€ã³ãæ£åžžã«çµäºãããšããæ³å®ãããå Žåã®æŽåæ§ãåãå¿ èŠããããŸããåççãªæ¹æ³ã¯ãæ£åžžã«å®äºãããšãã«ãããšãã° Pub/Sub ãããã¯ãéç¥ããããšã«ãã£ãŠãæåã«ãã€ãã©ã€ã³ãçµäºããçµæãéžæããããšã§ããå¥ã®æ¹æ³ã§ã¯ãçµæãäžæžãããŠãCloud Storage ãªããžã§ã¯ãã®ããŒãžã§ã³ã倿ŽããŸããåŸã§çµäºãããã€ãã©ã€ã³ãäžæ£ãªããŒã¿ãæžã蟌ãã å Žåã¯ãå ã«çµäºãããã€ãã©ã€ã³ãæžã蟌ãã ããŒãžã§ã³ã Cloud Storage ãã埩å ããããšã§æ£åžžãªããŒã¿ã«æ»ããŸãã
ãšã©ãŒåŠç
ä¿¡é Œæ§ã«åœ±é¿ãããšã©ãŒã«å¯ŸåŠããããã®ãã¹ã ãã©ã¯ãã£ã¹ã¯æ¬¡ã®ãšããã§ãã
倱æãã API ãªã¯ãšã¹ããå詊è¡ãã
ã¯ã©ã€ã¢ã³ã ã©ã€ãã©ãªãããŒãã㌠ããŒã«ãå«ã BigQuery ã®ã¯ã©ã€ã¢ã³ãã¯ãAPI ãªã¯ãšã¹ãã®çºè¡æã«åãæšãŠåææ°ããã¯ãªãã䜿çšããå¿ èŠããããŸããã€ãŸããã¯ã©ã€ã¢ã³ããã·ã¹ãã ãšã©ãŒãŸãã¯å²ãåœãŠãšã©ãŒãåãåã£ãå Žåãäžå®åæ°ãŸã§ã¯ãªã¯ãšã¹ããå詊è¡ããŸããããã®éããã¯ãªãééã¯ã©ã³ãã ã«å¢å ããŸãã
ãã®åè©Šè¡æ¹æ³ãæ¡çšãããšããšã©ãŒçºçæã®ã¢ããªã±ãŒã·ã§ã³ã®å ç¢æ§ãå€§å¹ ã«åäžããŸããéåžžã®åäœæ¡ä»¶äžã§ããBigQuery ã® 99.99% ã®å¯çšæ§ SLA ã«èšèŒãããŠããããã«ããªã¯ãšã¹ã 1 äžä»¶ãããçŽ 1 ä»¶ãã倱æããªãããšãæåŸ ãããŸããç°åžžãªæ¡ä»¶äžã§ã¯ããã®ãšã©ãŒçã¯å¢å ããå¯èœæ§ããããŸããããšã©ãŒãã©ã³ãã ã«åæ£ããããšãæãé倧ãªã±ãŒã¹ãé€ããã¹ãŠè»œæžã§ããŸãã
ãªã¯ãšã¹ããç¹°ãè¿ã 5XX ãšã©ãŒã§å€±æããå Žåã¯ã Google Cloud ãµããŒãã«ãšã¹ã«ã¬ãŒã·ã§ã³ããå¿ èŠããããŸããåé¡ãé©åã«åªå é äœä»ããããããã«ãé害ãããžãã¹ã«äžãã圱é¿ãæç¢ºã«äŒããŠãã ãããäžæ¹ããªã¯ãšã¹ãã 4XX ãšã©ãŒã§ç¹°ãè¿ã倱æããå Žåã¯ãã¢ããªã±ãŒã·ã§ã³ã倿Žããããšã§åé¡ã«å¯ŸåŠã§ãããšèããããŸãã詳现ã¯ããšã©ãŒ ã¡ãã»ãŒãžãã芧ãã ããã
ææ°ããã¯ãªãã®ããžãã¯ã®äŸ
ææ°ããã¯ãªãã®ããžãã¯ã§ã¯ãæå€§ããã¯ãªãæéã«éãããŸã§å詊è¡ã®éã®åŸ ã¡æéãå¢å ãããããšã§ãã¯ãšãªãŸãã¯ãªã¯ãšã¹ããå詊è¡ããŸããæ¬¡ã«äŸã瀺ããŸãã
BigQuery ã«ãªã¯ãšã¹ããéä¿¡ããŸãã
ãªã¯ãšã¹ãã倱æããå Žåã1 + random_number_milliseconds ç§åŸ ã£ãŠããããªã¯ãšã¹ããå詊è¡ããŸãã
ãã®ãªã¯ãšã¹ãã倱æããå Žåã2 + random_number_milliseconds ç§åŸ ã£ãŠããããªã¯ãšã¹ããå詊è¡ããŸãã
ãã®ãªã¯ãšã¹ãã倱æããå Žåã4 + random_number_milliseconds ç§åŸ ã£ãŠããããªã¯ãšã¹ããå詊è¡ããŸãã
ãã®ããã«ããŠãæå€§
maximum_backoff
æéã«éãããŸã§ç¹°ãè¿ããŸããå詊è¡ã®æå€§åæ°ãŸã§åŸ æ©ãšå詊è¡ãç¶è¡ããŸãããå詊è¡ã®éã®åŸ ã¡æéã¯å¢å ãããŸããã
次ã®ç¹ã«ã泚æãã ããã
åŸ ã¡æéã¯
min(((2^n)+random_number_milliseconds), maximum_backoff)
ã§ãn
ã¯ç¹°ãè¿ãããïŒãªã¯ãšã¹ãïŒã®ãã³ã« 1 å¢å ããŸããäžèšã®ãããŒã§ã
random_number_milliseconds
ã¯ã1,000 ããªç§ä»¥äžã®ä¹±æ°ã§ãããã®ã©ã³ãã åã«ãã£ãŠã倿°ã®ã¯ã©ã€ã¢ã³ããåæããããã¹ãŠãåæã«å詊è¡ããŠãåæããæ³¢ã®ããã«ãªã¯ãšã¹ããéä¿¡ããç¶æ³ãé¿ããããšãã§ããŸããrandom_number_milliseconds
ã®å€ã¯å詊è¡ãªã¯ãšã¹ãã®åŸã«æ¯ååèšç®ãããŸããéåžžãæå€§ããã¯ãªãééïŒ
maximum_backoff
ïŒã¯ 32 ç§ãŸã㯠64 ç§ã§ããmaximum_backoff
ã®é©åãªå€ã¯ãŠãŒã¹ã±ãŒã¹ã«ãã£ãŠç°ãªããŸãã
ã¯ã©ã€ã¢ã³ãã¯ãæå€§ããã¯ãªãæéã«éããåŸãå詊è¡ãç¶ããããšãã§ããŸãããã®æç¹ããåŸã®å詊è¡ã§ã¯ãããã¯ãªãæéãå¢å ããç¶ããå¿ èŠã¯ãããŸãããããšãã°ãã¯ã©ã€ã¢ã³ããæå€§ããã¯ãªãæéãšã㊠64 ç§ã䜿çšããå Žåããã®å€ã«éããåŸã¯ãã¯ã©ã€ã¢ã³ã㯠64 ç§ããšã«å詊è¡ãç¹°ãè¿ãããšãã§ããŸããããããã®æç¹ã§ãã¯ã©ã€ã¢ã³ããç¡éã«å詊è¡ãè¡ããªãããã«ããå¿ èŠããããŸãã
é©åãªå詊è¡éã®åŸ ã¡æéãšå詊è¡åæ°ã¯ããŠãŒã¹ã±ãŒã¹ãšãããã¯ãŒã¯ã®ç¶æ ã«ããç°ãªããŸãã
倱æãããžã§ãæ¿å ¥ãå詊è¡ãã
ã1 åéãã®æ¿å ¥ãã»ãã³ãã£ã¯ã¹ãã¢ããªã±ãŒã·ã§ã³ã§éèŠãªå Žåã¯ããžã§ãã®æ¿å ¥ã«é¢ããŠè¿œå ã®èæ ®äºé ããããŸããã1 åéããã®ã»ãã³ãã£ã¯ã¹ãå®çŸããæ¹æ³ã¯ãæå®ãã WriteDispositionïŒæžã蟌ã¿åŠçïŒã«ãã£ãŠç°ãªããŸããæžã蟌ã¿åŠçã¯ãããŒãã«å ã«æ¢åã®ããŒã¿ãèŠã€ãã£ãå Žåã«è¡ãåŠçïŒå€±æãäžæžãã远å ïŒã BigQuery ã«æç€ºããŸãã
WRITE_EMPTY
ãŸã㯠WRITE_TRUNCATE
ã®åŠçã§ã¯ã倱æãããžã§ãæ¿å
¥ãŸãã¯å®è¡ãå詊è¡ããã ãã§ãã®ã»ãã³ãã£ã¯ã¹ãå®çŸãããŸããããã¯ããžã§ãã«ãã£ãŠåã蟌ãŸãããã¹ãŠã®è¡ãããŒãã«ã«ã¢ãããã¯ã«æžã蟌ãŸããããã§ãã
WRITE_APPEND
åŠçã§ã¯ãã¯ã©ã€ã¢ã³ãã¯ãžã§ã ID ãæå®ããŠãåãããŒã¿ã 2 åç®ã®å詊è¡ã§è¿œå ãããªãããã«ä¿è·ããå¿
èŠããããŸããåã®ãžã§ãã® ID ã䜿çšãããžã§ãäœæãªã¯ãšã¹ãã BigQuery ã§æåŠãããŸããããã«ãããç¹å®ã®ãžã§ã ID ã«å¯ŸããŠã1 åéããã®ã»ãã³ãã£ã¯ã¹ãå®çŸãããŸãããã®åŸã以åã®ãã¹ãŠã®è©Šè¡ã倱æããããšã BigQuery ã§ç¢ºèªããããæ°ããäºæž¬å¯èœãªãžã§ã ID ã§å詊è¡ããããšã§ãã1 åéãããå®çŸã§ããŸãã
äžæçãªåé¡ããããã¯ãŒã¯ã®äžæã«ãããAPI ã¯ã©ã€ã¢ã³ããŸã㯠HTTP ã¯ã©ã€ã¢ã³ãã§ããžã§ããæ¿å
¥ããããšãã確èªãåä¿¡ã§ããªãããšããããŸããæ¿å
¥ãå詊è¡ããããšããã®ãªã¯ãšã¹ã㯠status=ALREADY_EXISTS
ã§å€±æããŸãïŒcode=409
ãš reason="duplicate"
ïŒãæ¢åã®ãžã§ã ã¹ããŒã¿ã¹ã¯ãjobs.get
ãåŒã³åºãããšã«ãã£ãŠååŸã§ããŸããæ¢åã®ãžã§ãã®ã¹ããŒã¿ã¹ã retrieved
ã«ãªã£ãåŸãåŒã³åºãå
ã¯ãæ°ãããžã§ã ID ã䜿çšããŠæ°ãããžã§ããäœæãããã©ããã倿ã§ããŸãã
ãŠãŒã¹ã±ãŒã¹ãšä¿¡é Œæ§ã«é¢ããèŠä»¶
BigQuery ã¯ãããŸããŸãªã¢ãŒããã¯ãã£ã®éèŠãªèŠçŽ ã§ãããŠãŒã¹ã±ãŒã¹ãšãããã€ãããã¢ãŒããã¯ãã£ã«å¿ããŠãå¯çšæ§ãããã©ãŒãã³ã¹ããã®ä»ã®ä¿¡é Œæ§ã«é¢ããããŸããŸãªèŠä»¶ãæºããå¿ èŠããããŸãããã®ã¬ã€ãã§ã¯ã2 ã€ã®äž»èŠãªãŠãŒã¹ã±ãŒã¹ãšã¢ãŒããã¯ãã£ãéžæããŠè©³çްã説æããŸãã
ãªã¢ã«ã¿ã€ã åæ
æåã®äŸã¯ãã€ãã³ãããŒã¿åŠçãã€ãã©ã€ã³ã§ãããã®äŸã§ã¯ãPub/Sub ã䜿çšããŠãã°ã€ãã³ãããšã³ããã€ã³ãããåã蟌ãŸããŸãããã®åŸããã®ãã°ã€ãã³ãã«å¯ŸããŠã¹ããªãŒãã³ã° Dataflow ãã€ãã©ã€ã³ã§ããã€ãã®ãªãã¬ãŒã·ã§ã³ãå®è¡ãããStorage Write API ã䜿çšããŠããŒã¿ã BigQuery ã«æžã蟌ãŸããŸãããã®ããŒã¿ã¯ãããšãã°ç¹å®ã®ãšã³ããã€ã³ãã®çµæã«ã€ãªãã£ãå¯èœæ§ã®ããã€ãã³ãã®ã·ãŒã±ã³ã¹ãåäœæããããã®ã¢ããã㯠ã¯ãšãªã«ããå¯èŠåã«ããããŒã¿ã®åŸåããã¿ãŒã³ã®æ€åºãå¯èœã«ããã»ãŒãªã¢ã«ã¿ã€ã ã®ããã·ã¥ããŒããžã®ãã£ãŒãã«ã䜿çšãããŸãã
ãã®äŸã§ã¯ãä¿¡é Œæ§ã®ããŸããŸãªåŽé¢ãèæ ®ããããšãæ±ããããŸãããšã³ãããŒãšã³ãã®ããŒã¿ã®æŽæ°é »åºŠã®èŠä»¶ã¯éåžžã«é«ããããåã蟌ã¿ããã»ã¹ã®ã¬ã€ãã³ã·ã¯éåžžã«éèŠã§ããããŒã¿ã BigQuery ã«æžã蟌ãŸãããšãä¿¡é Œæ§ã¯ãå®å®ããäºæž¬å¯èœãªã¬ã€ãã³ã·ã§ã¢ããã㯠ã¯ãšãªãçºè¡ãããŠãŒã¶ãŒã®èœåãšããŠèªèãããããã·ã¥ããŒãã§äœ¿çšããããŒã¿ã確å®ã«ææ°ã®å©çšå¯èœãªããŒã¿ãåæ ããããã«ããŸãã
ãããããŒã¿åŠç
次ã®äŸã¯ãéèãµãŒãã¹æ¥çã®æ³ä»€éµå®ã軞ãšãããããåŠçã¢ãŒããã¯ãã£ã§ããéèŠãªèŠä»¶ã¯ãæ¥æ¬¡ã¬ããŒããå€éã®æ±ºãŸã£ãæéãŸã§ã«ãèŠå¶åœå±ãžæåºããããšã§ããã¬ããŒããçæããå€éã®ãããåŠçãããã®æéãŸã§ã«å®äºããã°ãååé«éãšèããããŸãã
ããŒã¿ã¯ãBigQuery ã§äœ¿çšã§ããä»ã®ããŒã¿ãœãŒã¹ãšçµåããŠããã·ã¥ããŒãã«è¡šç€ºãããåæãããæçµçã«ã¯ PDF ã¬ããŒããçæãããå¿ èŠããããŸããããããã¬ããŒããæéã©ããã«ãšã©ãŒãªãé ä¿¡ããããšã¯ãããžãã¹äžã®éèŠãªèŠä»¶ã§ãããããã£ãŠãããŒã¿ã®åã蟌ã¿ãšã¬ããŒãã®çæã®äž¡æ¹ãé©åã«ãæ±ããããæéã«éã«åãããã«ãèŠåæ£ããæéæ ã§è¡ãä¿¡é Œæ§ã確ä¿ããããšãéèŠã§ãã