
BigQueryに溜まっているデータを直接MotionBoardで参照したい場合どのように設定したらよいのか…。外部接続設定のパラメータの指定方法やドライバーの作成方法など少し特殊な設定が必要です。この記事ではオンプレミス版、クラウド版を問わずMotionBoardからBigQueryへの接続方法をご説明します。
前提:BigQueryにテーブルを持っている

今回はBigQuery側に下記テーブルを保持していることを前提とします。
データセット名:SAMPLE
テーブル名 :SAMPLE
BigQueryにサービスアカウントを作成し必要情報を確認する
BigQueryに接続する際はサービスアカウントによる接続とユーザーアカウントを使用した接続の2通りあります。今回は発行されたキーファイルを使用して簡易的に接続できるサービスアカウントによる接続でご説明します。
BigQuery APIが有効になっているか確認する
BigQueryに接続する際はAPIで接続するため、まずBigQuery APIが有効になっているか確認します。


まずGoogle Cloud Platformに管理者でログインします。
①ログイン後、画面左上のメニューを選択します。
②メニューから「APIとサービス」を選択します。
③「ライブラリ」を選択します。
④「ビッグデータ」を選択します。
⑤「BigQuery API」を選択します。
⑥「APIが有効です」と記載されていることを確認します。
※有効ではない場合は有効にします。
サービスアカウントを作成し「メールアドレス」を控えておく
続いてサービスアカウントを作成します。サービスアカウントはMotionBoardからBigQueryに接続する際の接続アカウントになります。


①画面左上のメニューを選択します。
②「APIとサービス」を選択します。
③「認証情報」を選択します。
④「認証情報を作成」を選択します。
⑤「サービスアカウント」を選択します。
⑥「サービスアカウント名」を入力します。
今回は techblog とします。
※ここで自動生成されるメールアドレスをコピーして控えておきます。
⑦「完了」を選択します。
秘密鍵のファイル(P12ファイル)を作成する
外部接続の設定時に使用する秘密鍵のファイル(P12ファイル)をあらかじめダウンロードしておきます。



①サービスアカウントを作成した後に表示される画面から
正しくサービスアカウントが作成されたことを確認し、鉛筆マークから編集に入ります。
ここで一意のIDを控えておきます。
②「キー」タブを選択します。
③「鍵を追加」を選択します。
④「新しい鍵を作成」を選択します。
⑤キーのタイプに「P12」を選択します。
⑥「作成」を選択します。
ここでダウンロードされたP12ファイルをデスクトップなど、分かりやすいところに置いておきます。

⑦「秘密鍵がパソコンに保存されました」と表示されたら秘密鍵のパスワードをコピーアイコンからコピーして控えておきます。
プロジェクトIDを確認する
Google Cloud上の「プロジェクト」とは「データセット」の上位の管理対象です。
プロジェクト>データセット>テーブル の順番で管理されます。
今回は上位層となるプロジェクトIDを確認します。

①画面左上のメニューを選択します。
②「IAMと管理」を選択します。
③「設定」を選択します。
④「プロジェクトID」を確認します。
ここでプロジェクトIDを控えておきます。
サービスアカウントにBigQueryジョブユーザーのロールを割り当てる
作成したサービスアカウントに「BigQueryジョブユーザー」というロールを割り当てます。ジョブとはデータの読み込み、データのエクスポート、データのクエリ、データのコピーなど、BigQuery がユーザーに代わって実行するアクションのことです。


①画面左上のメニューを選択します。
②「IAMと管理」を選択します。
③「IAM」を選択します。
④「アクセス権を付与」を選択します。
⑤「新しいプリンシパル」に作成したサービスアカウントのメールアドレスを入力します。
⑥「ロール」に BigQueryジョブユーザー を選択します。
⑦「保存」を選択します。
保存を選択した後に「ロール」BigQueryジョブユーザー が付与されていることが確認できたら完了です。
参照するデータセットに対してBigQueryデータオーナーのロールを割り当てる
プロジェクト単位の権限として「BigQueryジョブユーザー」、
データセット単位の権限として「BigQueryデータオーナー」があります。
今回はデータセット単位の権限として「BigQueryデータオーナー」の権限を付与します。



①画面左上のメニューを選択します。
②「BigQuery」を選択します。
③「BigQuery Studio」 を選択します。
④データセットアイコンの「SAMPLE」を選択します。
ここでデータセット名を控えておきます。
⑤「共有」を選択します。
⑥「権限」を選択します。
⑦「プリンシパルを追加」を選択します。
⑧「新しいプリンシパル」にサービスアカウントのメールアドレスを入力します。
⑨「ロール」に BigQuery データオーナー を選択します。
⑩「保存」を選択します。
⑪BigQuery データオーナーにサービスアカウントが追加されたことを確認したら
「閉じる」を選択します。

接続に必要な情報が揃ったらインポートの手順に進みます。
BigQueryのデータをMotionBoardから参照する
外部接続の設定でBigQueryを追加する

①外部接続の画面から「新規作成」を選択します。
②外部接続名を任意で入力します。
※今回は「BigQuery」とします。
③接続先タイプに「GoogleBigQuery」を選択します。
④「新規作成」を選択します。

つぎに基本情報を入力していきます。
赤文字が事前に整理した情報です。
①「ドライバタイプ」にGoogleBigQuery ServiceAccount(JDBC)を選択します。
②「データセットID」にデータセット名を入力します。
※今回はSAMPLEとします
③「プロジェクトID」にプロジェクトIDを入力します。
④「クライアントID」に一意のIDを入力します。
⑤「サービスアカウントのEメールアドレス」にサービスアカウントを作成した際に取得したメールアドレスを入力します。
⑥「サービスアカウントキー」に事前にダウンロードしたP12ファイルを指定します。
⑦「サービスアカウントキーのパスワード」に事前に取得したパスワードを入力します。
⑧「接続確認」をクリックし成功したら完了です。
ドライバーZIPファイルを取得する

CDataアダプターをダウンロードする


まず下記のURLよりMotionBoardのCDataアダプターダウンロードサイトにアクセスします。
①ご利用のMotionBoardのバージョンに合わせて「CDataアダプターの配布」を選択します。
※今回はMotionBoard Ver.6.4 CDataアダプターの配布を選択します。
②Google BigQueryのダウンロードボタンをクリックします。
③ダウンロードした「BigqueryAdapter.zip」を解凍します。
④解凍したフォルダー内の「jdbc_bigquery_0.zip」を
MotionBoardのインストールディレクトリ>system>resources>communicater>drivers>extra にコピーします。
最後にサービスを再起動したら完了です。

BigQueryのデータをMotionBoardから参照することができました。
MotionBoard Cloudなら外部接続設定のみですぐに繋がり、オンプレミス版であれば「ドライバーZIPファイル(CDataアダプター)」を取得し外部接続設定をするだけで繋がりました。BigQueryのデータを参照したい場合は是非繋いでみてください!!