分布式Ad-hoc查询系统

本文探讨了大数据背景下实时Ad-hoc查询系统的重要性和应用场景,阐述了行式存储与列式存储的优缺点,以及列式存储在查询效率上的优势。文章还介绍了向量执行引擎和分布式查询处理技术,如MonetDB, Vectorwise和Google的Dremel。研究内容主要集中在列式存储、并行执行和分布式查询技术,以应对PB级别的数据规模,提高数据分析的效率和响应速度。" 37936703,1321939,理解.NET:计算机英语与术语解析,"['.NET英语', '计算机术语', '高级语言', '编程语言', '软件开发']
摘要由CSDN通过智能技术生成

背景和意义

在如今数据大爆炸的时代,每天都有大量的数据被产生,其中有些数据被收集保存和分析,但也有很多数据产生后没有被保存直接流失掉了,目前越来越多的公司开始意识到数据的重要性,并将数据作为公司的核心资产。对于那些已经产生但白白流失掉的数据,其数据量非常大,虽然其中很多目前无法确定是否能产生价值,但是不能确保以后不产生价值,最好的策略是将所有产生的数据都尽量收集和保存起来,以备未来所需,而未来衡量企业竞争力的核心将会是你是否持有大量的用户数据。因此,最近几年关于大数据的相关研究非常火爆,美国更是将大数据作为国家战略进行发展。在保存了大量的数据之后,如何使用数据就变成了问题,如果只是持有数据,无法进行使用和分析,数据的价值也会大打折扣。因此,在大量的数据中如何获取有价值的信息,是当今大数据的主要研究方向。

我们先来看一个场景:XX电信运营商已经拥有了收集和分析所有经过交换机的原始网元数据的系统,Scott是公司的一个的数据分析人员,他刚刚通过系统监控到M小区的用户开机的时间相比以前少了一些,从他的经验判断这个小区很有可能会出现用户流失,于是他打开系统的交互式的分析界面,输入了一些分析查询语句来验证他的想法,通过多次探索性的查询和分析后,他找到了一些用户流失的规律,并提炼形成相关的算法,并交给开发人员进行开发,后续就可以通过程序的方式自动发现这种可能潜在的用户流失场景并制定策略挽留客户。

这是一个典型Ad-hoc交互式分析的应用场景,从发现用户状态异常到分析得出用户可能流失的时间长短,将很大程度上决定是否能够挽留住客户,这对于精细化运营的运行商意义重大。而数据分析的数据量大小和范围,分析的深度和响应时间,是数据分析的关键。如今的数据分析已经朝着全量化,实时化的方向发展,相比以往的采样分析和离线分析已经有了很大的不同,而目前典型的电信领域分析场景的数据量已经达到PB级,因此分析和研究在PB数据规模下的实时Ad-hoc查询技术非常重要。

国内外研究动态

Ad-hoc又称为即席查询,和通常OLTP系统数据库不同的是,Ad-hoc查询允许最终用户建立自定义的查询,查询的维度和方式都不是事先准备好的,因此无法像OLTP场景下,通过精心设计数据模型,创建索引或物化视图来提升查询的性能。因此,在Ad-hoc查询的场景下,主要依赖的是数据的顺序扫描。

顺序扫描的性能依赖于存储结构的组织形式,通常分为NSM和DSM两种数据组织形式,NSM(N-ary storage model)即行式存储,比较适合增删操作,而在查询的场景下会读取大量无关的字段,而DSM(Decomposition storage model)即列式存储,在顺序扫描时仅读取参与查询的字段,结构更为紧凑,因此查询效率更高,DSM更详细的介绍可以参考Copeland G P [1];而在AilamakiA [2] 的论文中,提出PAX(Partition attributesacross)数据模型的概念,结合了NSM和DSM的优点,即多条数据组织在一个页面内,在页面内使用DSM模型,从而克服了DSM在执行阶段涉及到多字段的缓存不友好问题。更多关于数据模型权衡的信息可参考ZukowskiM [3]的论文。

由于列式存储在查询场景的优势,目前很多分析型数据库都已经支持列式存储,并且基于列式存储做了很多优化。在Abadi D J[6]中概括了目前列存储的主要技术,包括:列式存储的存储布局,块索引技术,压缩技术,执行引擎等。其中Abadi D J[4]详细描述了如何在列式存储执行SQL查询的方法,而在AbadiD J[5]详细描述了在列式存储的数据压缩方法以及在压缩数据上执行查询的相关技术,包括:字典压缩(DICT),行程编码(RLE),DELTA压缩,差值压缩,位图压缩,哈弗曼编码等。

开源的数据仓库InfoBright支持Ad-hoc查询的方式比较特殊,其中的存储引擎Brighthouse[15] 提出了知识网格(knowledge grid)的概念,Brighthouse将数据分成若干个数据包(Data Pack),每个数据包网格都对应有一个知识网格,知识网格中存储数据网格的常用统计信息,当查询时先根据知识网格的统计信息过滤掉无需扫描的数据,从而达到减少扫描数据的范围,提高查询的效率。

Boncz P[9],Ailarnaki A[10]的论文中描述了传统执行引擎的效率问题,传统的执行引擎每次执行都是以单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值