当前位置: 首页 > 软件库 > 企业应用 > BI商业智能 >

mdrill

在线分析查询系统
授权协议 Apache
开发语言 Java
所属分类 企业应用、 BI商业智能
软件类型 开源软件
地区 国产
投 递 者 东门涵育
操作系统 跨平台
开源组织 阿里巴巴
适用人群 未知
 软件概览

1:mdrill是阿里妈妈-adhoc-海量数据多维自助即席查询平台下的一个子项目。
2:mdrill旨在帮助用户在几秒到几十秒的时间内,分析百亿级别的任意维度组合的数据。
3:mdrill是一个分布式的在线分析查询系统,基于hadoop,lucene,solr,jstorm等开源系统作为实现,基于SQL的查询语法。 mdrill是一个能够对大量数据进行分布式处理的软件框架。mdrill是快速的高性能的,他的底层因使用了索引、列式存储、以及内存cache等技 术,使得数据扫描的速度大为增加。mdrill是分布式的,它以并行的方式工作,通过并行处理加快处理速度。
4:mdrill在adhoc项目中,mdrill使用了10台机器,存储了400亿的数据,每次扫描30亿的行数,响应时间在20秒~120秒左右(取决不同的查询条件)。

据越来越多,传统的关系型数据库支撑不了,分布式数据仓库又非常贵。几十亿、几百亿、甚至几千亿的数据量,如何才能高效的分析?
mdrill是由阿里妈妈开源的一套数据的软件,针对TB级数据量,能够仅用10台机器,达到秒级响应,数据能实时导入,可以对任意的维度进行组合与过滤。
    mdrill作为数据在线分析处理软件,可以在几秒到几十秒的时间,分析百亿级别的任意组合维度的数据。
在阿里10台机器完成每日30亿的数据存储,其中10亿为实时的数据导入,20亿为离线导入。目前集群的总存储1000多亿80~400维度的数据。

特性如下:

1.满足大数据查询需求:adhoc每天的数据量为30亿条,随着日积月累,数据会越来越大,mdrill采用列存储,索引,分布式技术,适当的分区等满足用户对数据的实时在线分析的需求。
2.支持增量更新:离线形式的mdrill数据支持按照分区方式的增量更新。
3.支持实时数据导入:在仅有10台机器的情况下,支持每天10亿级别(高峰每小时2亿)的实时导入。
4.响应时间快:列存储、倒排索引、高效的数据压缩、内存计算,各种缓存、分区、分布式处理等等这些技术,使得mdrill可以仅在几秒到几十秒的时间分析百亿级别的数据。
5.低成本:目前在阿里adhoc仅仅使用10台48G内存的PC机,但确存储了超过千亿规模的数据。
6.全文检索模式:强大的条件设置,任意组合,无论难易秒级预览,每天160亿的数据随意筛选。

mdrill 数据量增长:

 

时间点

数据量

事件

12年12月

小于2亿

adhoc首次上线

13年1月

20~30亿

由2台机器扩容到了10台

13年5月2日

100亿

首次过百亿

13年7月24日

400亿

首次开源

13年11月

1000亿

全文检索模式ods_allpv_ad_d上线

13年12月

1500亿

实时数据以及无线数据的接入

14年2月

3200亿

11台机器,硬盘使用率30%

14年3月28日

4900亿

11台机器,硬盘使用率60%

 

发行日志:

