MongoDBとTableauのデータ連携方法 #MongoDB #Tableau
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
MongoDBとTableauのデータ連携方法について解説します。
目次
・今回の目的
・MongoDB Connector for BI (BI Connector)とは
・MongoDB BI Connectorの設定
・Tableauとの連携に必要な情報を取得
・Tableau Desktopの初期設定
・Tableau Desktopとの連携方法
・まとめと考察
今回の目的
今回は、MongoDBからTableauへのデータ連携を行います。MongoDBに保存したデータを、Tableauと連携する方法について調査します。Tableauは、BIツールの中で特に高い世界シェアを持っています。またMongoDBはドキュメントDBの中でトップシェアを持つDBであり、DB全体で見ても5位にランクインしています。これらの需要の高いツール同士を組み合わせ、データ連携する方法について考察します。
MongoDB Connector for BI
Tableauを含む伝統的なBIツールは、SQLによって表形式のDBに対して使えるようにデザインされているため、NoSQLのMongoDBで用いるためには、BIツールの発行したSQLクエリをMongoDBクエリに変換する必要があリます。これをMongoDB Connector for BIが担います。
BI Connectorの利用料金は、クラスタの利用料金に追加で請求される。請求額についてはコンソールから確認できます。
MongoDB Connector for BI (BI Connector)
https://www.mongodb.com/ja-jp/products/bi-connector
Atlas上のクラスタでBI Connectorを使用する場合、M10, M20クラスタでは性能低下が現れる可能性があり、これを避けるにはM30へのアップグレードが推奨されています。
Tableau
Tableau 〇〇と言う名前の製品は複数存在します。
- Tableau Desktop
ローカルのPCでデータ分析、可視化を行うツールです。インストールして使います。
- Tableau Server
自社サーバにインストールして用います。画面を編集することは可能だが、Tableau Desktopと比べて機能が制限されているため、Tableau Desktopで作成した画面を複数人で共有しブラウザ経由で閲覧する用途に用いることが多いです。
- Tableau Online
Tableauのクラウドサービスです。Tableau ServerのSaaS版。自社でサーバ管理する必要がありません。
- Tableau Reader
閲覧のみです。PCにインストールして無料で利用できます。
今回はTableau DesktopをローカルPCにダウンロードし、MongoDBとの連携を進めます。
MongoDB Atlasの初期設定(参考)
Atlasアカウントの作成
こちらを参考に、Atlasアカウントを作成します。
- Google アカウントを用いた登録
- メールアドレスを用いた登録
のいずれかで登録を行います。登録完了後に、組織(Organization)とプロジェクト(Project)を作成しましょう。(参考1, 参考2)
ネットワークの設定
こちらを参考にして、Atlasにアクセス可能なIPアドレスを設定します。
DBユーザの作成(参考)
DBにアクセスするためのユーザを作成します。
今回は認証方式をパスワード方式とします。
ここで設定したパスワードは後ほど用いるため忘れないようにしましょう。
また、今回ユーザの権限は「Read and write to any database」にしました。Tableauと連携したいDBにはreadとwriteの権限を持たせましょう。
Clusterの立て方
以上の設定が終わると、右下の「Create Cluster」ボタンを押します。
クラスタ名はあとで変更できないので、慎重に決めましょう。
請求情報を入力すると、Clusterの作成が始まります。(Clusterの作成には数分かかることがあります。)
MongoDB BI Connctorの設定
ダッシュボードから、以下のようにクラスタ名の横のメニューから、Edit Configurationを開きます。
Configurationの中から、Additional Configurationを開きます。
Additional Configuration内の、Enable Business Intelligence Connectorを有効にします。この際に、Sample Reflesh Intervalの値を忘れずに設定する必要があります。これは、MongoDBがデータを自動でサンプリングしてスキーマ情報を作成する頻度の設定であり、0以外の値を設定する必要があります。(参考)今回は600秒(10分)としています。
Tableauとの連携に必要な情報を取得
ここに表示されている情報をTableau Desktop側で入力することで、データを連携することが可能になります。
Tableau Desktop の初期設定
ここからTableau Desktopをダウンロードし、インストールします。
Tableau Desktopの画面上で「接続」の中から「MongoDB BI Connector」を選びます
ここで使っているデスクトップPCのOSごとに異なるドライバのインストールを求められるので、指示に従ってインストールします。
ドライバをインストールすると、再度「接続」の中から「MongoDB BI Connector」を選んだ時に接続用の画面が表示されるようになります。
Tableau Desktop との連携方法 (参考)
接続方法の中からMongoDB BI コネクターを選択すると、接続用の画面が表示されます。ここに先ほどMongoDB Atlasで得たHostNameをサーバ欄に、Portをポート欄に、接続したいデータベース名をデータベース欄に、Userをユーザ名の欄に入力し、入力したユーザのパスワードをパスワード欄に入力します。
入力した状態に間違いがなければ、以下のような画面に遷移します。これで連携が完了です。
エラー例
以下のようなエラーが出た場合、Atlas上でMongoDB BI ConnectorのSample Reflesh Intervalの設定が間違っている、または設定したばかりのためインターバルの時間が経過していない可能性があります。
まとめ・考察・その他
-
Tableau Desktop との連携方法で検索すると、MongoDB公式のTableau Desktopとの連携方法のドキュメントもヒットします。しかしながら、この手順でダウンロードすることになるMongoDB公式レポジトリのODBCドライバの最新版は、最新のMacOS上では動作しません。
-
Tableauの公式ドキュメントではMongoDB公式と違った方法が提案されており、こちらを試すと結果的にうまくいきます。
-
BIコネクタの設定の際に設定した、Sample Reflesh Intervalの値を設定するところが一番のハマりポイントです。連携方法の公式ドキュメントやさまざまなブログ等を見ても、この項目が重要であることが書かれていません。しかも、エラー内容が上記エラー例の通り、権限がないというニュアンスで出てくるため注意が必要です。