BigQuery API の Cloud クライアント ライブラリの使用方法


概要

Firebase Functions から Google BigQuery の API を実行するまでに結構てこずったので記録しておこうと思います。ネットで検索するといろいろ情報はあるし公式サイトも充実しているのですが、私が知りたい部分が抜けているような感じがしたので、私が実行できた書き方を紹介致します。

前提

・プロジェクトは作成済
・BigQuery にデータが既に有る

サービスアカウントキー作成

サービスアカウントキーの作成に関しては公式サイトの手順通りに進めれば大丈夫です。
https://cloud.google.com/bigquery/docs/quickstarts/quickstart-client-libraries?hl=ja

BigQuery API を有効化にしていきます

検索するとすぐに出てくるので選択

「有効」をクリック

「認証情報」→「認証情報を作成」→「サービス アカウント」を選択

「サービス アカウント名」を入力し、「作成」をクリック
*ID は自動で作成されます

役割は「オーナー」を選択し、「続行」をクリック

「キーを作成」→「JSON」→「作成」を選択するとダウンロードされます。その後、「完了」をクリックで終了です。

クライアント ライブラリのインストール

npm install --save @google-cloud/bigquery

ソースコード

*このソースは Firebase Functions から呼び出す想定の書き方となっています

const { BigQuery } = require("@google-cloud/bigquery");

export async function index() {
  const bigQuery = new BigQuery({
    projectId: "xxxx",
    credentials: require("[path]/xxxx.json") // ダウンロードした JSON ファイル
  });

  // クエリ
  const sqlQuery = `
    SELECT
      xxxxx
    FROM
      \`xxxxx\`
    WHERE
      xxxx = xxxx
  `;

  const options = {
    query: sqlQuery,
    location: "US" // BigQuery の location
  };

  const [rows] = await bigQuery.query(options);

  console.log([rows]);
}

projectId はホーム画面で確認できます

以上となります。