关于千万级数据的OLAP场景

原文链接: https://my.oschina.net/yehun/blog/3095657

前段时间接手一个比较棘手的项目.

6千万的股票行情数据聚合场景.

要求:

用户发起query,  到解析, 再到聚合, 最后展现给用户耗时不超过2秒.

因为聚合维度比较多, 可以划分为时间维度, 指标维度. 指标维度多达10几个.

设想1:

使用mongo, 先扔进去了2千万左右的数据, 不加索引的情况下, 几乎出不了结果.

如果每个维度都使用索引的话成本太高, 最后果断放弃了mongo.

设想2:

使用mysql, 数据分片, 很细粒度的, 准备以空间换时间.

主要是以时间维度做数据冗余, 针对几个主要的时间段, 时间点提前做数据准备.

其他维度采用硬算的方式. 

想法是好的, 测试的结果对我来说相当残酷.

1.硬算时间太长.

2.非主要时间维度跨度太细, 不是所有都做数据pre.

设想3:

采用elasticsearch, 准备了5台服务器.  准备采用5台es集群应对OLAP场景.

导进5千万数据后,  开始测试.

时间维度+其他单一维度在1秒以内

时间维度+其他多维度(3个以内)在3秒内

后记

等把项目整理好后会在本文公布项目地址: https://gitee.com/yehun

因公司业务问题, 会阉割掉一些公司保密的项目, 但不会影响到项目.

项目上线后有看了很多OLAP场景的方案. 

发现了很多优秀的框架druid, kylin等.

后面如果使用会继续发布OLAP场景的文章!

转载于:https://my.oschina.net/yehun/blog/3095657

你可能感兴趣的:(关于千万级数据的OLAP场景)