MongoDB使用BI Connector支持BI组件直接使用SQL或ODBC数据源方式直接访问MongoDB,在早期MongoDB直接使用Postgresql FDW实现 SQL到MQL的转换,后来实现更加轻量级的mongosqld支持BI工具的连接。

安装 BI Connector

参考 Install BI Connector
https://docs.mongodb.com/bi-connector/master/installation/

wget https://info-mongodb-com.s3.amazonaws.com/mongodb-bi/v2/mongodb-bi-linux-x86_64-rhel70-v2.12.0.tgz$tar xvf mongodb-bi-linux-x86_64-rhel70-v2.12.0.tgz
mongodb-bi-linux-x86_64-rhel70-v2.12.0/LICENSE
mongodb-bi-linux-x86_64-rhel70-v2.12.0/README
mongodb-bi-linux-x86_64-rhel70-v2.12.0/THIRD-PARTY-NOTICES
mongodb-bi-linux-x86_64-rhel70-v2.12.0/example-mongosqld-config.yml
mongodb-bi-linux-x86_64-rhel70-v2.12.0/bin/mongosqld
mongodb-bi-linux-x86_64-rhel70-v2.12.0/bin/mongodrdl
mongodb-bi-linux-x86_64-rhel70-v2.12.0/bin/mongotranslate
  • mongosqld 接受 SQL 查询,并将请求发到 MongoDB Server,是 BI Connector 的核心
  • mongodrdl 工具生成数据库 schema 信息,用于服务 BI SQL 查询
  • mongotranslate 工具将 SQL 查询转换为 MongoDB Aggregation Pipeline

启动 mongosqld

参考 Lauch BI Connector
https://docs.mongodb.com/bi-connector/current/launch/

mongodb-bi-linux-x86_64-rhel70-v2.12.0/bin/mongosqld --addr 127.0.0.1:3307 --mongo-uri 127.0.0.1:9555

--addr 指定 mongosqld 监听的地址
--mongo-uri 指定连接的 MongoDB Server 地址
默认情况下,mongosqld 自动会分析目标 MongoDB Server 里数据的 Schema,并缓存在内存,我们也可以直接在启动时指定 schema 影射关系。schema 也可以直接 mongodrdl 工具来生成,指定集合,可以将集合里的字段 shema 信息导出。

$./bin/mongodrdl --uri=mongodb://127.0.0.1:9555/test -c coll01
schema:
- db: testtables:- table: coll01collection: coll01pipeline: []columns:- Name: _idMongoType: float64SqlName: _idSqlType: float- Name: qtyMongoType: float64SqlName: qtySqlType: float- Name: typeMongoType: stringSqlName: typeSqlType: varchar

使用 MySQL 客户端连接 mongosqld

mongosqld 可直接支持 MySQL 客户端访问,还可以通过 Excel、Access、Tableau等BI工具连接
https://docs.mongodb.com/bi-connector/current/client-applications/

mysql --protocol=tcp --port=3307mysql> use test
Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| coll           |
| coll01         |
| coll02         |
| inventory      |
| myCollection   |
| yourCollection |
+----------------+
6 rows in set (0.00 sec)mysql> select * from coll01;
+------+------+--------+
| _id  | qty  | type   |
+------+------+--------+
|    1 |    5 | apple  |
|    2 |   10 | orange |
|    3 |   15 | banana |
+------+------+--------+
3 rows in set (0.00 sec)// 对照 MongoDB 数据库里的原始数据mongo --port
mymongo:PRIMARY> use test
switched to db test
mymongo:PRIMARY> show tables;
coll
coll01
coll02
inventory
myCollection
yourCollection
mymongo:PRIMARY> db.coll01.find()
{ "_id" : 1, "type" : "apple", "qty" : 5 }
{ "_id" : 2, "type" : "orange", "qty" : 10 }
{ "_id" : 3, "type" : "banana", "qty" : 15 }

SQL 转 Aggregation

比如要将针对 test.coll01 的 SQL 查询转换为 MongoDB Aggregation Pipeline,需要先通过 mongodrdl 分析 schema,然后使用 mongotranslate 工具来转换

// 导出分析的 shema 文件
$./bin/mongodrdl --uri=mongodb://127.0.0.1:9555/test -c coll01 > coll01.schema  // SQL 转换为 Aggregation
$./bin/mongotranslate --query "select * from test.coll01" --schema coll01.schema
[{"$project": {"test_DOT_coll01_DOT__id": "$_id","test_DOT_coll01_DOT_qty": "$qty","test_DOT_coll01_DOT_type": "$type","_id": NumberInt("0")}},
]

双12来袭!500元淘宝红包、iPhone11等你拿。
https://www.aliyun.com/1212/2019/home?utm_content=g_1000092611

原文链接
本文为云栖社区原创内容,未经允许不得转载。

