KNIMEでBigqueryと連携する方法

KNIMEはローカルにあるテーブルデータだけでなく、クラウドに接続して必要に応じて抽出し加工できます。
むしろETLツールとしてのKNIMEの真骨頂は、GUIでクラウド上のデータを操作してからローカルにダウンロードできることでしょう。

今回は、Google BigqueryとKNIMEを接続してKNIME上でデータ加工・分析するため下準備を解説します。

KNIMEをインストールした初期状態ではBigqueryと接続、連携できません。
有償のアドインを購入しても実現できますが、GoogleやKNIMEの公式が提示している追加設定だけ無料で実装できます。

ここからは、1つずつステップごとに解説していきます。

Google Bigquery側の準備

  1. Google Cloud Platformにログインし、接続元にするプロジェクトを選択または新たに作成
  2. Google Cloud Platformページから、左上隅にあるメニューアイコンをクリックし、[APIとサービス]>[資格情報]を選択(図1)
  3. 資格情報の作成をクリックし、サービスアカウントを選択
  4. 「サービスアカウント名」に、選択したサービスアカウント名を入力し[作成]をクリック
  5. サービスアカウントの役割を選択し、[続行]をクリック
  6. 下にスクロールして、[キーの作成]ボタンをクリック
  7. ラジオボタンでP12が選ばれているようにし、[作成]をクリック
  8. P12ファイルが自動的にダウンロードされるので、P12ファイルをハードドライブの安全な場所に保存
  9. 最新のJDBCドライバをダウンロード
  10. ダウンロードされたJDBCドライバを解凍
図1(KNIMEブログから引用)

KNIME側の設定

ダウンロードしたJDBCドライバを登録

  1. File→Preferenceの順に選択(図2)
  2. KNIME→Databaseを選択し、Addをクリック(図3)
  3. ID(例:dbID)とName(例:bigQueryJDBC)を入力(図4)
  4. Add Dictionaryから②で解凍したJCBCドライバを選択(図4)
  5. Find driver classをクリックし、Driver classとDriver versionに文字が表示されたらOK(図4)
図2
図3
図4
図5


Googleと接続するためのノードをインストール

  1. Googleのサービスを利用するためのノードと、BigQueryと接続するためのノードをKNIMEにインストール
  2. それぞれのリンク先のノードアイコンをKNIMEのワークフローにドラッグ&ドロップ
  3. 案内に従って、「NEXT」→「NEXT」→「FINISH」を選択するとKNIMEが再起動しインストール完了

BigqueryをKNIMEに接続

  1. ノード一覧からGoogle Authentication(API Key)とGoogle BigQuery connector、DB Table Selectorをワークフローに設置して接続
  2. Service account emailで作成したBigqueryのサービスアカウントIDで作成したメールアドレス形式のIDを入力
  3. ダウンロードしたP12keyファイルのパスをP12key file locationに入力
  4. Google BigQuery connectorの設定を開きHostnameに「bigquery.cloud.google.com」
    Database nameにBigqueryで作成したデータベース名(サービスアカウントのメールアドレスの@から.(ドット)の間の文字列)を入力して実行
  5. DB Table SelectorでDatabase、Schema、Tableを指定してテーブルに接続できたらBigqueryを使う準備は完了です
    ※このノードでエラーが発生してしまう場合には、Custom Queryにチェックを入れSQL Statementに手書きで取得するテーブルとカラムを指定してください。
    その際には以下のように、SELECTとFROMだけで構成されるSQL文で大丈夫です。

まとめ


あとはDB GroupByで加工したりDB Readerでローカルに読み込んだりKNIMEの各種ノードを使ってデータ加工・分析ができるようになります。

ちなみに、ここまでの設定でBigqueryだけでなく、Google AnalyticsやスプレッドシートなどのGoogleプロダクトとも接続できるようになっています。Bigqueryでのデータ処理が苦手な方はKNIMEで様々なデータ処理をしてみてはいかがでしょうか。

コメントを残す