MongoDB 探索二三事

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

最近一直在探索著數(shù)據(jù)相關(guān)的事情。

比如什么開源BI工具啊。像superset、redash和metabase啦,每個(gè)工具都有優(yōu)劣,我會(huì)在后續(xù)文章繼續(xù)更新。

最近的項(xiàng)目呢,又用到了mongodb,那么順其自然的呢,這些BI工具調(diào)研的時(shí)候呢,自然的數(shù)據(jù)源,就優(yōu)先選擇了mongodb。

那么萬事俱備,只欠東風(fēng)了。我的數(shù)據(jù)哪里找呢?為了探索這些BI工具的優(yōu)劣,我么的數(shù)據(jù)集一定要大,對(duì)不對(duì)。當(dāng)然你可以造假數(shù)據(jù),但是呢,我也是比較“傲嬌”吧,就是不愿意自己造數(shù)據(jù)。

那怎么辦呢,我就百(gu)度(ge)了一下“開放數(shù)據(jù)平臺(tái)”這樣的字眼,找到了很多結(jié)果,選定了滴滴的“蓋亞計(jì)劃”,獲取了一個(gè)月的軌跡數(shù)據(jù)+訂單數(shù)據(jù)。滴滴也是夠“大方”,我試著用datax導(dǎo)入了一下,三天的軌跡數(shù)據(jù),竟然已經(jīng)達(dá)到了9kw的數(shù)據(jù)量級(jí)。那相關(guān)探索工作,就做起來吧!

9kw數(shù)據(jù)!

先大概講講BI工具

我只想說,superset、redash和metabase只是做了工具到數(shù)據(jù)庫的連接,其他的任何性能上的優(yōu)化,都沒有做。
工具做的優(yōu)化,主要是讓不太懂sql語句的人可以快速上手,制作數(shù)據(jù)報(bào)告。

MongoDB查詢優(yōu)化

實(shí)驗(yàn)環(huán)境

- centos6
- CPU 2Core 4G
- 存儲(chǔ)空間 500G
- MongoDB 3.4.11

我是用三臺(tái)這樣的機(jī)器,組成了一個(gè)Replica Set。

索引初步探索

我先做了一個(gè)簡(jiǎn)單的查詢,查詢的結(jié)果,大跌我的眼鏡。。。


100s的查詢,嚇尿了

看來replica set也不能拯救單純的但數(shù)據(jù)存儲(chǔ)啊。那怎么辦呢?

上索引?。?/strong>

// 查詢索引
db.collection.getIndexes();
// 增加索引
db.collection.createIndex({
    "你要加索引的字段": 1/-1
});
// 1代表正序、-1代表倒序
// 當(dāng)然,mongodb的索引有很多種。比如單索引、組合索引、"text"、"Geospatial Index"等等。
// 我最開始使用了"text",但是沒有優(yōu)化查詢速度,這個(gè)我后續(xù)會(huì)繼續(xù)探索原因。

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

1、在備用機(jī)器上添加索引

1.shutdown mongo

>> use admin
>> db.shutdownServer()

2.非replica set方式啟動(dòng)mongo。
3.createIndex

2、在備用機(jī)器上添加索引

1.mongo 退級(jí)

>> rs.stepDown()

2.shutdown mongo

>> use admin
>> db.shutdownServer()

3.非replica set方式啟動(dòng)mongo。
4.createIndex

添加好了索引以后,給了我極大的驚喜。


這才是大數(shù)據(jù)應(yīng)該有的速度

這才是大數(shù)據(jù)應(yīng)該有的速度

group by 呢?

很遺憾的是,添加索引,并沒有優(yōu)化group by的表現(xiàn)。(我猜是因?yàn)?group by必須要全表查詢吧)


group by 挺慢的

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

后續(xù)更新預(yù)告

  1. replica set搭建
  2. sharding cluster搭建
  3. superset+redash+metabase
贊賞是第一生產(chǎn)力

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容