2013.07.24 version 0.18-beta  初始化版本
2013.08.07 version 0.18.1-beta bug fix see detail
2013.08.17 version 0.18.2-beta speed up see detail (下载)
2013.09.01 version 0.19-alpha HA by replication see detail (此版本需要一定时间的测试与调整,慎用)
2013.09.26 version 0.19.1-beta Bug Fix see detail (下载)
2013.09.29 version 0.19.2-beta Bug Fix (下载)
2013.10.09 version 0.19.3-beta speed up (此版本有严重BUG,请勿使用,下载)
2013.10.13 version 0.19.4-beta mergerServer优化&&bugfix (推荐版本,下载,依赖的zeromq从这里下载)
2013.11.19 version 0.20.1-alpha 使用hdfs进行检索&&实时append see detail(alpha版本,慎用。 源码下载)
2013.12.03 version 0.20.2-alpha 全文检索模式优化 see detail(alpha版本,慎用。 源码下载)
2013.12.05 version 0.20.3-alpha bugfix (alpha版本,慎用。 源码下载)
2014.01.02 version 0.20.4-alpha 通过editlog来保证实时数据的可靠性 see detail(alpha版本,慎用。 源码下载)
2014.01.14 version 0.20.5-alpha bug fix (下载)
2014.01.26 version 0.20.6-alpha bug fix (下载)
2014.02.08 version 0.20.7-alpha cache改进 see detail (点击这里下载 。)
2014.02.18 version 0.20.8.3-alpha bugfix&&重写调度&&优化 see detail (点击这里下载)
2014.03.05 version 0.20.9-beta bugfix see detail (推荐版本点击这里下载 。依赖的zeromq从这里下载)
2014.03.28 version 0.21.1-alpha update模式的开发  (开发中的版本,请不要使用。点击这里获取源码 )

  • 1、mdrill介绍: mdrill是阿里妈妈-adhoc-海量数据多维自助即席查询平台下的一个子项目。 旨在帮助用户在几秒到几十秒的时间内,分析百亿级别的任意维度组合的数据。 mdrill是一个分布式的在线分析查询系统,基于hadoop,lucene,solr,jstorm等开源系统作为实现,基于SQL的查询语法。 mdrill是一个能够对大量数据进行分布式处理的软件框架。mdrill是快速的高

  •      数据越来越多,传统的关系型数据库支撑不了,分布式数据仓库又非常贵。几十亿、几百亿、甚至几千亿的数据量,如何才能高效的分析? mdrill是由阿里妈妈开源的一套数据的软件,针对TB级数据量,能够仅用10台机器,达到秒级响应,数据能实时导入,可以对任意的维度进行组合与过滤。     mdrill作为数据在线分析处理软件,可以在几秒到几十秒的时间,分析百亿级别的任意组合维度的数据。 在阿里10

  • mdrill的分区 mdrill的设计默认是使用分区的,也是按照分区进行存储的,除非强制使用single类型的分区外,查询的时候必须指定分区。 目前mdrill的分区字段为thedate,格式为yyyyMMdd 在顶层SQL的where条件中必须有如下三种分区设定的一种 1. thedate=’yyyyMMdd’  直接指定某一个分区 2. thedate in (yyyyMMdd, yyyyMM

  • Mdrill项目在lucene的改进上的10点心得     原始文档下载:https://github.com/alibaba/mdrill/blob/master/doc/Mdrill%E9%A1%B9%E7%9B%AE%E5%9C%A8lucene%E7%9A%84%E6%94%B9%E8%BF%9B%E4%B8%8A%E7%9A%8410%E7%82%B9%E5%BF%83%E5%BE%97

  • 1:mdrill是阿里妈妈-adhoc-海量数据多维自助即席查询平台下的一个子项目。 2:mdrill旨在帮助用户在几秒到几十秒的时间内,分析百亿级别的任意维度组合的数据。 3:mdrill是一个分布式的在线分析查询系统,基于hadoop,lucene,solr,jstorm等开源系统作为实现,基于SQL的查询语法。 mdrill是一个能够对大量数据进行分布式处理的软件框架。mdrill是快速的高

  • 索引存储在HDFS中。硬件损坏-数据与任务自动迁移无须人工干预。 (原先需要数小时的索引迁移恢复时间) 数据时效性提高(由原先的几小时到现在的几分钟)。 每天数据增量由离线几十亿到现在的实时导入千亿。总数据量由百亿到现在的万亿规模。 支持的功能更多,多列order by ,数据导入过滤,导出下载,拓展统计UDF。 简化部署与运维成本-配置文件也简洁很多。 更稳定-修正在某些场景下Mdrill里的死

  • 目前海狗的内存使用都是大块大块的(每个field约40~50MB),当查询一个较大的时间范围或者较多的列的时候,由于内存大小限制,要不断的进行LRU,把过期的数据从内存中淘汰出去。 淘汰的数据会被gc回收,也意味着会发生full gc,full gc的时候程序会暂停。 故 新的改进思路是这样的,像memcache那样,预先申请好固定大小块的内存,每次用的时候,直接从固定大小块的内存中取一个过来,标

 相关资料
  • 主要内容:$explain,$hint查询分析是衡量数据库和索引设计有效性的一个非常重要的方式。下面我们来介绍一下比较常用的 $explain 和 $hint 查询。 $explain $explain 运算符提供了有关查询、索引使用以及查询统计的相关信息,这在索引优化方面非常有用。《 MongoDB覆盖索引查询》一节中我们已经使用以下代码在 users 集合中的 gender 和 name 字段上的创建了索引: 在 mongo sh

  • 在“SQL”图表,你可以分析查询并确定查询速度慢的原因。 若要深入查看特定查询,请点击图例标签或双击图表上的条形段。你可以了解查询过去的执行情况,并在单个画面中查看所有相关的故障排除信息。点击选项卡以显示与查询有关的更多图表。 分析图表 选择“分析”选项卡,然后向下滚动页面以查看分析图表。将鼠标悬停在其中一个图表上的某个点上,会自动弹出带有垂直线的工具提示值。

  • redis-cli MONITOR | head -n 5000 | ./redis-faina.py

  • “查询分析器”工具为查询日志提供图形表示,使你能够监控和优化查询性能,可视化查询活动统计数据,分析 SQL 语句,快速识别和解决长时间运行的查询。若要开始使用查询分析器,请在左侧窗格中选择要分析的实例,分析会立即开始。分析完成后,结果会显示出来: Navicat Monitor 每 60 秒刷新查询分析器中的指标。若要停止或开始刷新指标,请点击 或 图标。服务器数据收集在停止期间不会停止。 最新的

  • 场景:有一个关于分类记录collection,分类name(string,中文,英文,数字等组成)字段上有索引方便快速筛选某个分类记录,现在查询出来需要排序,查询条件{name:"F1"},排序条件{_id:-1} mongodb查询explain分析,这是winningPlan SORT + FETCH + IXSCAN 这算不算bad查询,通常是FETCH + IXSCAN。

  • 问题内容: 我想从url解析查询部分,这是我要做的代码: 这段代码看起来不错,但是“ parse_qs”方法会丢失查​​询参数,例如“ param1”或“ param1 =”。我可以使用stantard库解析查询部分并保存所有参数吗? 问题答案: 你要: