äºè±¡ åå 解説 SQL ã«ããã BigQuery ã®ããŒãã«åã®æå® ããã¯ã¯ã©ãŒãã®èŠåŠ å¯Ÿç 察ççæ³ åå äºè±¡ BigQuery ã§ æšæº SQL ãå®è¡ããããšããéã«ä»¥äžã®ãšã©ãŒãçºçããã ãšã©ãŒã¡ãã»ãŒãžã§ç€ºããã該åœç®æã¯ãããŒãã«åã®æå®ã§ãããäžèŠããŠããããªãšããã¯èŠåœãããªãã å®è¡ããããšãã SQL INSERT my-project.mydataset.mytable (id, name, subject, score) VALUES ( " 1111 " , " John Doe " , " Math " , 90 ), ( " 2222 " , " Jane Doe " , " Math " , 95 ) ãšã©ãŒã¡ãã»ãŒãž Syntax error: Expecting VALUES list or query at [2:7] â» æ«å°Ÿã®å€§æ¬åŒ§å
ã®æ°åã¯ãšã©ãŒæ§æã®äœçœ®ã瀺ãããæ¹è¡ãã€ã³ãã³ãçã«ããç°ãªã SQL ã®æ§æã¯æ£ããã¯ããªã®ã«ãšã©ãŒãšãªã åå åœäºè±¡ã®åå ã¯ããããžã§ã¯ã ID ã«ããã·ã¥èšå· (å¥åãã€ãã³ : - ) ã䜿ãããŠããã®ã«ãé¢ããããããŒãã«æå®ãããã¯ã¯ã©ãŒã ( ` ) ã§å²ããªãã£ãããšã§ãã BigQuery ã§ã¯ INSERT å¥ã®ããŒãã«èå¥åãããã¯ã¯ã©ãŒãã§å²ãŸããŠããªãå Žåããããžã§ã¯ã ID ã«ããã·ã¥èšå·ã䜿ãããŠãããšæ§æãšã©ãŒãšãªããŸãã 解説 SQL ã«ããã BigQuery ã®ããŒãã«åã®æå® BigQuery ã§æšæº SQL ã䜿ãéã以äžã®ããã«ãããŒãã«æå®ãããã¯ã¯ã©ãŒã (è±èªã§ã¯ backquote ãŸã㯠backtick) èšå·ã§å²ãã®ãååã§ãã SELECT * FROM `my-project.mydataset.mytable` BigQuery ã®ããŒãã«èå¥åã¯ã以äžã®ãããªæ§æã§ãã `(ãããžã§ã¯ã ID).(ããŒã¿ã»ããå).(ããŒãã«å)` bq ã³ãã³ããã³ã³ãœãŒã«ããã® SQL æå
¥æçããããžã§ã¯ãåãèªæã®å Žåã¯çç¥ããããšãã§ããŸãã ãŸãããã¯ã¯ã©ãŒãã¯ å Žåã«ãã çç¥ããããšãã§ããŸããããã å Žåã«ãã ããã¯ã¯ã©ãŒãã§å²ãŸãªããšãšã©ãŒãšãªãå ŽåããããŸãã ããã¯ã¯ã©ãŒãã®èŠåŠ ããã¥ã¡ã³ãã èªåœã®æ§é ãšæ§æ ãã®ãããŒãã«åãã®é
ã確èªããŸãã åŒçšç¬Šã§å²ãŸããŠããªãèå¥åã¯ã FROM å¥ãŸã㯠TABLE å¥ã§åç
§ãããå Žåã«ããã·ã¥ããµããŒãããŸããããŒãã«ãã¹ã®æåã®èå¥åïŒãããžã§ã¯ã ID ãŸãã¯ããŒãã«åïŒã®ã¿ãããã·ã¥ã䜿çšã§ããŸããããã·ã¥ã¯ããŒã¿ã»ããã§ã¯ãµããŒããããŠããŸããã ãããžã§ã¯ãåçã«ããã·ã¥èšå· (ãã€ãã³èšå·) ã䜿ãããŠããå Žåã§ãã€ããã¯ã¯ã©ãŒãã§å²ãŸããŠããªãå Žåã FROM å¥ã TABLE å¥ã®å Žåã¯åé¡ãªã䜿ããŸããã åœèšäºåé ã§ç€ºãããã㪠INSERT å¥ã®åŸã§ã¯ãšã©ãŒã«ãªã£ãŠããŸãã®ã§ãã ãªããšã©ãŒãšãªããªãå Žåãšã㊠FROM å¥ã TABLE å¥ ã®ä»ã« UPDATE çããããŸãã ãšã©ãŒã«ãªããªã SELECT * FROM my-project.mydataset.mytable CREATE OR REPLACE TABLE my-project.mydataset.mytable ( id STRING, name STRING, subject STRING, score INT64 ) UPDATE my-project.mydataset.mytable SET score = 100 WHERE id = " 1111 " ãšã©ãŒã«ãªã INSERT my-project.mydataset.mytable (id, name, subject, score) VALUES ( " 1111 " , " John Doe " , " Math " , 90 ), ( " 2222 " , " Jane Doe " , " Math " , 95 ) 察ç 察ççæ³ 以äžã®ããã« SQL ãä¿®æ£ãããšãæ§æãšã©ãŒã¯çºçããŸããã ããã¯ã¯ã©ãŒãã§å²ã INSERT `my-project.mydataset.mytable` (id, name, subject, score) VALUES ( " 1111 " , " John Doe " , " Math " , 90 ), ( " 2222 " , " Jane Doe " , " Math " , 95 ) ããã¯ã¯ã©ãŒãã§å²ã (ãããžã§ã¯ãåã®ã¿ã§ãå¯) INSERT `my-project`.mydataset.mytable (id, name, subject, score) VALUES ( " 1111 " , " John Doe " , " Math " , 90 ), ( " 2222 " , " Jane Doe " , " Math " , 95 ) INTO ãã€ãã INSERT INTO my-project.mydataset.mytable (id, name, subject, score) VALUES ( " 1111 " , " John Doe " , " Math " , 90 ), ( " 2222 " , " Jane Doe " , " Math " , 95 ) åå ã³ãŒãã£ã³ã°èŠåãšããŠãããŒãã«èå¥åã¯ããã¯ã¯ã©ãŒãã§å²ãããšãšããã®ãæãŸãããšèšããŸãã ãã ã Bash (Linux) çã§ bq ã³ãã³ããå®è¡ããéã¯ããã¯ã¯ã©ãŒããå¥ã®æå³ãæã€ãããé©åã«ãšã¹ã±ãŒãããå¿
èŠããããŸãã Bash ã§ã¯ããã¯ã¯ã©ãŒãã¯ãã³ãã³ãã®å±éãã®æå³ãšãªã£ãŠããŸããŸãã®ã§ãããã¯ã¹ã©ãã·ã¥èšå· ( \ ) ã§ããã¯ã¯ã©ãŒãããšã¹ã±ãŒãããŸãã ãšã©ãŒãšãªãã±ãŒã¹ $ bq query --use_legacy_sql=false "SELECT * FROM `my-project.mydataset.mytable`" -bash: my-project.mydataset.mytable: command not found Error in query string: Error processing job 'my-project:bqjob_abcde_0000012345_1': Syntax error: Unexpected end of script at [1:14] åé¡ãªãã±ãŒã¹ $ bq query --use_legacy_sql=false "SELECT * FROM \`my-project.mydataset.mytable\`" +------+----------+---------+-------+ | id | name | subject | score | +------+----------+---------+-------+ | 1111 | John Doe | Math | 90 | | 2222 | Jane Doe | Math | 95 | +------+----------+---------+-------+ ææ å銬 (èšäºäžèЧ) å·è¡åœ¹å¡ CTO / ã¯ã©ãŠããœãªã¥ãŒã·ã§ã³éš éšé· å
èŠå¯å®ãšããçµæŽãæã€çŸ IT ãšã³ãžãã¢ãã¯ã©ãŠã管çã»éçšããããã¯ãŒã¯ã«ç¥èŠãAWS 12è³æ ŒãGoogle Cloudèªå®è³æ Œ11è³æ ŒãX (æ§ Twitter) ã§ã¯ Google Cloud ã AWS ã®ã¢ããããŒãæ
å ±ãã€ã¶ãããŠããŸãã Follow @y_sugi_it