3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

概要

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

前提

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

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

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

BigQuery API を有効化にしていきます
Screen Shot 2019-10-23 at 22.53.10.png
検索するとすぐに出てくるので選択
Screen Shot 2019-10-23 at 22.55.39.png
「有効」をクリック
Screen Shot 2019-10-23 at 22.58.07.png
「認証情報」→「認証情報を作成」→「サービス アカウント」を選択
Screen Shot 2019-10-23 at 22.49.57.png
「サービス アカウント名」を入力し、「作成」をクリック
*ID は自動で作成されます
Screen Shot 2019-10-23 at 23.03.05.png
役割は「オーナー」を選択し、「続行」をクリック
Screen Shot 2019-10-23 at 23.05.54.png
「キーを作成」→「JSON」→「作成」を選択するとダウンロードされます。その後、「完了」をクリックで終了です。
Screen Shot 2019-10-23 at 23.09.56.png

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

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 はホーム画面で確認できます
Screen Shot 2019-10-23 at 23.24.24.png

以上となります。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?