NoSQLに分類される、ドキュメント指向データベースである。従来のRDBMSのように固定されたスキーマを持つのではなく、JSONのような構造的データ(ドキュメント)の集合をコレクションとして管理する。MongoDBの開発元が直接提供するサービスであり、自前でMongoDBサーバ上にインストールすることなく、クラウドで使い始められるサービス。GCPの中から選んでクラスタをデプロイすることができる。ここで言うクラスタとは、複数台のMongoDBインスタンスのまとまりを意味している。Atlasを使えば、ユーザはUI上でレプリケーションの台数、シャーディングの台数を選ぶだけで、簡単に冗長構成のMongoDBを利用できる。大まかに以下の[三つのプラン](https://www.mongodb.com/pricing)がある。事前にリソースをプロビジョニングすることなく、使った分だけ課金される。専用のサーバを確保でき、最も高機能である。使った時間に応じて課金される。共用のサーバ上で動く。Dadicated同様に時間課金制だが無料プランもある。Tier)を選ぶことができる。M○○の記号で表されており、〇〇の数字が大きいほど高額になるが、処理速度が向上し機能も充実する。SharedではM0~M5から選択できる。ServerlessプランはまだPreview段階であり、[Tableauとの連携機能は使うことができない。Connector(後述)は[M10以上のクラスタのみで利用可能である](https://www.mongodb.com/docs/atlas/tutorial/connect-bic-tableau/#:~:text=The%20MongoDB%20Connector%20for%20Business%20Intelligence%20for%20Atlas%20(BI%20Connector)%20is%20only%20available%20for%20M10%20and%20larger%20clusters.)ため、今回はDedicatedプランの中からいずれかを選択する必要がある。$0.08/時間($57/月)である。Intelligenceの略である。Intelligenceとは、膨大な業務データを収集して分析し、その結果を可視化する仕組みのことである。そのようなツールを「BIツール」と呼ぶ。Tableauを含む伝統的なBIツールは、SQLによって表形式のDBに対して使えるようにデザインされているため、NoSQLのMongoDBで用いるためには、BIツールの発行したSQLクエリをMongoDBクエリに変換する必要がある。Connectorの利用料金は、[クラスタの利用料金に追加で請求される。](https://www.mongodb.com/docs/atlas/billing/cluster-configuration-costs/?_ga=2.220428888.1519342913.1650884548-151388828.1650884548#bic)請求額についてはコンソールから確認できる。M20クラスタでは性能低下が現れる可能性があり、これを避けるには[M30へのアップグレードが推奨されている。Tableauとは、組織のデータを最大限活用することを可能にするビジュアル分析プラットフォームである。データの探索・管理を簡単に行うことができる。〇〇と言う名前の製品は複数存在する。ローカルのPCでデータ分析、可視化を行うツール。インストールして使う。自社サーバにインストールして用いる。Desktopで作成した画面を複数人で共有しブラウザ経由で閲覧する用途に用いることが多い。Tableauのクラウドサービス。ServerのSaaS版。自社でサーバ管理する必要がない。PCにインストールして無料で利用できる。DesktopをローカルPCにダウンロードし、MongoDBとの連携を進める。[こちら](https://www.mongodb.com/docs/atlas/tutorial/create-atlas-account/)を参考に、Atlasアカウントを作成します。いずれかで登録を行います。登録完了後に、組織(Organization)とプロジェクト(Project)を作成しましょう。[こちら](https://www.mongodb.com/docs/atlas/security/add-ip-address-to-list/)を参考にして、Atlasにアクセス可能なIPアドレスを設定します。DBにアクセスするためのユーザを作成します。今回は認証方式をパスワード方式とします。ここで設定したパスワードは後ほど用いるため忘れないようにしましょう。database」にしました。Tableauと連携したいDBにはreadとwriteの権限を持たせましょう。Cluster」ボタンを押します。クラスタ名はあとで変更できないので、慎重に決めましょう。請求情報を入力すると、Clusterの作成が始まります。(Clusterの作成には数分かかることがあります。Configurationを開きます。Configurationを開きます。Connectorを有効にします。Intervalの値を忘れずに設定する必要があります。これは、MongoDBがデータを自動でサンプリングしてスキーマ情報を作成する頻度の設定であり、0以外の値を設定する必要があります。([参考](https://www.mongodb.com/docs/bi-connector/current/reference/mongosqld/#std-option-mongosqld.--schemaRefreshIntervalSecs))今回は600秒(10分)としています。Desktop側で入力することで、データを連携することが可能になります。ここで使っているデスクトップPCのOSごとに異なるドライバのインストールを求められるので、指示に従ってインストールする。Connector」を選んだ時に接続用の画面が表示されるようになる。コネクターを選択すると、接続用の画面が表示されます。Atlasで得たHostNameをサーバ欄に、Portをポート欄に、接続したいデータベース名をデータベース欄に、Userをユーザ名の欄に入力し、入力したユーザのパスワードをパスワード欄に入力します。入力した状態に間違いがなければ、以下のような画面に遷移します。これで連携が完了です。Intervalの設定が間違っている、または設定したばかりのためインターバルの時間が経過していない可能性があります。Desktopとの連携方法のドキュメント](https://www.mongodb.com/docs/bi-connector/current/connect/tableau-auth/#std-label-connect-tableau-auth)もヒットする。この手順でダウンロードすることになる[MongoDB公式レポジトリのODBCドライバ](https://github.com/mongodb/mongo-bi-connector-odbc-driver/releases/)の最新版は、最新のMacOS上では動作しない。Atlasのチャットサポートから問い合わせて確認済み。[Tableauの公式ドキュメント](https://help.tableau.com/current/pro/desktop/ja-jp/examples_mongodb.htm)ではMongoDB公式と違った方法が提案されており、こちらを試すと結果的にうまくいった。Intervalの値を設定するところが一番のハマりポイント。連携方法の公式ドキュメントやさまざまなブログ等を見ても、この項目が重要であることが書かれていない。エラー内容が[上記エラー例](https://hackmd.io/0SFeSMtITKq7fqHhu9b5aA?both#%E3%82%A8%E3%83%A9%E3%83%BC%E4%BE%8B)の通り、権限がないというニュアンスで出てくるためタチが悪い。successfully。