【GCP基礎】サービスアカウントからBigQueryの操作を行う。
会社でGCP関連の無茶振りが来たので、自分用のメモとして書きます。
サービスアカウントの作成
サービスアカウントの作成をクリック そうすると、サービスアカウント情報を入力するペーパーが表示されます。 ここで、役割の選択を選択しないと権限がないと怒られるので、今回はBigQueryの管理者権限を設定します。 また、Googleは、最低限の役割を付与し、適宜サービスアカウントを作成することを推奨していますがゴニョゴニョしたいしサンプルなんでおk。
キーの作成
ここで、新しい秘密鍵を生成をチェックし、JSON を選択すると作成後、認証ファイルがダウンロードされます。今生成しなくても、サービスアカウントの詳細->キーの生成から認証ファイルを作成できます。
実行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配下においてください。