DataikuとBigQueryの接続方法を解説
Dataiku (Dataiku DSS) を使ったデータ分析プロジェクトで、データウェアハウスとして Google BigQuery (BQ) を利用しているケースは非常に多いと思います。
DataikuからBigQueryのテーブルを直接読み書きできると、データ活用の幅が格段に広がります。
この記事では、DataikuとBigQueryを接続するための、最も安全で一般的な方法である「サービスアカウント」を利用した接続手順と、その仕組みについて分かりやすく解説していきます。
目次
1 「サービスアカウント」とは?
BigQueryに接続しようとして、最初に出てくるのが「サービスアカウント」という言葉です。
これは一言でいうと、「対人間ではなく、プログラム(アプリケーション)専用のアカウント」です。
私たちがGCP(Google Cloud)にログインするときは、メールアドレスとパスワードを使います。しかし、Dataikuのようなサーバー上で動くプログラムに、人間のパスワードを直接設定するのはセキュリティ上非常に危険です。
そこでGCPは、プログラム専用のアカウント(サービスアカウント)を発行します。
・ID(誰か?): ...@....iam.gserviceaccount.com という形式の専用メールアドレスが発行されます。
・認証(本人確認は?): パスワードの代わりに、「鍵(キー)」と呼ばれる特別なファイル(JSON形式)を使います。
Dataikuにこの「JSONキー」を登録することで、Dataikuは「私は許可されたプログラムです」とGCPに証明でき、BigQueryにアクセスできるようになります。
2 ステップ1: GCP側での準備 - サービスアカウントと鍵の作成 -
まずはGCPコンソール側で、Dataikuが使うための「アカウント」と「鍵」を準備します。
1. BigQuery APIの有効化:
接続したいGCPプロジェクトで、「BigQuery API」が有効になっていることを確認します。
2. サービスアカウントの作成:
GCPコンソールの [IAMと管理] > [サービスアカウント] で、Dataiku接続用の新しいサービスアカウントを作成します。(例: dataiku-connector)
3. JSONキーのダウンロード
:
作成したサービスアカウントの管理画面で [キー] タブを選択します。
[鍵を追加] > [新しい鍵を作成] を選び、キーのタイプとして [JSON] を選択してダウンロードします。
[重要]
このJSONファイルが、Dataikuが認証に使う「鍵」そのものです。パスワードと同様に、厳重に管理してください。
3 ステップ2: 権限の設定 - 最小権限の原則 -
サービスアカウントは、作成しただけでは「ID」があるだけで、「何をして良いか」という権限(IAMロール)をまだ持っていません。
ここで重要なのが、「どのデータセットにアクセス可能か」を適切に設定することです。
セキュリティのベストプラクティスは「最小権限の原則」です。プロジェクト全体の全データにアクセスできる強力な権限を与えるのではなく、Dataikuが必要とするデータセットだけにアクセスを許可しましょう。
これは、BigQueryのデータセットレベルで設定可能です。
推奨される権限設定:
1. プロジェクトレベルで付与する権限:
・サービスアカウントに対し、プロジェクトレベルのIAM設定で以下のロールを付与します。
・BigQueryユーザー(roles/bigquery.user)
これは、クエリ(SQLジョブ)を実行するために必要な基本的なロールです。
2. データセットレベルで付与する権限:
次に、GCPのBigQueryの画面に移動します。
Dataikuにアクセスさせたいデータセットの横にあるメニュー(︙)から [共有] > [権限] を選択します。
[プリンシパルを追加] で、作成したサービスアカウントのメールアドレスを追加します。
ロールとして以下を選択します。
・読み取りのみ許可する場合: BigQuery データ閲覧者
・書き込みも許可する場合: BigQuery データ編集者
この設定により、サービスアカウントは「クエリを実行する権限」は持ちますが、「データを読み書きできる対象」は許可された特定のデータセットに限定されます。
4 ステップ3: Dataiku側での接続設定
GCP側で「鍵」と「権限」の準備ができたら、いよいよDataikuの画面で接続を設定します。
1. Dataikuの画面右上にある [管理 (Administration)] (歯車アイコン) をクリックします。
2. [接続 (Connections)] タブを選択します。
3. [+ 新しい接続 (+ NEW CONNECTION)] をクリックし、一覧から [Google BigQuery] を選択します。
4. [認証 (Authentication)] セクションで以下のように設定します。
・Type:
Service Accountを選択します。
・Service Account credentials (JSON): ステップ1でダウンロードしたJSONキーファイルの内容をすべてコピーし、このテキストボックスに貼り付けます。
5. [プロジェクトID (Default Project ID)] を入力します。
GCPコンソール (https://console.cloud.google.com/) にログインしたときのプロジェクト IDを正確に入力
6. [作成 (Create)] をクリックして接続を保存します。

・Dataikuで接続を確認

5 まとめ
これでDataikuとBigQueryの接続は完了です。
DataikuのFlowからBigQueryのテーブルをデータセットとして直接読み込んだり、Dataikuで加工したデータをBigQueryに書き出したりできるようになりました。
最初の認証設定は少し難しく感じるかもしれませんが、サービスアカウントとIAMロールの仕組みを理解することで、セキュリティを担保しながら安全にデータ連携を行うことができます。
ぜひ挑戦してみてください。






