数据分析里面通常采用表格结构来存储数据,如果采用数据库存储了非结构化数据(例如MongoDB),但是我们又想采用SQL语言,并按照SQL的一套方法来做数据分析(比如用Tableau或者BI),此时就需要借助MongoDB Connector for BI的帮助。
这篇文章主要讲解Tableau连接MongoDB的方法,内容包含:
1 连接的逻辑由于MongoDB是非关系型数据库,所以连接逻辑是这样的:
2 Windows下安装MongoDB BI ConnectorMongoDB将数据传输给MongoDB BI ConnectorMongoDB BI Connector将数据转成关系型数据(表格)Tableau连接到MongoDB BI Connector,获取表格
根据官方文档安装即可,我这里较官方教程做点补充。
2.1 下载和安装这里放上下载链接,直接从官网下载安装就行了。
2.2 生成schema安装完成后会发现,总共有2个可执行文件:
其中mongodrdl.exe负责生成schema文件,mongodrdl.exe负责和MongoDB数据库连接。
那为什么要生成schema文件呢?因为Connector也不知道应该怎么把非关系型数据转换成关系型数据,所以就先读取一下MongoDB里面都有哪些字段,然后利用这些字段生成表格。但是又不能每次都把数据读取一遍吧,所以就读取一次,然后记录成为schema文件。改文件的详细解释可以看官网。
对于我们而言,只需要在cmd命令行里面输入命令就行:
mongodrdl --host [xxx.com] -d [database_name] -c [collection_name] -u [user_name] -p [password] /authenticationMechanism:SCRAM-SHA-256 /authenticationDatabase:admin -o [xxxx.drdl]
其中,方括号里的内容根据自己情况填写:
–host:MongoDB的地址-d:要连接的数据库名称-c:要连接的数据库collection名称-u:用户名,如果没有用户名密码就不写-p:密码,如果没有用户名密码就不写/authenticationMechanism:加密方式(没用用户名密码就不写这个),对于MongoDB4.+应该使用SCRAM-SHA-256/authenticationDatabase:登录的用户名密码存在MongoDB的那个数据库,一般是admin。如果没有用户名密码就不写这个-o:输出schema文件的名称,通过冠以后缀.drdl 2.3 连接MongoDB数据库
之后就是让MongoDB BI Connector连接到MongoDB数据库,在cmd命令行输入命令即可:
mongosqld --schema [xxxx.drdl] --mongo-uri [xxx.com] --auth -u [user_name] -p [password] -mongo-authenticationMechanism:SCRAM-SHA-256
其中,方括号里的内容根据自己情况填写:
–schema :上一步生成的schema文件地址–mongo-uri:要连接的MobgoDB地址–auth:表面需要用户验证,如果没有用户名密码就不写-u:用户名,如果没有用户名密码就不写-p:密码,如果没有用户名密码就不写/authenticationMechanism:加密方式(没用用户名密码就不填),对于MongoDB4.+应该使用SCRAM-SHA-256 3 Tableau连接MongoDB BI Connector
我们借助ODBC驱动MongoDB BI Connector ODBC Driver连接,这里推荐按照官网安装。安装完成后打开ODBC数据源:
首先选择【系统DSN】,然后点击右边的【添加】:
箭头中的两个都可以,其差异可以去官网看:
这里填写Data Source Name(自己起个名字),TCP/IP Server &Port (MongoDB BI Connector服务器地址),如果有数据库需要登录的话,那几把下面的User和Password填上。
最后打开Tableau,选择MongoDB BI Connector
按照下图点击即可:
document for MongoDB Connector for BI
Stackoverflow - unable to authenticate using mechanism “SCRAM-SHA-256”
Connect from Tableau Desktop



