質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
BigQuery

BigQueryは、Google Cloud Platformが提供しているビッグデータ解析サービス。数TB(テラバイト)またはPB(ペタバイト)の膨大なデータに対し、SQL風のクエリを実行し、高速で集計・分析を行うサービスです。

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

570閲覧

クエリエディタでの実行時、Linuxインスタンスでの実行時とで結果が異なる

raccoondog

総合スコア77

BigQuery

BigQueryは、Google Cloud Platformが提供しているビッグデータ解析サービス。数TB(テラバイト)またはPB(ペタバイト)の膨大なデータに対し、SQL風のクエリを実行し、高速で集計・分析を行うサービスです。

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2019/01/15 09:25

編集2019/01/18 01:30

あるSQLをクエリエディタで実行したときと、Linuxインスタンス(GCP)のコンソール上で実行した時とで結果が異なる事象が発生
SQL文の構文を変更して実行したが、事象変わらずの状態となります。

■GCP RHELインスタンス ●1度目 [dwhtest01@embulk-bigquery-test autosql]$ bq query "insert into `fluid-emissary-216806.embulk_test.INPUT_TEST_003` [ID,NUM,STR,VARSTR,DT,TIME0,TIME6,TIME9] select * from `fluid-emissary-216806.embulk_test.INPUT_TEST_001` where Num In (select Num from `fluid-emissary-216806.embulk_test.INPUT_TEST_002` A where not exists(select 1 from `fluid-emissary-216806.embulk_test.INPUT_TEST_003` B where A.NUM=B.NUM))" -bash: fluid-emissary-216806.embulk_test.INPUT_TEST_003: command not found -bash: fluid-emissary-216806.embulk_test.INPUT_TEST_001: command not found -bash: fluid-emissary-216806.embulk_test.INPUT_TEST_002: command not found -bash: fluid-emissary-216806.embulk_test.INPUT_TEST_003: command not found Error in query string: Error processing job 'fluid-emissary-216806:bqjob_r1f224426d1a31cf2_0000016850ce483c_1': Encountered " "FROM" "from "" at line 1, column 64. Was expecting: <EOF> ●2度目 [dwhtest01@embulk-bigquery-test autosql]$ bq query "insert into [fluid-emissary-216806.embulk_test.INPUT_TEST_003] [ID,NUM,STR,VARSTR,DT,TIME0,TIME6,TIME9] select * from [fluid-emissary-216806.embulk_test.INPUT_TEST_001] where Num In (select Num from [fluid-emissary-216806.embulk_test.INPUT_TEST_002] A where not exists(select 1 from [fluid-emissary-216806.embulk_test.INPUT_TEST_003] B where A.NUM=B.NUM))" Error in query string: Error processing job 'fluid-emissary-216806:bqjob_r3608d36b1b037c75_0000016850ca97ee_1': Encountered "" at line 1, column 64. [dwhtest01@embulk-bigquery-test autosql]$

※再度select

[dwhtest01@embulk-bigquery-test ~]$ bq query "insert into [fluid-emissary-216806.embulk_test.INPUT_TEST_003] (ID,NUM,STR,VARSTR,DT,TIME0,TIME6,TIME9) select * from [fluid-emissary-216806.embulk_test.INPUT_TEST_001] where Num In (select Num from [fluid-emissary-216806.embulk_test.INPUT_TEST_002] A where not exists(select 1 from [fluid-emissary-216806.embulk_test.INPUT_TEST_003] B where A.NUM=B.NUM))" Error in query string: Error processing job 'fluid-emissary-216806:bqjob_r7a78024a25a7e177_00000168540dd398_1': Encountered "" at line 1, column 65.

※2019/1/17 ファイル渡し実行結果➀

