DataikuとBigQueryの接続方法を解説

Dataiku (Dataiku DSS) を使ったデータ分析プロジェクトで、データウェアハウスとして Google BigQuery (BQ) を利用しているケースは非常に多いと思います。 DataikuからBigQueryのテーブルを直接読み書きできると、データ活用の幅が格段に広がります。 この記事では、DataikuとBigQueryを接続するための、最も安全で一般的な方法である「サービスアカウント」を利用した接続手順と、その仕組みについて分かりやすく解説していきます。

目次

「サービスアカウント」とは?

BigQueryに接続しようとして、最初に出てくるのが「サービスアカウント」という言葉です。

これは一言でいうと、「対人間ではなく、プログラム(アプリケーション)専用のアカウント」です。

私たちがGCP(Google Cloud)にログインするときは、メールアドレスとパスワードを使います。しかし、Dataikuのようなサーバー上で動くプログラムに、人間のパスワードを直接設定するのはセキュリティ上非常に危険です。

そこでGCPは、プログラム専用のアカウント(サービスアカウント)を発行します。

ID(誰か?): ...@....iam.gserviceaccount.com という形式の専用メールアドレスが発行されます。

認証(本人確認は?): パスワードの代わりに、「鍵(キー)」と呼ばれる特別なファイル(JSON形式)を使います。

Dataikuにこの「JSONキー」を登録することで、Dataikuは「私は許可されたプログラムです」とGCPに証明でき、BigQueryにアクセスできるようになります。

ステップ1: GCP側での準備 – サービスアカウントと鍵の作成 –

まずはGCPコンソール側で、Dataikuが使うための「アカウント」と「鍵」を準備します。

1. BigQuery APIの有効化:

接続したいGCPプロジェクトで、「BigQuery API」が有効になっていることを確認します。

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

GCPコンソールの [IAMと管理] > [サービスアカウント] で、Dataiku接続用の新しいサービスアカウントを作成します。(例: dataiku-connector)

  3. JSONキーのダウンロード

:

   作成したサービスアカウントの管理画面で [キー] タブを選択します。

   [鍵を追加] > [新しい鍵を作成] を選び、キーのタイプとして [JSON] を選択してダウンロードします。

 

 

[重要]

このJSONファイルが、Dataikuが認証に使う「鍵」そのものです。パスワードと同様に、厳重に管理してください。

 

ステップ2: 権限の設定 – 最小権限の原則 –

サービスアカウントは、作成しただけでは「ID」があるだけで、「何をして良いか」という権限(IAMロール)をまだ持っていません。

ここで重要なのが、「どのデータセットにアクセス可能か」を適切に設定することです。

セキュリティのベストプラクティスは「最小権限の原則」です。プロジェクト全体の全データにアクセスできる強力な権限を与えるのではなく、Dataikuが必要とするデータセットだけにアクセスを許可しましょう。

これは、BigQueryのデータセットレベルで設定可能です。

推奨される権限設定:

 1. プロジェクトレベルで付与する権限:

・サービスアカウントに対し、プロジェクトレベルのIAM設定で以下のロールを付与します。

・BigQueryユーザー(roles/bigquery.user)

 これは、クエリ(SQLジョブ)を実行するために必要な基本的なロールです。

 2. データセットレベルで付与する権限:

次に、GCPのBigQueryの画面に移動します。

Dataikuにアクセスさせたいデータセットの横にあるメニュー(︙)から [共有] > [権限] を選択します。

[プリンシパルを追加] で、作成したサービスアカウントのメールアドレスを追加します。

ロールとして以下を選択します。

・読み取りのみ許可する場合: BigQuery  データ閲覧者 

・書き込みも許可する場合: BigQuery  データ編集者

 

この設定により、サービスアカウントは「クエリを実行する権限」は持ちますが、「データを読み書きできる対象」は許可された特定のデータセットに限定されます。

ステップ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で接続を確認

まとめ

これでDataikuとBigQueryの接続は完了です。

DataikuのFlowからBigQueryのテーブルをデータセットとして直接読み込んだり、Dataikuで加工したデータをBigQueryに書き出したりできるようになりました。

最初の認証設定は少し難しく感じるかもしれませんが、サービスアカウントとIAMロールの仕組みを理解することで、セキュリティを担保しながら安全にデータ連携を行うことができます。
ぜひ挑戦してみてください。

CTA
  • URLをコピーしました!
  • URLをコピーしました!
この記事を書いた人
目次