MongoDB 探索二三事

作者: 18c3ad7caf58 | 来源:发表于2018-04-01 23:04 被阅读51次

    这篇文章涉及如下工具:
    1、mongodb
    2、datax
    3、superset
    4、redash
    5、metabase

    最近一直在探索着数据相关的事情。

    比如什么开源BI工具啊。像superset、redash和metabase啦,每个工具都有优劣,我会在后续文章继续更新。

    最近的项目呢,又用到了mongodb,那么顺其自然的呢,这些BI工具调研的时候呢,自然的数据源,就优先选择了mongodb。

    那么万事俱备,只欠东风了。我的数据哪里找呢?为了探索这些BI工具的优劣,我么的数据集一定要大,对不对。当然你可以造假数据,但是呢,我也是比较“傲娇”吧,就是不愿意自己造数据。

    那怎么办呢,我就百(gu)度(ge)了一下“开放数据平台”这样的字眼,找到了很多结果,选定了滴滴的“盖亚计划”,获取了一个月的轨迹数据+订单数据。滴滴也是够“大方”,我试着用datax导入了一下,三天的轨迹数据,竟然已经达到了9kw的数据量级。那相关探索工作,就做起来吧!

    9kw数据!

    先大概讲讲BI工具

    我只想说,superset、redash和metabase只是做了工具到数据库的连接,其他的任何性能上的优化,都没有做。
    工具做的优化,主要是让不太懂sql语句的人可以快速上手,制作数据报告。

    MongoDB查询优化

    实验环境

    - centos6
    - CPU 2Core 4G
    - 存储空间 500G
    - MongoDB 3.4.11
    

    我是用三台这样的机器,组成了一个Replica Set。

    索引初步探索

    我先做了一个简单的查询,查询的结果,大跌我的眼镜。。。


    100s的查询,吓尿了

    看来replica set也不能拯救单纯的但数据存储啊。那怎么办呢?

    上索引!!

    // 查询索引
    db.collection.getIndexes();
    // 增加索引
    db.collection.createIndex({
        "你要加索引的字段": 1/-1
    });
    // 1代表正序、-1代表倒序
    // 当然,mongodb的索引有很多种。比如单索引、组合索引、"text"、"Geospatial Index"等等。
    // 我最开始使用了"text",但是没有优化查询速度,这个我后续会继续探索原因。
    

    replica set添加索引的方法有些特殊。

    1、在备用机器上添加索引

    1.shutdown mongo

    >> use admin
    >> db.shutdownServer()
    

    2.非replica set方式启动mongo。
    3.createIndex

    2、在备用机器上添加索引

    1.mongo 退级

    >> rs.stepDown()
    

    2.shutdown mongo

    >> use admin
    >> db.shutdownServer()
    

    3.非replica set方式启动mongo。
    4.createIndex

    添加好了索引以后,给了我极大的惊喜。


    这才是大数据应该有的速度
    这才是大数据应该有的速度

    group by 呢?

    很遗憾的是,添加索引,并没有优化group by的表现。(我猜是因为 group by必须要全表查询吧)


    group by 挺慢的

    那么,下一步能做的是什么呢?

    后续更新预告

    1. replica set搭建
    2. sharding cluster搭建
    3. superset+redash+metabase
    赞赏是第一生产力

    My Press.one Signature:
    https://press.one/file/v?s=860edfdd2013c73300da7ae84f904bc23f03faf4d24821ab52443cca449d3e496918469b3f643ab944b0e15011942e9ec93aea9685dc5634c5c1f0bf372da5751&h=3ebac8793b0184ef90feb58c9eedef8fd19261ad98cddf4a72376f02e4a461e3&a=866597c04655a093a3e1f31a317c7addd0df9123&f=P1&v=2

    相关文章

      网友评论

        本文标题:MongoDB 探索二三事

        本文链接:https://www.haomeiwen.com/subject/twoacftx.html