[dwhtest01@embulk-bigquery-test autosql]$ bq query --flagfile auto.sql Error in query string: Error processing job 'fluid-emissary-216806:bqjob_r6474224b7c9c234c_000001685a1b79b5_1': Encountered " <STRING_LITERAL> "\"insert into [fluid-emissary-216806.embulk_test.INPUT_TEST_003] (ID,NUM,STR,VARSTR,DT,TIME0,TIME6,TIME9) select * from [fluid-emissary-216806.embulk_test.INPUT_TEST_001] where Num In (select Num from [fluid-emissary-216806.embulk_test.INPUT_TEST_002] A where not exists(select 1 from [fluid-emissary-216806.embulk_test.INPUT_TEST_003] B where A.NUM=B.NUM));\" "" at line 1, column 1. Was expecting: <EOF> [dwhtest01@embulk-bigquery-test autosql]$ [dwhtest01@embulk-bigquery-test autosql]$ bq --flagfile auto.sql FATAL Command '"insert into [fluid-emissary-216806.embulk_test.INPUT_TEST_003] (ID,NUM,STR,VARSTR,DT,TIME0,TIME6,TIME9) select * from [fluid-emissary-216806.embulk_test.INPUT_TEST_001] where Num In (select Num from [fluid-emissary-216806.embulk_test.INPUT_TEST_002] A where not exists(select 1 from [fluid-emissary-216806.embulk_test.INPUT_TEST_003] B where A.NUM=B.NUM));"' unknown Run 'bq help' to get help [dwhtest01@embulk-bigquery-test autosql]$ [dwhtest01@embulk-bigquery-test autosql]$ [dwhtest01@embulk-bigquery-test autosql]$ cat auto.sql "insert into [fluid-emissary-216806.embulk_test.INPUT_TEST_003] (ID,NUM,STR,VARSTR,DT,TIME0,TIME6,TIME9) select * from [fluid-emissary-216806.embulk_test.INPUT_TEST_001] where Num In (select Num from [fluid-emissary-216806.embulk_test.INPUT_TEST_002] A where not exists(select 1 from [fluid-emissary-216806.embulk_test.INPUT_TEST_003] B where A.NUM=B.NUM));" [dwhtest01@embulk-bigquery-test autosql]$

※SQL分を変更して実行➀

$ cat auto.sql insert into [fluid-emissary-216806.embulk_test.INPUT_TEST_003] select * from [fluid-emissary-216806.embulk_test.INPUT_TEST_001] where Num In (select Num from [fluid-emissary-216806.embulk_test.INPUT_TEST_002] A where not exists(select 1 from [fluid-emissary-216806.embulk_test.INPUT_TEST_003] B where A.NUM=B.NUM)) $ bq query --flagfile auto.sql Error in query string: Error processing job 'fluid-emissary-216806:bqjob_r24810c52dc220156_000001685a7614c1_1': Encountered " <STRING_LITERAL> "\'insert into [fluid-emissary-216806.embulk_test.INPUT_TEST_003] select * from [fluid-emissary-216806.embulk_test.INPUT_TEST_001] where Num In (select Num from [fluid-emissary-216806.embulk_test.INPUT_TEST_002] A where not exists(select 1 from [fluid-emissary-216806.embulk_test.INPUT_TEST_003] B where A.NUM=B.NUM))\' "" at line 1, column 1.Was expecting:<EOF> $ cat auto.sql insert into [fluid-emissary-216806.embulk_test.INPUT_TEST_003] (ID,NUM,STR,VARSTR,DT,TIME0,TIME6,TIME9) select (ID,NUM,STR,VARSTR,DT,TIME0,TIME6,TIME9) from [fluid-emissary-216806.embulk_test.INPUT_TEST_001] where Num In (select Num from [fluid-emissary-216806.embulk_test.INPUT_TEST_002] A where not exists(select 1 from [fluid-emissary-216806.embulk_test.INPUT_TEST_003] B where A.NUM=B.NUM)) $ bq query --flagfile auto.sql Error in query string: Error processing job 'fluid-emissary-216806:bqjob_r773f6197eeba500_000001685a7d92a9_1': Encountered "" at line 1, column 65.

※SQL分を変更して実行➁

[dwhtest01@embulk-bigquery-test autosql]$ bq --flagfile auto.sql FATAL Command 'insert into [fluid-emissary-216806.embulk_test.INPUT_TEST_003] (ID,NUM,STR,VARSTR,DT,TIME0,TIME6,TIME9) select (ID,NUM,STR,VARSTR,DT,TIME0,TIME6,TIME9) from [fluid-emissary-216806.embulk_test.INPUT_TEST_001] where Num In (select Num from [fluid-emissary-216806.embulk_test.INPUT_TEST_002] A where not exists(select 1 from [fluid-emissary-216806.embulk_test.INPUT_TEST_003] B where A.NUM=B.NUM))' unknown Run 'bq help' to get help [dwhtest01@embulk-bigquery-test autosql]$ cat auto.sql insert into [fluid-emissary-216806.embulk_test.INPUT_TEST_003] (ID,NUM,STR,VARSTR,DT,TIME0,TIME6,TIME9) select (ID,NUM,STR,VARSTR,DT,TIME0,TIME6,TIME9) from [fluid-emissary-216806.embulk_test.INPUT_TEST_001] where Num In (select Num from [fluid-emissary-216806.embulk_test.INPUT_TEST_002] A where not exists(select 1 from [fluid-emissary-216806.embulk_test.INPUT_TEST_003] B where A.NUM=B.NUM)) [dwhtest01@embulk-bigquery-test autosql]$ [dwhtest01@embulk-bigquery-test autosql]$ bq --flagfile auto.sql FATAL Command 'insert into [fluid-emissary-216806.embulk_test.INPUT_TEST_003] select * from [fluid-emissary-216806.embulk_test.INPUT_TEST_001] where Num In (select Num from [fluid-emissary-216806.embulk_test.INPUT_TEST_002] A where not exists(select 1 from [fluid-emissary-216806.embulk_test.INPUT_TEST_003] B where A.NUM=B.NUM))' unknown Run 'bq help' to get help [dwhtest01@embulk-bigquery-test autosql]$ cat auto.sql insert into [fluid-emissary-216806.embulk_test.INPUT_TEST_003] select * from [fluid-emissary-216806.embulk_test.INPUT_TEST_001] where Num In (select Num from [fluid-emissary-216806.embulk_test.INPUT_TEST_002] A where not exists(select 1 from [fluid-emissary-216806.embulk_test.INPUT_TEST_003] B where A.NUM=B.NUM))

