コンテンツにスキップ

Google BigQuery

Google BigQuery 上のデータを、SQL を書いて取り出し、データソースとして登録できます。

必要な情報

接続情報(必須)

BigQuery オプション

ほかのデータベース系にはない、BigQuery だけの 3 つです。 見出しは画面でもBigQueryオプションと出ます。

ロケーション
データセットが置かれている場所を一覧から選びます。はじめは US が選ばれています。選べるのは US / EU / us-west2 / northamerica-northeast1 / us-east4 / southamerica-east1 / europe-north1v / europe-west2 / europe-west6 / asia-east2 / asia-south1 / asia-northeast2 / asia-east1 / asia-northeast1 / asia-southeast1 / australia-southeast1 の 16 個です。場所が違うとデータセットが見つかりません。Google Cloud コンソールのデータセットの詳細に出ている場所を選んでください。
一時テーブルを作成するデータセット名(巨大データ用)
BigQuery 側に一時テーブルを作る置き場です。接続情報を選ぶと、そのプロジェクトのデータセットが一覧に出るので、そこから選びます。ふつうの読み込みでは空のままで構いません。効くのは Hyper nehan を契約している組織の読み込みだけで、そのときは指定が必須です。空のまま実行すると「一時テーブルを作成するデータセット名を指定してください。」と出ます。
BigQuery Storage APIを使用して高速に読み込む(GCPの料金が別途かかります)
ON にすると BigQuery Storage API を使って読み込みます。画面のラベルのとおり、GCP 側の料金が別にかかります。この設定もHyper nehanを契約している組織の読み込みでだけ効き、そのときはON が必須です。OFF のまま実行すると「Hyper版ではストレージAPIを有効にしてください」と出ます。ふつうの読み込みでは、ON にしても OFF にしても動きは変わりません。

BigQuery Storage API を有効にする手順

  1. Google Cloud コンソールを開きます。
  2. 対象のプロジェクトを選びます(なければ新しく作ります)。
  3. 左のメニューからAPI とサービス→ダッシュボードを選びます。
  4. API とサービス ダッシュボードでライブラリを選びます。
  5. API ライブラリでBigQuery Storage APIを探します。
  6. 検索結果からBigQuery Storage APIを選びます。
  7. 詳細の画面で、上にある有効にするを押します。

テーブルを確認する

接続情報を選ぶと、データセット → テーブル → 列の順にたどれるようになります。選んだテーブルはテーブルプレビュー機能で中身が見られ、クエリ補完機能の候補にも入ります。

クエリ(必須)

SQL エディタに SQL を書きます。画面での欄の名前はクエリです。

ほかのデータベース系との違い

見るところGoogle BigQueryほかのデータベース系
固有の設定ロケーション / 一時テーブルを作成するデータセット名(巨大データ用) / BigQuery Storage APIを使用して高速に読み込むTreasure Data のSQL エンジン以外は無し
テーブルのたどり方データセット → テーブル → 列データタイプごとに違う(SQL を書いて取り込むデータタイプの表)
列編集操作使えません使えません

データベース系のデータタイプでは、列の名前や型をデータソースの画面で変えられません。 変えたいときは SQL の中で AS や CAST を使うか、分析プロジェクトの列操作で変えてください。

うまくいかないとき

どのメッセージも、SQLを実行するか実行して保存したあとに出ます。 画面の上に赤い帯で出て、そのままでは保存できません(データソースの読み込みステータス)。

クエリが空のまま実行した

クエリに 1 文字も書かずに実行したときに出ます。

クエリを入力してください。

直し方 — SQL を書いてから実行してください。

SQL の書き方が違う

BigQuery が SQL として受け付けなかったときに出ます。

構文エラーが検出されました。 {{original_message}}

直し方 — 後ろに付いている BigQuery からの文面に、どこで止まったかが出ます。クエリ補完機能を使って、テーブル名や列名を打ち間違えていないかも確かめてください。

データセットが見つからない

ロケーションで選んだ場所に、SQL に書いたデータセットがないときに出ます。データセットそのものがあっても、場所が違えば見つかりません。

{{dataset_name}}が{{location}}ロケーションで見つかりませんでした。

直し方 — Google Cloud コンソールのデータセットの詳細に出ている場所を見て、ロケーションを選び直してください。

テーブル名にデータセット名が付いていない

SQL のテーブル名がデータセット名を含んでいないときに出ます。nehan は既定のデータセットを指定しないので、省略できません。

{{table_name}}が見つかりませんでした。クエリにデータセット名も記述してください。

直し方 — プロジェクト.データセット.テーブル の形で書いてください。

列名が _ で始まっている

BigQuery が _PARTITION _TABLE_ _FILE_ _ROW_TIMESTAMP で始まる列名を受け付けないときに出ます。

"_" から始まる列名は使用できません。列名を変更するか、対象から省いてください。{{original_message}}

直し方 — SQL の中で AS を使って別の名前を付けるか、その列を SELECT から外してください。

権限が足りない

接続情報のサービスアカウントに、そのプロジェクトやデータセットを読む権限がないときに出ます。

プロジェクト: {{project}} に対する {{permission}}権限がありません。Google BigQuery の権限をご確認ください。

直し方 — GCP コンソールで、そのサービスアカウントに roles/bigquery.user や roles/bigquery.dataViewer などのロールを付けてください(Google BigQueryの手順 5)。

認証が取り消されたか期限切れになっている

サービスアカウントキーが無効にされたか、期限が切れているときに出ます。

認証情報が取り消されたか、期限切れになっています。{{original_message}}

直し方 — GCP コンソールで新しい JSON キーを作り、接続情報(Google BigQuery)を作り直してください。

鍵の中の改行が崩れている

接続情報に貼った JSON が、JSON として読めないときに出ます。

接続情報が不正です。アクセスキー内のprivate_keyが「“」で囲まれているかなど、JSONの書式を確認してください。

直し方 — テキストエディタで整形せず、ダウンロードしたままの字を貼ってください。

鍵の JSON が壊れている

JSON としては読めるが、サービスアカウントキーとして足りない項目があるときに出ます。

接続情報が不正です。サービスアカウントJSONのフォーマットに誤りがあります。GCPコンソールからダウンロードしたJSONの内容を正しく貼り付けているか確認してください。

直し方 — ダウンロードしたファイルの中身をまるごと貼り直してください。

時間がかかりすぎて切れた

BigQuery からの応答を待つ間に時間切れになったときに出ます。

bigqueryへの接続がタイムアウトしました。データ量を少なくするか、時間を置いて再度実行ください。

直し方 — SQL の WHERE で取り込む範囲を絞ってから実行し直してください。

関連