Node.js client library for Google BigQuery

先日Google Cloud Functionsを試したところ、まだNode.jsしか対応していないことがわかりました。

やりたいこととして、Google Cloud FunctionsからGoogle BigQueryにためているGCP Billingデータを取得したいというものがあるので、今回はNode.jsでGoogle BigQueryのAPIを叩くところまでやってみます。

GoogleがBigQuery用のクライアントライブラリをNode.jsでも提供しているので、それを使います。

準備

ドキュメントをみながら進めます。

まずgcloudコマンドを使ってGCPにログインしておきます。

gcloud beta auth application-default login  

次にnpmコマンドでGoogle BigQueryのクライアントライブラリをインストールします。

npm install --save @google-cloud/bigquery  

クエリを実行するコードを書く

クエリを実行するには、クライアントライブラリのqueryメソッドを使えば良さそう。

Node.jsについてはよくわかってませんがサンプルを見ながらとりあえずやってみます。

  • queryを実行し、結果をコンソールに出力するコード
  • プロジェクトID適当なクエリだけ書き換えれば動くはず
// Imports the Google Cloud client library
const BigQuery = require('@google-cloud/bigquery');

// Your Google Cloud Platform project ID
const projectId = 'プロジェクトID';

// Instantiates a client
const bigquery = BigQuery({  
  projectId: projectId
});

// Query
var query = '適当なクエリ'

// Run query
bigquery.query(query, function(err, rows) {  
  if (!err) {
    console.log(err);
  }

  console.log(rows);
});

実行してみる

やってみます。

$ node bq-nodejs.js
null  
[ { referer: '"http://hatebu-checker.net/url/?c=https%3A%2F%2Fblog.lorentzca.me%2F"' },
  { referer: '"https://blog.lorentzca.me/impact-of-cloudflares-incident-on-digitalocean/"' },
  { referer: '"-"' },
  { referer: '"http://blog.lorentzca.me/"' },
  { referer: '"-"' },
  { referer: '"-"' },
  { referer: '"-"' },
  { referer: '"-"' },
  { referer: '"-"' },
  { referer: '"-"' } ]

できた。 ✨

感想

Node.jsよく知らないのですごい単純な例で試してみたところうまくいったので安らかな気持ちで次のステップに進めそう。

参考リンク