※bq shellで実行

fluid-emissary-216806> insert into `fluid-emissary-216806.embulk_test.INPUT_TEST_003` (ID,NUM,STR,VARSTR,DT,TIME0,TIME6,TIME9) select * from `fluid-emissary-216806.embulk_test.INPUT_TEST_001` where Num In (select Num from `fluid-emissary-216806.embulk_test.INPUT_TEST_002` A where not exists(select 1 from `fluid-emissary-216806.embulk_test.INPUT_TEST_003` B where A.NUM=B.NUM)); Too many positional args, still have ['(ID,NUM,STR,VARSTR,DT,TIME0,TIME6,TIME9)', 'select', '*', 'from', '`fluid-emissary-216806.embulk_test.INPUT_TEST_001`', 'where', 'Num', 'In', '(select', 'Num', 'from', '`fluid-emissary-216806.embulk_test.INPUT_TEST_002`', 'A', 'where', 'not', 'exists(select', '1', 'from', '`fluid-emissary-216806.embulk_test.INPUT_TEST_003`', 'B', 'where', 'A.NUM=B.NUM));'] fluid-emissary-216806>

※bq shell queryで実行

fluid-emissary-216806> query insert into [fluid-emissary-216806.embulk_test.INPUT_TEST_003] (ID,NUM,STR,VARSTR,DT,TIME0,TIME6,TIME9) select (ID,NUM,STR,VARSTR,DT,TIME0,TIME6,TIME9) from [fluid-emissary-216806.embulk_test.INPUT_TEST_001] where Num In (select Num from [fluid-emissary-216806.embulk_test.INPUT_TEST_002] A where not exists(select 1 from [fluid-emissary-216806.embulk_test.INPUT_TEST_003] B where A.NUM=B.NUM)); Error in query string: Error processing job 'fluid-emissary-216806:bqjob_r3a2890ff8b6aaafb_000001685e8a62ea_1': Encountered "" at line 1, column 65. fluid-emissary-216806> query insert into [fluid-emissary-216806.embulk_test.INPUT_TEST_003] select * from [fluid-emissary-216806.embulk_test.INPUT_TEST_001] where Num In (select Num from [fluid-emissary-216806.embulk_test.INPUT_TEST_002] A where not exists(select 1 from [fluid-emissary-216806.embulk_test.INPUT_TEST_003] B where A.NUM=B.NUM)); Error in query string: Error processing job 'fluid-emissary-216806:bqjob_r4d52c9795e2725bd_000001685e8af20b_1': 1.1 - 1.314: Unrecognized token insert. fluid-emissary-216806> query insert into [fluid-emissary-216806.embulk_test.INPUT_TEST_003] select * from [fluid-emissary-216806.embulk_test.INPUT_TEST_001] where Num In (select Num from [fluid-emissary-216806.embulk_test.INPUT_TEST_002] A where not exists(select 1 from [fluid-emissary-216806.embulk_test.INPUT_TEST_003] B where A.NUM=B.NUM)); Error in query string: Error processing job 'fluid-emissary-216806:bqjob_r2a7db97a8bdbd422_000001685e8b15fd_1': 1.1 - 1.314: Unrecognized token insert.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

1回目は()が[]に変わってます。
2回目は、さらに、``が[]に変わってますね。

もう少し落ち着いてエラーを見たほうが良いかと思います。

投稿2019/01/15 10:04

sazi

総合スコア25173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

raccoondog

2019/01/16 05:06

ご回答有難うございます。 単純にテーブルをselectした結果を質問内容に記載させて頂きました。 テーブルを指定する際に、(``)から([])に変更して成功しました。 しかし、目的のSQLでは失敗してしまいます。
sazi

2019/01/17 00:28 編集

