Google BigQuery
ノード上のデータを、Google BigQuery のテーブルに書き込みます。
データが大きいときは、Hyper nehanの速い処理で書き出せます。出し先を選ぶ一覧でも、この出し先には印が付きます。
ダイアログ内設定項目
- 接続情報必須
- Google BigQuery の接続情報を選びます。はじめは更新日がいちばん新しいものが入っています。一覧に出るのは、自分が参照できる接続情報だけです。
- データセット名必須
- 書き込み先のデータセットを、接続情報から読み込んだ一覧から選びます。この欄は一覧から選ぶだけです。手で打った名前や変数は入れられません。
- 対象のテーブル名必須
- 書き込み先のテーブルを、一覧から選ぶか手で入れます。ない名前を入れると新しく作られます。欄の左の印で、その名前のテーブルがもうあるかどうかが分かります。変数を差し込めます。
- スキーマ
- 書き込み先の列名と列型を 1 列ずつ決めます。開いた時点では、nehan 上の列名と、それに近い BigQuery の型が入っています。
- 書き込み設定
- テーブルがもうあったときにどうするかを決めます。
- 追記
- 前からあったデータはそのままで、うしろに足します。既定はこちらです。
- 上書き
- 前からあったデータを消してから書きます。
選べる列型
Google BigQuery の列型 10 種
STRING / BYTES / INTEGER / FLOAT / NUMERIC / BOOLEAN / TIMESTAMP / DATE / TIME / DATETIME
エラーと対処
どのエラーも、直すのは「設定の編集」ダイアログか接続情報の画面です。
データセット名が空
データセットを選ばずに実行したときに出ます。
設定の編集で、出力先のデータセット名を選択してください。
直し方 — 接続情報を選び直すと一覧が読み込まれるので、そこから選びます。
テーブル名が空
テーブル名を入れずに実行したときに出ます。
設定の編集で、出力先のテーブル名を入力してください。
直し方 — 書き込み先のテーブル名を入れます。
相手のテーブルと形が合わない
「追記」で、相手のテーブルの列の並びや型が、スキーマで決めたものと違うときに出ます。
出力データとBigQueryのテーブルのスキーマが一致しません。
直し方 — スキーマの列名と型を、相手のテーブルに合わせます。合わせられないときは「上書き」にして作り直します。
スキーマの列数とデータの列数が合わない
同じ文が、相手のテーブルとは関係なく出ることもあります。 スキーマを決めたあとで手前のノードを直し、列が増えたり減ったりしたときです。書き込み設定が「追記」でも「上書き」でも出ます。
出力データとBigQueryのテーブルのスキーマが一致しません。
直し方 — 「設定の編集」を開き直します。開いた時点で、いまのデータの列でスキーマが作り直されます。
列名に使えない字がある
列名に、BigQuery が受け取れない字が入っているときに出ます。
スキーマ名が不正です。アルファベット、数値、アンダースコア(_)のみ利用可能です。また、アルファベットかアンダースコアから始まり、128文字以内です。
直し方 — スキーマの列名を、英数字とアンダースコアだけに書き換えます。先頭を数字にはできません。
書き込む権限がない
BigQuery 側でそのデータセットへの書き込みを許されていないときに出ます。
エクスポートでエラーが発生しました。BigQueryでの権限エラーの可能性があります。
直し方 — GCP 側で、サービスアカウントにデータセットへの書き込みを許します。
サービスアカウントキーの形がおかしい
接続情報に貼った JSON が読めないときに出ます。
接続情報が不正です。アクセスキー内のprivate_keyが「“」で囲まれているかなど、JSONの書式を確認してください。
直し方 — GCP コンソールから落とした JSON を、そのまま貼り直します。
サービスアカウントの中身が足りない
JSON としては読めるが、認証に使う項目が足りないときに出ます。
接続情報が不正です。サービスアカウントJSONのフォーマットに誤りがあります。GCPコンソールからダウンロードしたJSONの内容を正しく貼り付けているか確認してください。
直し方 — 一部だけを貼っていないか確かめ、JSON を丸ごと貼り直します。
変数が見つからない
名前に $ で変数を書いたが、その名前の変数がないときに出ます。
変数: 対象日が設定されていないため処理を中断しました。
直し方 — 変数の名前を見直すか、プロジェクトに変数を追加します。$ で始めて書いた語は、すべて変数として扱われます。