【GCP基礎】サービスアカウントからBigQueryの操作を行う。

会社でGCP関連の無茶振りが来たので、自分用のメモとして書きます。

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

サービスアカウントの作成をクリック f:id:kokiKono:20180911231208p:plain そうすると、サービスアカウント情報を入力するペーパーが表示されます。 ここで、役割の選択を選択しないと権限がないと怒られるので、今回はBigQueryの管理者権限を設定します。 また、Googleは、最低限の役割を付与し、適宜サービスアカウントを作成することを推奨していますがゴニョゴニョしたいしサンプルなんでおk。f:id:kokiKono:20180911231942p:plain

キーの作成

ここで、新しい秘密鍵を生成をチェックし、JSON を選択すると作成後、認証ファイルがダウンロードされます。今生成しなくても、サービスアカウントの詳細->キーの生成から認証ファイルを作成できます。 f:id:kokiKono:20180912000406p:plain

実行PGの作成

必要なクライアントライブラリは一つだけです。これ一つで認証系のライブラリも入ってくれるので、便利といえば便利ですが、個人的には別にしてくれてもいいかなって気はしますが。

これが、実行ファイルですが、ダウンロードしたファイル名は

credential.json
に変更しています。 ここでは、データセットの作成とその一覧を表示しています。 データセットは、
dataset_yyyy_MM_dd_hh_mm_ss
で動的にデータセット名を変更しています。 21行目〜24行目がサービスアカウントの認証ですが、認証ファイルを読み込んで*1、ServiceAccountCredentialsクラスの生成で指定するだけです。

実行結果は以下のようになります。

ata set id: {datasetId=dataset_2018_09_11_10_51_52, projectId=gbq-lab} 
show data set
dataset_2018_09_11_10_50_19
dataset_2018_09_11_10_50_40
dataset_2018_09_11_10_51_52

意外と簡単。

*1:認証ファイルはClassLoaderを使っているので、src/main/resources配下においてください。