KNIMEはローカルにあるテーブルデータだけでなく、クラウドに接続して必要に応じて抽出し加工できます。
むしろETLツールとしてのKNIMEの真骨頂は、GUIでクラウド上のデータを操作してからローカルにダウンロードできることでしょう。
今回は、Google BigqueryとKNIMEを接続してKNIME上でデータ加工・分析するため下準備を解説します。
KNIMEをインストールした初期状態ではBigqueryと接続、連携できません。
有償のアドインを購入しても実現できますが、GoogleやKNIMEの公式が提示している追加設定だけ無料で実装できます。
ここからは、1つずつステップごとに解説していきます。
Google Bigquery側の準備
- Google Cloud Platformにログインし、接続元にするプロジェクトを選択または新たに作成
- Google Cloud Platformページから、左上隅にあるメニューアイコンをクリックし、[APIとサービス]>[資格情報]を選択(図1)
- 資格情報の作成をクリックし、サービスアカウントを選択
- 「サービスアカウント名」に、選択したサービスアカウント名を入力し[作成]をクリック
- サービスアカウントの役割を選択し、[続行]をクリック
- 下にスクロールして、[キーの作成]ボタンをクリック
- ラジオボタンでP12が選ばれているようにし、[作成]をクリック
- P12ファイルが自動的にダウンロードされるので、P12ファイルをハードドライブの安全な場所に保存
- 最新のJDBCドライバをダウンロード
- ダウンロードされたJDBCドライバを解凍
KNIME側の設定
ダウンロードしたJDBCドライバを登録
- File→Preferenceの順に選択(図2)
- KNIME→Databaseを選択し、Addをクリック(図3)
- ID(例:dbID)とName(例:bigQueryJDBC)を入力(図4)
- Add Dictionaryから②で解凍したJCBCドライバを選択(図4)
- Find driver classをクリックし、Driver classとDriver versionに文字が表示されたらOK(図4)
Googleと接続するためのノードをインストール
- Googleのサービスを利用するためのノードと、BigQueryと接続するためのノードをKNIMEにインストール
- それぞれのリンク先のノードアイコンをKNIMEのワークフローにドラッグ&ドロップ
- 案内に従って、「NEXT」→「NEXT」→「FINISH」を選択するとKNIMEが再起動しインストール完了
BigqueryをKNIMEに接続
- ノード一覧からGoogle Authentication(API Key)とGoogle BigQuery connector、DB Table Selectorをワークフローに設置して接続
- Service account emailで作成したBigqueryのサービスアカウントIDで作成したメールアドレス形式のIDを入力
- ダウンロードしたP12keyファイルのパスをP12key file locationに入力
- Google BigQuery connectorの設定を開きHostnameに「bigquery.cloud.google.com」
Database nameにBigqueryで作成したデータベース名(サービスアカウントのメールアドレスの@から.(ドット)の間の文字列)を入力して実行 - DB Table SelectorでDatabase、Schema、Tableを指定してテーブルに接続できたらBigqueryを使う準備は完了です
※このノードでエラーが発生してしまう場合には、Custom Queryにチェックを入れSQL Statementに手書きで取得するテーブルとカラムを指定してください。
その際には以下のように、SELECTとFROMだけで構成されるSQL文で大丈夫です。
1 2 3 4 |
SELECT `(Schema).(Table)`.(列名) FROM `(Schema).(Table)` |
まとめ
あとはDB GroupByで加工したりDB Readerでローカルに読み込んだりKNIMEの各種ノードを使ってデータ加工・分析ができるようになります。
ちなみに、ここまでの設定でBigqueryだけでなく、Google AnalyticsやスプレッドシートなどのGoogleプロダクトとも接続できるようになっています。Bigqueryでのデータ処理が苦手な方はKNIMEで様々なデータ処理をしてみてはいかがでしょうか。