概要
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]);
}
以上となります。