让大数据分析更简单,4步教你玩转MongoDB BI Connector相关推荐

  1. Hadoop 信息集成平台,让大数据分析更简单!

    2019独角兽企业重金招聘Python工程师标准>>> 就本身而言,Hadoop 不是很有用的东西,原因是它需要编写大量复杂和定制的程序代码,难以治理,也没有数据质量概念和数据治理可 ...

  2. 噪音太大怎么办?简单几步笔记本更安静时间

    噪音太大怎么办?简单几步笔记本更安静时间 对于一般的笔记本来说,在工作的时候,都会发出一些噪音,尤其是在高负荷的工作状态下,噪音会更加强烈,但是为什么我的笔记本在平时使用的时候噪音也很大呢?接下来我们 ...

  3. 手机改小视窗什么意思_简单几步教你如何将手机投屏到电视,1秒小屏变大屏!...

    原标题:简单几步教你如何将手机投屏到电视,1秒小屏变大屏! Hi,大家好,我是小雨!最近有人在后台咨询小雨,怎样将手机画面投屏到电视上,让手机的小屏变大屏.今天小雨就来和大家一起聊一聊这个问题,简单几 ...

  4. 怎么用ai做出适量插画_简单10步教你用AI绘制矢量极简风格的人像插画

    简单10步教你把人物照变成极简风格插画!这类效果一直很受欢迎,不过想实现非常简单,今天这篇教程一步步带你上手.每个艺术家的插画里都有来自他自身创造出的节奏和风格,而接下来的一段时间,我们将学习绘制不同 ...

  5. 简单几步教你制作植物攀爬到建筑上

    photoshop英文教程来自于:http://psd.tutsplus.com/articles/news/create-classic-ivy-running-up-a-building-psd- ...

  6. 简单几步教你怎么在路由器上搭建PHP环境的网站

    2019独角兽企业重金招聘Python工程师标准>>> 今天早上在锐哥博客看到的,他说他的博客布置在路由器上,我对于网络硬件不是很了解,但是感觉很牛逼,于是希望他能写一个教程教大家怎 ...

  7. 为什么计算机桌面图标不见了,桌面上的图标不见了怎么办(电脑桌面图标突然没了怎么办?简单三步教你解决)...

    使用电脑过程中,我们有时候会发现桌面上的图标不见了,或者我们不小心误删了,这时候我们又急着是用电脑,怎么办呢?在这里网际简单三步教你解决!以win10系统来教大家怎么找回我的桌面电脑图标如下简单3步: ...

  8. 一步一步教你玩转.NET Framework的配置文件app.config (转载)

    一步一步教你玩转.NET Framework的配置文件app.config 在一般的项目中,为了使你的代码更加灵活,更方便调整,减少不必要的hard code,我们都在config中添加许多配置信息, ...

  9. 您知道怎么运营社群吗?由创科技简单三步教你捉住社群运营的黄金24小时

    大家都知道电视节目在一天之内有个时间叫做黄金时段,是所有节目都希望能够得到的时间段,地质灾害发生后,有72小时的黄金救援时间,但是你知道社群运营也有一个黄金24小时吗? 一个群如果没有在24小时内没有 ...

最新文章

  1. javaweb学习总结(二十三)——jsp自定义标签开发入门
  2. OKR的本质是什么?目标如何制定?
  3. python去除中间空格只留一个_汇总初学Python的21个操作难点,看完别再去踩坑了...
  4. 添加用户和赋予root权限
  5. 一行命令让ElasticSearch支持中文分词搜索
  6. angular项目整合到.net mvc中
  7. java list填入table_JavaFX从ObservableList填充TableView
  8. PHP 判断点是否在多边形内
  9. 回复失恋男的来信(转)
  10. HLI测试 涉及书籍
  11. 震惊!CSDN免费送会员,手慢无!
  12. 闲置电脑挂机赚钱-Traffmonetizer,支持windows,linux,Android,MacOS多平台
  13. 6.2 不一致数据的转换
  14. 封装原生javascript连缀
  15. 20189215 2018-2019-2 《密码与安全新技术专题》第11周作业
  16. Win10系统自带功能,提高办公效率
  17. 记 PS2020 打开闪退问题
  18. delphi 企业微信消息机器人_消息通知支持企业微信、钉钉机器人,MeterSphere v1.4.0发布...
  19. 使用Qt 6.4取消Android开发的限制
  20. ue5 lyra camera

热门文章

  1. jp摩根的人都在学python么_摩根大通已要求所有资管部门员工必须学习编程
  2. 2019年GitHub上最热门的Java开源项目
  3. python调用系统_python 执行系统命令
  4. hdfs文件如何导出到服务器,[Hadoop] 如何将 HDFS 文件导出到 Windows文件系统
  5. 春考天津计算机知识点,天津春季高考计算机模拟试题
  6. 华为服务器sn号查询网站,linux 查询服务器sn
  7. yolo极大抑制_pytorch实现yolov3(4) 非极大值抑制nms
  8. 劲乐团u显示服务器维护,劲乐团9YOU原版服务端架设教程
  9. android的读取xml配置文件,android中XMl文件的读取
  10. 黑苹果uhd630黑屏_求助各位图吧大佬一个黑苹果问题(黑苹果吧发帖得四级),目前使...