エラーを重視して下さい。 > Encountered "" at line 1, column 65. 65文字目なので、 insert into テーブル名(カラム名,,,) のカラム指定の(の箇所です。 (が""になっているという意味が分かりませんが、そこで切れているといっているような気がします。 また、影響があるか分かりませんが、 カラム名を指定する場合は、 insert into テーブル名(カラム名,,,) select カラム名,,, from として指定します。 select * で指定する場合は、通常 insert into テーブル名 select * from と記述します。
raccoondog

2019/01/17 02:43

ご回答有難うございます。 insert into tablename columnname のカラム名箇所を、()、``、[]、””、と試したのですがエラーとなってしまいました。 また、insert into tablename columname select columname from tablenameでも試したのですが、エラーになりました。 GCPのLinuxインスタンスでは、長文SQLは実行できないのでしょうか。 BigQueryのSQLエディタでは問題なく動作するSQLなのですが、原因不明の状況となります。
sazi

2019/01/17 03:01 編集

エンコードのような気もしますが、ファイル渡しとかにすればどうですか
raccoondog

2019/01/17 03:01

すみません、ファイル渡しとはどのような処理になるのでしょうか。
raccoondog

2019/01/17 03:17

ご回答有難うございます。 最終的にはcronに登録して、SQLを定期実行させたいです。 コンソールでのSQL実行でなく、GCPのRHELインスタンス上でSQLを実行できるようにしてcronへ登録を考えております。 GCPのコンソールですと、ログアウトして1時間経過するとcrontabの中身が消える仕様みたいで、実装することが出来ない 前提の説明が不足しておりました。
sazi

2019/01/17 03:42

単に bq --flagfile xxx.sql とか bq query --flagfile xxx.sql ではエラーですか?
raccoondog

2019/01/17 04:43

質問内容を更新させて頂きました。 ※2019/1/17 ファイル渡し実行結果➀ エラーとなってしまいます。
sazi

2019/01/17 05:05 編集

bq --flagfile auto.sql の方は読み込みがされた上での、コマンドエラーですね。 先に指摘した文法を見直して下さい。 何度も言いますが、もう少しエラーの内容を掘り下げて確認しないと、 何時までたっても「エラー出た。どうしよう」から脱却できませんよ。
raccoondog

2019/01/17 06:31

SQL文を見直して再度テストを実施しました。 質問内容に「※SQL分を変更して実行」を追記させて頂きました。 おかしい箇所などありましたらご指摘の程お願い致します。
sazi

2019/01/17 07:44

bq --flagfile auto.sql の方で実行しないと・・・
raccoondog

2019/01/17 07:53

ご指摘有難うございます。 再実行させて頂きました、質問内容「※SQL分を変更して実行➁」を追記
sazi

2019/01/17 08:00

失礼。これは私の勘違いでした。 queryではselectにしか対応していないのかもしれませんね。 insert かloadでの対応してみる、位しかアドバイスできません
sazi

2019/01/17 08:14

違うコマンドでもほぼ Encountered "" at line 1, column 65. という事なのでqueryでinsertは使えないのかな?適当なSELECTでは問題ないでしょうか?
raccoondog

2019/01/17 08:20

INPUT_TEST_003(今回対象のBigQueryテーブル)を単純にSELECTした場合には、コマンドでも成功、ファイル渡しでも成功しました。
raccoondog

2019/01/17 09:24

情報有難うございます。 今回の場合、目的のテーブルは作成されていて、SQLで特定条件のもと必要なレコードだけを目的のテーブルにインサートさせるので、テーブルコピーは不要となります。
raccoondog

2019/01/17 23:40

bq shellでテストしてみました。 質問内容に結果を追記させて頂きました。 引数が多すぎる。との事です。
sazi

2019/01/18 00:05

insertで指定している項目とselect * の項目数と並び一致していますか
raccoondog

2019/01/18 00:31

insert into テーブル名(カラム名,,,) select (カラム名,,,) from insert into テーブル名 select * from いずれの方法でも失敗しました。
sazi

2019/01/18 00:41 編集

insert はコマンドとして解釈されていますね bq shell 以降はbqというコマンドが省略できるということですから、sqlが直接打てるわけではありません。 query が必要です
raccoondog

2019/01/18 01:32

ご指摘有難うございます。 質問内容に「※bq shell queryで実行」を追記させて頂きました。 処理結果が前回同様のエラーを出力し、失敗します。
sazi

2019/01/18 01:54 編集

前に言ったように、query ではinsertはダメなんだろうとしか。 sqlで行うならクエリーのスケジューリングという事になるんじゃないかと。
raccoondog

2019/01/18 02:16

以前、クエリーのスケジューリングを検討したのですが、実行間隔の最短許容時間は 3 時間となっていまして、見送っています。 実行間隔を1分や、せめて10分ぐらいの間隔で実行させたいです。
sazi

2019/01/18 04:11

そこまで詳しくはないですから、その点についてのアドバイスはありません。 先ずは、可能な機能を用いて実現した上で、それらを課題として取り組むように方針転換された方が良いと思います。 出来ないで留まるより、課題はあるが実現できている状態に持って行った方が精神的にもね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問