diary.sorah.jp

ページャNight, BigQuery を試す(1)

ページャNight <[1]> にいってきた。uzulla さんの LT が良かった。 あまり調子が良くなかったのであまり覚えてないのが申し訳ない感じ。

a_matsuda さんのトーク、Rails 1.x 時代を振り返っていて面白かった。さすがに 1.x は知らなくて 2.x をちょっと触った事がある程度なんだよな。まともにつかい始めたのも Rails 3.0.0.beta1 からだし…

BigQuery をためす 1

Google BigQuery、個人で扱いやすいのではないかと調べはじめた。相変わらず Google の API ってめちゃくちゃ難解で、いやドキュメントちゃんと読み込めばいいんだけど、難しい。認証周りだけが突出して難解なんだけど…

BigQuery を触るための認証情報は Service Account ってやつで、Developer Console の Create new Client ID からつくればいい。

あとは p12 ファイルをもっておいて

Google::APIClient.new(
  application_name: APP_NAME,
  application_version: VERSION,
).tap do |client|
  key = Google::APIClient::KeyUtils.load_from_pkcs12(
    '/path/to/your.p12',
    YOUR_KEY_PASSPHRASE
  )

  client.authorization = Signet::OAuth2::Client.new(
    token_credential_uri: 'https://accounts.google.com/o/oauth2/token',
    audience: 'https://accounts.google.com/o/oauth2/token',
    scope: 'https://www.googleapis.com/auth/bigquery',
    issuer: YOUR_SERVICE_EMAIL,
    signing_key: key,
  )

  client.authorization.fetch_access_token!
end

こんな感じで client を生成してつかえばいい。

aws-sdk-ruby, aws-sdk-core-ruby はパッケージに API 定義を含んで動的にどうこうしているけど、google-api-ruby-client は外から API 定義持ってくる。ただし、メソッドとかは生えなくて、APIClient#execute に API 名とかを渡す。 エラーとか例外にならなくてちょっと不便。

Backfilled at , Published at