1、mdrill介绍:
mdrill是阿里妈妈-adhoc-海量数据多维自助即席查询平台下的一个子项目。
旨在帮助用户在几秒到几十秒的时间内,分析百亿级别的任意维度组合的数据。
mdrill是一个分布式的在线分析查询系统,基于hadoop,lucene,solr,jstorm等开源系统作为实现,基于SQL的查询语法。 mdrill是一个能够对大量数据进行分布式处理的软件框架。mdrill是快速的高性能的,他的底层因使用了索引、列式存储、以及内存cache等技术,使得数据扫描的速度大为增加。mdrill是分布式的,它以并行的方式工作,通过并行处理加快处理速度。
mdrill是由阿里妈妈开源的一套数据的软件,针对TB级数据量,能够仅用10台机器,达到秒级响应,数据能实时导入,可以对任意的维度进行组合与过滤。
mdrill作为数据在线分析处理软件,可以在几秒到几十秒的时间,分析百亿级别的任意组合维度的数据。
在阿里10台机器完成每日30亿的数据存储,其中10亿为实时的数据导入,20亿为离线导入。目前集群的总存储1000多亿80~400维度的数据。
目前有阿里、腾讯、京东、联想、一号店、美团、大街网、亚信、恒隆兴等多家公司在使用。
2、mdrill的特性
1.满足大数据查询需求:adhoc每天的数据量为30亿条,随着日积月累,数据会越来越大,mdrill采用列存储,索引,分布式技术,适当的分区等满足用户对数据的实时在线分析的需求。
2.支持增量更新:离线形式的mdrill数据支持按照分区方式的增量更新。
3.支持实时数据导入:在仅有10台机器的情况下,支持每天10亿级别(高峰每小时2亿)的实时导入。
4.响应时间快:列存储、倒排索引、高效的数据压缩、内存计算,各种缓存、分区、分布式处理等等这些技术,使得mdrill可以仅在几秒到几十秒的时间分析百亿级别的数据。
5.低成本:目前在阿里adhoc仅仅使用10台48G内存的PC机,但确存储了超过千亿规模的数据。
3、mdrill适合的应用(统计分析模式):
总数据规模在十亿到百亿,上百个维度
每次查询扫描的总数据量超过亿
想要快速的(几秒)得到统计结果
数据按天分布,每天单表的数据增量小于十亿(10台48G内存的机器来算)
4、mdrill适合的应用(全文检索模式):
每天百亿的增量,上百个维度
只进行全文检索,无统计,无排序
使用云梯hdfs存储和检索
响应时间3~10秒
5、生产环境中的mdrill:
总数据量400亿+
单次扫描1个月30亿的记录,扫描的列数为1~12列
机器配置为10台48G内存,2T*10的硬盘的机器
根据查询条件的不同,单次查询时间在5秒~60秒之间
6、mdrill常见的统计功能
查询明细以及对明细TopN排序
对数据进行sum,max,min,count,avg,dist等统计
多列group by求sum,max,min,count以及topN排序
支持like,in,not in,等于,不等于,大于等于,小于等于等过滤方式