CN105474204B - 确定性的渐进式大数据分析 - Google Patents
确定性的渐进式大数据分析 Download PDFInfo
- Publication number
- CN105474204B CN105474204B CN201480033884.9A CN201480033884A CN105474204B CN 105474204 B CN105474204 B CN 105474204B CN 201480033884 A CN201480033884 A CN 201480033884A CN 105474204 B CN105474204 B CN 105474204B
- Authority
- CN
- China
- Prior art keywords
- progress
- data item
- gradual
- data
- multiple data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24573—Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Library & Information Science (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
可获取用进度标记注释的多个数据项。进度标记可指示与相应数据项的时间处理进度相关联的进度点。可以发起对多个设备上的多个数据项的大规模并行的确定性渐进式处理,进度标记指示多个数据项中的哪些数据项将被结合到渐进式处理的结果中,进度标记还指示相应数据项被结合到结果中的排序。
Description
背景
随着在诸如云之类的群集中存储和处理的数据量的增加,对这些数据的分析变得非常昂贵。例如,与云相关联的现用现付范例可导致计算成本随着查询执行时间线性地增加,从而使得数据科学家可能容易地花费大量金钱来分析数据。在查询被迭代地发现并细化的情况下,花费可能由于分析的探索特质而剧增,包括提交许多脱靶和错误查询(例如,有缺陷的参数)。在常规系统中,查询和其它计算可能需要执行以便在诊断出此类问题之前完成,这经常在耗尽数小时的昂贵计算时间后。
概述
根据一个一般方面,一种系统可包括分布式渐进式分析引擎,该渐进式分析引擎包括被配置成获取多个数据项的数据项获取组件,该多个数据项用指示与相应数据项的时间处理进度相关联的进度点的进度标记来注释。渐进式分布式处理管理器可被配置成对多个设备上的多个数据项发起大规模并行的确定性渐进式处理,进度标记指示多个数据项中的哪些数据项将被结合到渐进式处理的结果中,进度标记还指示相应数据项被结合到结果中的排序。
根据另一方面,可获取用进度标记注释的多个数据项。进度标记可指示与相应数据项的时间处理进度相关联的进度点。可以对多个设备上的多个数据项发起大规模并行的确定性渐进式处理,进度标记指示多个数据项中的哪些数据项将被结合到渐进式处理的结果中,进度标记还指示相应数据项被结合到结果中的排序。
根据另一方面,一种计算机可读存储介质可存储指令,这些指令被配置成使一个或多个处理器获取多个数据项,该多个数据项用指示与相应数据项的时间处理进度相关联的进度点的进度标记来注释。此外,这些指令可被配置成使一个或多个处理器对多个设备上的多个数据项发起大规模并行的确定性渐进式处理,进度标记指示多个数据项中的哪些数据项将被结合到渐进式处理的结果中,进度标记还指示相应数据项被结合到结果中的排序。
提供本概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。一个或多个实现的细节在以下的附图和说明书中阐述。其它特征将从描述和附图、以及权利要求书中显见。
附图简述
图1示出了按用户排序的对示例系统的示例输入以及示例查询的结果。
图2示出了图1的示例的渐进式结果。
图3示出了划分数据的示例映射-化简。
图4是示出用于分布式渐进式分析的示例系统的框图。
图5示出了使用扩充的输入数据的示例渐进式结果。
图6描绘了图5的示例的示例进度区间和查询计算。
图7示出了如与另一映射-化简系统相比的用于具有两个阶段和不同划分键的查询的示例渐进式数据并行计算框架。
图8示出了示例带注释输入数据和示例进度批次。
图9示出了化简器内的进度知晓合并模块的示例高级设计。
图10A-10B示出了用于处理包括三个作业的查询的映射和化简任务的示例布置。
图11A-11C是示出图4的系统的示例操作的流程图。
详细描述
I.介绍
对存储在诸如云之类的群集中的不断增加的数据的分析正变得越来越昂贵。数据分析通常可以手动地使用用于探索查询的的因域而异的采样策略来提取不断增大的数据大小的样本(例如,渐进式样本)。这提供了用户控制、可重复语义和结果出处。然而,此类解决方案可导致排除跨样本的工作重用的乏味工作流。然而,常规的近似查询处理系统可以报告早期结果,但无法为复杂的自组织查询提供上述益处。
本文讨论的示例技术可提供基于进度模型(在此可被称为“棱镜”)的渐进式分析系统,该系统可以(1)允许用户向系统传递渐进式样本;(2)允许对样本进行高效且确定性的查询处理;以及(3)例如向数据科学家提供可重复语义和出处。
例如,用于时间关系查询的模型可使用未经修改的时间流引擎通过重新解释时间事件字段以表示进度来实现。基于这一进度模型,可确定示例渐进式数据并行计算框架(例如,用于WINDOWS AZURE),其中进度被理解为框架中的一等公民。例如,渐进式数据并行计算框架可以与“进度知晓化简器”一起工作,如在此进一步讨论的。例如,它可以与流引擎一起工作以支持针对大数据的渐进式结构化查询语言(SQL)。
根据分析的探索特质,查询可被迭代地发现并细化,包括提交许多脱靶和错误查询(例如,有缺陷的参数)。在常规系统中,查询和其它计算可能需要执行以便在诊断出此类问题之前完成,这经常在耗尽数小时的昂贵计算时间后。
数据科学家因此可选择对所提取的数据样本执行其自组织查询。该方法向其提供提供了控制以便以因域而异的方式从各种采样策略中仔细地进行选择(参见例如D.Cohn等人的“Improving Generalization with Active Learning(通过主动学习来改善泛化)”,Machine Learning(机器学习),第15卷,第2版,1994年5月,第201-221页;M.D.McKay等人的“Comparison of Three Methods for Selecting Values of Input Variables in theAnalysis of Output from a Computer Code(用于在分析来自计算机代码的输出时选择输入变量的值的三种方法的比较)”,Technometrics(技术计量学),第21卷,第2篇,1979,第55-61页;O.Maron等人的“Hoeffding Races:Accelerating Model Selection Search forClassification and Function Approximation(Hoeffding比赛:加速模型选择搜索以用于分类和函数逼近)”,In Advances in Neural Information Processing Systems(先进的神经信息处理系统),第6卷,1994,第59-66页)。
对于给定样本,该方法可提供精确的(例如,关系型)查询语义、使用查询处理器和优化器的可重复执行、什么数据导致了观察到的结果方面的结果出处以及查询可组合性。此外,由于为所有查询选择固定样本大小的先验可能是不切实际的,因此数据科学家可以创建不断增大的多个渐进式样本并对其进行操作(看见例如上述M.D.McKay等人)。
为了帮助数据科学家,数据库团体已经提出执行渐进式分析的近似查询处理(AQP)系统,诸如CONTROL(参见例如J.M.Hellerstein等人的“Informix Under Control:Online Query Processing(控制Informix:在线查询处理)”,Data Mining and KnowledgeDiscovery Journal(数据挖掘和知识发现杂志),第4卷,第4版(2000),第281-314页)和DBO(参见例如C.Jermaine等人的“Scalable Approximate Query Processing with the DBOEngine(对DBO引擎的可缩放近似查询处理)”,In Proceedings of the 2007ACM SIGMODInternational Conference on Management of Data(2007年ACM SIGMOD数据管理国际会议论文集)(SIGMOD’07),2007,第725-736页)。
在该上下文中,“渐进式分析”可以指基于部分数据生成针对分析查询的早期结果并随着接收到更多数据对这些结果进行渐进式细化。例如,渐进式分析可允许用户使用少得多的资源来获取早期结果,并且一旦观察到可接受的准确性或查询不正确性时可能较早地结束(以及可能细化)计算。
然而,常规AQP系统的一般焦点在于自动提供结果的置信区间并选择处理次序以减少偏差。例如,AQP系统的前提是用户未干预指定早期结果的语义;相反,系统承担定义并提供准确的早期结果的责任。为了有用,系统可以自动为查询和数据的特定组合选择有效的采样策略。这对于窄工作负载类可以是有效的,但无法泛化至复杂的自组织查询。典型示例是用于联结树的采样的不可行性(参见例如S.Chaudhuri等人的“On Random SamplingOver Joins(关于针对联结的随机采样)”,In Proceedings of the 1999ACM SIGMODInternational Conference on Management of Data(1999年ACM SIGMOD数据管理国际会议论文集)(SIGMOD′99),1999,第263-274页)。在这些情况下,在“快而松”进度的情况下缺少用户干预具有缺点;因此,数据科学家可以倾向于偏好上述更费力但受控的方法。
作为示例,分析者可能希望使用示例广告平台来计算每一广告(ad)的点进率(CTR)。例如,分析者可使用两个子查询(Qc和Qi)来分别计算(每一广告的)点击和投放次数。每一查询可以是不寻常的;例如,Qc可以在逐个用户的基础上处理点击以便只考虑来自网页白名单的合法(非自动化)点击。此外,Qi可处理不同的记录数据集。最终查询Qctr可加入(对于每一广告)Qc和Qi的结果并且可将其比率计算为CTR。例如,图1示出了(作为数据100)按用户排序的示例点击数据102以及对于Qc、Qi和Qctr的最终结果。
如图1所示,示例点击数据102包括按用户排序的点击数据。如图1所示,示例投放数据104可示出按用户排序的广告投放数据。查询Qc的示例最终结果(每一广告的点击次数)被描绘为最终结果106,且查询Qi的示例最终结果(每一广告的投放次数)被描绘为最终结果108。如图1所示,最终查询Qctr的示例结果被描绘为最终结果110。
例如,图2示出了相同的查询Qc和Qi的渐进式结果200。在用户不干预定义渐进式样本的情况下,渐进式计数的正合序列可以是跨游程非确定性的,尽管最终计数是精确的。此外,取决于Qc和Qi的结果的相对速度和顺序,Qctr可组成任意渐进式结果,从而导致渐进式CTR结果的显著变化。如图2所示,示例渐进式查询Qc(每一广告的点击次数)结果被描绘为渐进式结果202,且示例渐进式查询Qi(每一广告的投放次数)结果被描绘为渐进式结果204。如图2进一步示出的,第一可能渐进式Qctr结果被描绘为渐进式结果206,而第二可能渐进式Qctr结果被描绘为渐进式结果208。
例如,2.0的CTR源自组合来自Qc和Qi的第一元组。一些甚至没有意义的结果(例如,CTR>1.0)是可能的。尽管这两个结果最终取得了相同的最终CTR,但不存在用于确保为了计算渐进式CTR而被相关的输入是确定性的且相当的(例如,使用用户的相同的样本来计算)的机制。
以上示例示出了若干挑战:
1)用户控制:数据科学家通常具有他们可用来基于其特定需求和上下文来从一定范围的采样策略中进行选择的领域专长。在图1的示例中,两个数据集可以按用于有意义的进度的用户次序被相同地渐进地采样,从而避免了联结采样问题(参见例如以上S.Chaudhuri等人)。用户还可需要更多灵活性;例如,在具有星型架构数据集的情况下,他们可能希望在对事实表进行采样之前完整地处理小尺寸表以改进渐进式结果。
2)语义:关系型代数为SQL查询提供精确语义。给定一组输入表,正确输出由该输入和查询来单独定义,并且独立于动态属性,诸如处理元组的次序。然而,对于复杂查询,常规AQP系统可使用操作语义,其中早期结果可以在最佳实践的基础上确定。由此,特定的早期结果对于用户意味着什么可能是不清楚的。
3)可重复性和优化:AQP中的查询的两个游程可提供早期结果的不同序列,尽管它们都收敛于相同的最终答案。由此,在不限制被渐进式执行的查询的种类的情况下,理解早期答案意味着什么或者甚至识别出异常的早期答案可能是有问题的。此外,改变计划中的物理算子(例如,改变波纹联结族(ripple join family)内的算子(参见例如P.J.Haas等人的“Ripple Joins for Online Aggregation(用于在线聚集的波纹联结)”,InProceedings of the 1999ACM SIGMOD International Conference on Management ofData(1999ACM SIGMOD数据管理国际会议论文集)(SIGMOD′99),1999,第287-298页)可以显著地改变看到什么早期结果。
4)出处:用户无法容易地确立早期结果的出处,例如将早期结果(CTR=3.0)链接到特定作用元组,这可用于调试和推断结果。
5)查询组成:使用操作语义的问题可能在用户开始组成查询时恶化。以上讨论的示例表明用户可获得推断起来有问题的广泛不同的结果(例如,不真实的CTR值)。
6)扩展:大规模执行渐进式分析可能恶化上述挑战。如图3所示,来自以上讨论的示例的CTR查询被表达(300)为按UserId划分数据的两个映射-化简(MR)作业(分区302、304),以馈送按不同键(AdId)划分数据的第三作业(分区306)。在复杂的分布式多阶段工作流中,准确的确定性渐进式结果可以是有利的。映射-化简-在线(MRO)(参见例如T.Condie等人的“MapReduce Online(映射化简在线)”,In Proceedings of the 7th USENIXconference on Networked systems Design and Implementation(第7界USENIX联网系统设计和实现会议)(NSDI′10),2010,第21-21页)向MR添加有限形式的流水线操作,但MRO报告未解决以上讨论的问题的试探性进度度量(跨映射器处理的平均数据部分)。
由此,例如,数据科学家可利用用户控制的渐进式采样,因为它可帮助避免以上问题,但缺少系统支持可导致可排除跨渐进式样本的工作重用的乏味且容易出错的工作流。
根据本文讨论的示例技术,示例系统可以(1)允许用户向系统传递渐进式样本;(2)允许对渐进式样本进行高效且确定性的查询处理而系统本身不尝试推断特定采样策略或置信估计;以及(3)继续提供如上所述的有利特征。
如在此处进一步讨论的,示例过程模型可以特别适于对云中的大数据的渐进式分析,因为该环境中的查询可以是复杂的且是存储器和CPU密集的。诸如MR之类的常规的可缩放分布式框架不被流水线操作,这可使其不适于渐进式分析。MRO添加流水线操作,但可以不提供对进度的语义加固以实现上述许多特征。
如在此进一步讨论的,用于渐进式分析的示例框架可以在诸如WINDOWS AZURE等系统上运行,因为它将进度(基于示例过程模型)理解为并作为框架内的一等公民来传播。这一示例体系结构可泛化数据并行MR模型并支持理解数据中的显式进度的进度知晓化简器。具体而言,示例体系结构可以作为进度知晓化简器来与时间引擎(例如,STREAMMINSIGHT-参见M.Ali等人的“Microsoft CEP Server and Online BehavioralTargeting(微软CFP服务器和在线行为定向)”,In Proceedings of the VLDB Endowment(VLDB基金论文集),第2卷,第2版,2009年8月,第1558-1561页)一起工作以启用云中的扩展的渐进式关系型(SQL)查询支持。例如,该体系结构可提供:
完全流水线化的渐进式计算以及跨具有不同的划分键的多个阶段的数据移动,从而避免了向云存储发送中间结果的大量花费。
框架中使用进度排序的数据移动的的排序的消除,在进度知晓化简器内推送的经划分的计算,以及对常规化简器应用编程接口(API)的支持。
化简器节点处多个映射输出的基于进度的合并。
通过调度策略和流控制方案对多阶段映射和化简作业的并发调度。
此外,示例体系结构可以用消除盘写入的高性能模式来扩展,并且可提供高可用性(通过利用进度语义)和掉队者(straggler)管理。
数据处理领域技术人员将认识到可以存在许多完成本文讨论的分布式渐进式分析的方式,而不背离本文讨论的精神。
II.示例操作环境
在此讨论的特征被提供为可用数据处理领域的技术人员所理解的多种不同方式来实现,而不背离在此的讨论的精神。这样的特征被解释为仅为示例实施例特征,并且不旨在被解释为限制到仅为那些详细的描述。
如进一步在此讨论的,图4是用于渐进式数据分析的系统400的框图。数据处理领域的技术人员将认识到系统400可以用硬件实现、软件实现或其组合来实现。如图4所示,系统400可包括包含至少一个处理器404的设备402。设备402可包括分布式渐进式分析引擎406,该分布式渐进式分析引擎406可包括可被配置成获取多个数据项410a,410b,...,410n的数据项获取组件408,该多个数据项410a,410b,...,410n用指示与相应数据项410a,410b,...,410n的时间处理进度相关联的进度点的进度标记412a,412b,...,412n来注释。例如,数据项410a,410b,...,410n可包括渐进式查询结果。
例如,作为进度模型(例如,渐进式采样模型)的一部分,用户可通过用显式进度区间(PI)扩充元组来将其所选渐进式采样策略编码到数据中。例如,PI可表示元组进入和退出计算的逻辑点并且显式地将元组分配给渐进式样本。例如,PI可提供用于对采样策略进行编码以及对早期结果进行排序的显著灵活性,包括任意地叠加样本序列和特例,诸如上述星型架构联结。
根据一示例实施例,分布式渐进式分析引擎406或其一个或多个部分可包括可被存储在有形计算机可读存储介质上的可执行指令,如下所讨论。根据一示例实施例,计算机可读存储介质可包括任何数量的存储设备以及任何数量的存储介质类型,包括分布式设备。
在该上下文中,“处理器”可包括被配置成处理与处理系统关联的处理指令的单个处理器或多个处理器。处理器由此可包括以并行方式和/或分布式方式处理指令的一个或多个处理器。尽管设备处理器404在图4中被描绘为在分布式渐进式分析引擎406外部,但数据处理领域的技术人员将理解,设备处理器404可被实现为单个组件和/或可位于分布式渐进式分析引擎406和/或其任何元件的内部或外部的分布式单元。
例如,系统400可包括一个或多个处理器404。例如,系统400可包括存储可由一个或多个处理器404执行的指令的至少一个有形计算机可读存储介质,可执行指令被配置成使至少一个数据处理装置执行与包括在系统400中的各个示例组件相关联的操作,如本文所讨论地。例如,一个或多个处理器404可被包括在至少一个数据处理装置中。数据处理领域的技术人员将理解,存在可根据本文的讨论配置的处理器和数据处理装置的许多配置,而不背离这样的讨论的精神。
在本上下文中,“组件”可指的是可被配置成执行某些操作的指令或硬件。这样的指令可被包括在指令的组成群组内,或可跨多于一个群组分布。例如,与第一组件的操作相关联的一些指令可被包括在与第二组件(或更多组件)的操作相关联的指令的群组中。例如,此处的“组件”可以指可由指令实现的一种功能,这些指令可以位于单个实体中或者可以分散或分布在多个实体上,并且可以与同其它组件相关联的指令和/或硬件重叠。
根据一示例实施例,分布式渐进式分析引擎406可关联于一个或多个用户设备来被实现。例如,分布式渐进式分析引擎406可与服务器通信,如以下进一步讨论。
例如,实体储存库420可包括一个或多个数据库,且可经由数据库接口组件422来访问。数据处理领域的技术人员将理解,存在用于存储本文中所讨论的储存库信息的许多种技术,诸如各种类型的数据库配置(例如关系数据库、分层数据库、分布式数据库)和非数据库配置。
根据一示例实施例,分布式渐进式分析引擎406可包括可存储数据项410a,410b,...,410n的存储器424。在该上下文中,“存储器”可包括被配置成存储数据和/或指令的单个存储器设备或多个存储器设备。此外,存储器424可跨多个分布式存储设备。此外,存储器424可以在多个处理器之间分配。
根据一示例实施例,用户接口组件426可管理用户428与分布式渐进式分析引擎406之间的通信。用户428可与接收设备430相关联,接收设备430可与显示器432和其它输入/输出设备相关联。例如,显示器432可被配置成经由内部设备总线通信或经由至少一个网络连接与接收设备430通信。
根据示例实施例,显示器432可被实现为平面屏幕显示器、印刷形式显示器、二维显示器、三维显示器、静态显示器、移动显示器、传感显示器(诸如触觉输出、听觉输出以及任何其它形式输出)以用于与用户(例如,用户428)通信。
根据一示例实施例,分布式渐进式分析引擎406可包括网络通信组件434,该网络通信组件434可管理分布式渐进式分析引擎406和可经由至少一个网络436与分布式渐进式分析引擎406通信的其它实体之间的网络通信。例如,网络436可包括因特网、至少一个无线网络、或至少一个有线网络的至少其中之一。例如,网络436可包括蜂窝网络、无线电网络或可支持用于分布式渐进式分析引擎406的数据传输的任何类型的网络。例如,网络通信组件434可管理分布式渐进式分析引擎406与接收设备430之间的网络通信。例如,网络通信组件434可管理用户接口组件426与接收设备430之间的网络通信。
渐进式分布式处理管理器440可被配置成对多个设备上的多个数据项410a,410b,...,410n发起大规模并行的确定性渐进式处理,进度标记412a,412b,...,412n指示多个数据项410a,410b,...,410n中的哪些数据项将被结合到渐进式处理的结果442中,进度标记412a,412b,...,412n还指示相应数据项410a,410b,...,410n被结合到结果442中的排序。
例如,进度标记可通过进度模型算子传播。进度标记与渐进式算子语义相结合可提供封闭世界决定性:早期结果的正合序列是经扩充的输入和逻辑查询的确定性函数。它们可独立于实际计划,这可允许无副作用的查询优化。
例如,出处是显式的;结果元组具有表示作用输入的实质上的正合集合的进度标记。进度模型还可允许有意义的查询组合,因为算子遵循进度标记。例如,在需要时,用户可将置信区间计算编码为其查询的一部分。
如在此进一步讨论的,基于示例进度模型的渐进式存储器中关系型引擎可使用未经修改的时间流引擎例如通过重用其时间字段来表示进度来实现。例如,来自连续渐进式样本的元组可以在可能时被增量式地处理,从而提供了显著的性能益处。如在此进一步讨论的,时间引擎可以不知道它正在处理时间关系型查询,因为其时间字段可以被简单地重新解释以表示进度点。虽然可能看上去存储器中查询可能是存储器密集的(因为最终答案是对整个数据集计算出),但示例进度模型可允许用户利用输入数据和查询中的排序次序和外键依赖关系来显著地减少存储器使用。
示例进度模型可泛化AQP,因为示例进度语义可以与具有统计保证的常规AQP技术所应用于的查询兼容,并由此可以不期望用户干预。这些技术对应于针对输入数据的不同的进度标记分配策略。例如,波纹联结变化(参见例如以上P.J.Haas等人)涉及在置信区间被计算为查询的一部分的情况下为时间对称散列联结分配不同的进度标记。由此,示例进度模型与该常规工作区域正交,并且能够利用该常规工作区域,同时另外地提供可重复和确定性语义的益处。
如此处进一步讨论的,示例进度模型可将逻辑进度域P定义为非负整数的范围[0,∞)。例如,由查询做出的进度可由进度点p来显式地指示。例如,在此被指示为“∞”的进度点可指示对计算的最终答案。在该上下文中,“∞”可以指与逻辑进度域范围P中的值有关的最大值或预定义(或以其它方式确定)的最大值。
此外,例如,来自进度域的进度区间(PI)可以关联到输入数据中的每一元组(例如,以指示进度标记)。更正式地,每一元组T可以用联合表示被指示为[P+,P-)的PI的两个属性(被指示为P+的“进度开始”以及被指示为P-的“进度结束”)来扩充。例如,P+可指示元组T开始参与计算的进度点,而P-可指示元组T停止作用于计算的进度点。所有输入元组都可具有基于特定用户实现的进度语义的用户或系统提供的P+值。例如,每一进度采样策略可包括某一等价PI分配。例如,在包括性样本(例如,每一样本是前一样本的超集)的常见案例中,所有输入元组都可具有被设为1的P-。例如,在具有非包括性样本的情况下,输入元组可具有有限的P-,并且对于后一样本能够以更大的P+重现。
根据此处讨论的示例技术,每一逻辑关系型算子O都可具有渐进式对应算子,该对应算子从扩充的输入元组中计算出扩充的输入元组。例如,在逻辑上,进度点p处的输出是被应用于其PI由p穿刺的输入元组的运算O(例如,对用户定义的算子的扩展可以是基本上相同的)。在该上下文中,术语“穿刺”指的是进度点p包括包含了区间内的进度点的进度区间的全部,例如,对于区间[LE,RE),p位于LE与RE内。由此,渐进式算子可被有意义地组成以产生渐进式查询。渐进式查询的示例输出可以单独是(扩充的)输入数据和逻辑查询的确定性函数。
例如,输出元组的P-可以并非始终在与知晓其P+相同的时间知晓。由此,算子可以在两个单独片段中输出具有为[P+,P-)的最终PI的元组:(1)在进度点P+,它生成具有指示该元组永远参与结果的PI[P+,∞)的元组T1;(2)在后一进度点P-,它生成具有实际PI[P+,P-)的更新T2。在该上下文中,术语“进度同步”可以指与元组(或其后续更新)相关联的进度点。例如,元组T1具有进度同步P+,而元组T2具有进度同步P-。
稍微类似于常规数据库,每一逻辑渐进式算子都可具有多个等价物理算子。例如,每一物理算子以非递减的进度同步次序处理并生成扩充的元组。稍后细化的早期结果的最终P-值小于最大值(例如,∞)以指示结果并非是最终的。例如,计数算子可以随着它处理更多数据而增量式地修订其渐进式计数输出。
根据本文讨论的示例技术,示例过程模型中的早期结果可提供可帮助调试和推断早期结果的出处:具有由进度点p刺穿的PI的输出元组集可表示p处的渐进式查询结果。例如,这些输出元组的出处可包括所有元组连同其PI被p刺穿的输入路径。综上,关系型查询Q的示例进度模型输出可被如下指示:
与每一输入元组相关联的是进度区间(PI)。例如,在跨输入数据中的所有PI端点的每一唯一进度点p,存在具有被p刺穿的PI的输出结果集Op。Op可被定义为针对具有被p刺穿的PI的输入元组评估的查询Q的结果。
示例过程模型可被视作以渐进式采样作为一等概念的关系型代数的泛化。关系型代数可规定对关系型查询的最终答案,但可以不涵盖用户可以如何使用部分结果来取得最终答案。例如,示例过程模型代数可为每查询不仅显式地指定最终答案而且还显式地指定每一中间(例如,渐进式)结果及其在进度域中的位置。
图5示出了使用扩充的输入数据的示例渐进式结果500。例如,图5示出了扩充的输入数据502、504,其中用户ui的PI可被设为[i,∞)。新渐进式结果可以在每一进度点产生(在输入数据中)。由此,PI实际上可以是更粗粒度的(例如,P+可以每1000个用户递增一次)。
图5还示出了Qc和Qi的结果。例如,查询Qc的结果506以及查询Qi的结果508各自在进度点0产生渐进式计数1,该渐进式计数在进度点1和2被修订为2和3。结果,这些元组的PI分别是[0,1)、[1,2)和[2,∞)。
例如,查询Qctr的示例渐进式结果510示出了以下概念:当CTR是在某一用户前缀(对于示例进度分配)上计算出且CTR出处由PI提供时,每一CTR可以是有意义的。此外,这些渐进式结果对于给定输入和逻辑查询可以是固定的。如图5所示,0.6的最终CTR是仅有的在进度点∞处活动的元组。
图6将结果600描绘为图5的示例的示例PI 602和查询计算604。
根据本文讨论的示例技术,数据库引擎可被修改为向引擎中的所有算子添加PI支持。然而,如本文讨论的示例进度模型可以在不招致该工作的情况下实现。例如,流处理引擎(SPE)可被用作渐进式查询处理器。具体而言,诸如NILE(参见例如M.Hammad等人的“Nile:A Query Processing Engine for Data Streams(Nile:用于数据流的查询处理引擎)”,In Proceedings of the 20th International Conference on Data Engineering(第20界数据工程国际会议的论文集)(ICDE),2004),STREAM(参见例如B.Babcock等人的“Models and Issues in Data Stream Systems(数据流系统中的模型和问题)”,InProceedings of the twenty-first ACM SIGMOD-SIGACT-SIGART Symposium onPrinciples of Database Systems(第21界ACM SIGMOD-SIGSCT-SIGART数据库系统原理讨论会的论文集)(PODS′02),2002,pp.1-16)或STREAMINSIGHT(参见例如以上M.Ali等人)(基于时间数据库(参见例如C.Jensen等人的“Temporal Specialization(时间专用化)”,InProceedings of the 8th International Conference on Data Engineering(第8界数据工程国际会议的论文集),1992,第594-603页))等时间SPE底层的语义可被用来表示进度,有利地在可能时具有跨样本的增量式处理。例如在STREAMINSIGHT的时间模型的情况下,事件有效性时间区间(参见例如R.Barga等人的“Consistent Streaming Through Time:AVision for Event Stream Processing(通过时间的一致流化:事件流处理的视觉)”,3rdBiennial Conference on Innovative Data Systems Research(第3界两年期的创新数据系统研究会议)(CIDR),January 7-10,2007(2007年1月7-10日),第363-374页)[Vs,Ve)直接表示PI[P+,P-)。例如,T1是插入,而T2是缩回(或修订)。同样,T1和T2可对应于STREAM中的Istream和Dstream,以及NILE中的正和负元组。例如,被转换成事件的输入元组可被馈送到对应于原始时间SQL查询的连续查询。未经修改的SPE然后可以对这些元组进行操作(就像它们是时间事件),并且可产生具有可被重新解释为具有PI的元组的时间戳字段的输出事件。
例如,在该构造的情况下,SPE可以不知道它正被用作渐进式SQL处理器。例如,它可处理并产生其时间字段可被重新解释为表示时间(关系型)查询的进度的时间字段的事件。例如,SPE中的时间对称散列联结可以有效地在渐进式样本序列上计算出联结序列。所得查询处理器可以透明地处理所有SQL,包括具有示例进度模型的特征的用户定义的功能。
用于PI分配的渐进式采样策略的选择可以与示例进度模型互不相关。例如,它可由数据科学家直接或使用系统与用户之间的层控制以确保更快且更有意义的早期结果。对于在线聚集,预定义的随机次序可用于更快的收敛。活动学习(参见例如以上D.Cohn等人)可基于来自先前样本的结果来改变采样策略。例如,PI可以跨相等联结的输入以联结键次序分配。以上讨论的图5的示例可以按UserId次序分配P+。在星型架构的情况下,小尺寸表中的所有元组可被设为具有为[0,∞)的PI,而来自事实表的渐进式采样可被设为[0,∞),[1,∞),....。
由此,用于对数据进行排序以实现快速收敛的常规建议(参见例如P.J.Haas等人的“Join Algorithms for Online Aggregation(在线聚集的联结算法)”,IBM ResearchReport RJ 10126(IBM研究报告RJ 10126),1998;P.J.Haas等人的“Ripple Joins forOnline Aggregation(在线聚集的波纹联结)”,In Proceedings of the 1999ACM SIGMODInternational Conference on Management of Data(1999年ACM SIGMOD数据管理国际会议的论文集)(SIGMOD′99),1999,第287-298页;N.Pansare等人的“Online Aggregationfor Large MapReduce Jobs(大型映射化简作业的在线聚集)”,In Proceedings of the37th International Conference on Very Large Databases(第37界非常大型数据库国际会议的论文集)(VLDB′11),2011年8月29日到9月3日;S.Chaudhuri等人的“EffectiveUse of Block-Level Sampling in Statistics Estimation(统计估计中对块级采样的有效使用)”,In Proceedings of the 2004ACM SIGMOD International Conference onManagement of Data(2004年ACM SIGMOD数据管理国际会议的论文集)(SIGMOD′04),2004,第287-298页)可对应于此处讨论的示例进度模型中的不同PI分配方案。
给定基于采样策略的基础PI分配,进度报告粒度还可通过调整P+向前移动的方式来控制:在当前示例输入中将P+设为在每一个1000用户团块(在此可被称为进度批处理)被处理后产生渐进式结果。例如,可由数据科学家利用的另一替代方案可涉及开始于小进度批处理以获取相当快的估计,并且然后随着观察到数据更多收益递减而增大批大小(例如,指数级)。
使用存储器中流引擎的查询处理可以是昂贵的,因为最终答案是基于整个数据集的。本文讨论的示例进度模型可允许性能优化,这可以在实际情形中显著提高性能。例如,计算Qc可按照UserId划分。例如,可利用编译时间特性(进度同步排序可以基本上等同于(或相关到)划分键)来减少存储器使用并因此减少吞吐量。例如,直观上,尽管具有PI[P+,∞)的每一元组在逻辑上具有∞的P-,但这不作用于超过P+的任何进度点。由此,P-可被临时设为P++1,之后将元组馈送到SPE。例如,一旦针对P+的计算完成,这可有效地使得SPE不必在存储器中保留关于进度点P+的信息。例如,结果元组可将其P-设回成∞(例如,最大值)以保留原始查询语义(例如,这些查询修改可使用编译时间查询重写来引入)。
类似地,在相等联结操作的情况下,如果进度同步排序被相关到联结键,则可使用类似的P-调整来确保联结概要不跨进度点保留元组,因为元组可被保证不与具有更大P+的任何其它元组联结。
如此处进一步讨论的,示例渐进式数据并行计算框架在高层面可基于映射化简(MR)计算范例(参见例如J.Dean等人的“MapReduce:Simplified Data Processing onLarge Clusters(映射化简:大型群集的简化数据处理)”,In Proceedings of the 6thSymposium on Operating Systems Design&Implementation(第6界操作系统设计和实现讨论会的论文集)(OSDI′04),第6卷,2004)。图7示出了如与常规MR 704相比的用于具有两个阶段和不同划分键的查询的示例渐进式数据并行计算框架702。例如,附图中的blob(大型二进制对象)可指示WINDOWS AZURE的分布式云存储上的输入和输出数据的格式,并且可由诸如HADOOP分布式文件系统(HDFS)等任何分布式持久存储替代。
如此处进一步讨论的,渐进式数据并行计算框架(702)可提供进度知晓数据流动,因为该框架可实现此处讨论的示例进度模型并且可提供对例如按严格的进度同步次序的数据流动的支持。进度知晓数据流动的示例分量可包括:
批处理706:示例框架可读取用PI注释的输入数据708(渐进式样本)并且可用相同的进度同步创建各批元组。示例框架702中的数据移动可以按进度同步次序在这些进度批次方面被完全流水线化。
免排序的数据重排710:MR按照键来对映射输出进行排序,之后进行合并以允许在化简器712处按键进行分组。MR中的这一排序合并操作可涉及性能瓶颈(参见例如B.Li等人的“A Platform for Scalable One-Pass Analytics Using MapReduce(使用映射化简进行可缩放的单遍分析的平台)”,In Proceedings of the 2011 ACM SIGMODInternational Conference on Management of Data(2011年ACM SIGMOD数据管理国际会议的论文集)(SIGMOD′11),June 2011(2011年6月),第985-996页)。作为对比,示例框架702中的经批处理的映射输出可跨到化简器712的网络进行划分和重排而不排序,由此保留进度同步次序。
进度知晓合并714:化简器712处的进度知晓合并714可启用渐进式查询结果的示例进度模型。例如,每一化简器712将从不同映射器706接收到的属于同一PI的各批次一起分组到单个进度批次中,并且可确保所有进度批次都以严格进度同步次序处理,由此为框架中的进度批次以及所有数据流路径提供全局进度同步次序。
如此处进一步讨论的,示例框架702可提供进度知晓化简器712,这些化简器以进度同步次序接受并提供扩充的元组,并且在逻辑上附连到示例进度模型查询模型。进度知晓合并714可以按进度同步次序生成进度批次;这些进度批次可被直接馈送到以进度同步次序提供早期结果的化简器712。例如,用户可写入自定义化简器,或者用户可将未经修改的SPE用作用于渐进式关系型查询的进度知晓化简器。
如此处进一步讨论的,示例框架702可向多阶段系统提供具有流控制。例如,示例框架702可支持并发调度多阶段查询中的所有作业以及将相关作业的映射器与馈送作业的化简器共置在同一从属机器上。例如,作业之间的数据转移可以在存储器中进行(716),从而在其中blob存取可以是昂贵的云部署中提供显著节省。示例框架还可提供端对端流控制以避免中间阶段处的缓冲溢出,并且可确保可由下行客户维持的数据流。例如,渐进式分布式处理管理器440可被配置成发起确定性的、大规模并行地渐进式处理,该处理包括利用调度策略和流控制方案对多阶段映射和化简作业的并发调度。
如此处进一步讨论的,示例框架702可提供存储器中数据处理。例如,示例框架702可具体化盘上的映射输出以便在故障恢复期间提供数据可用性方面的改进。例如,高性能存储器中模式可被支持以改进交互性。
如此处进一步讨论的,示例框架702可提供处于进度批次粒度并且由PI管控的数据流。
如此处进一步讨论的,输入数据708可被划分成多个输入分片(例如,每一映射器706一个分片),每一分片都是按进度同步次序的。例如,映射器706可将其输入分片读取为进度注释的元组(例如,渐进式样本)并且可调用用户的映射函数。所得的扩充的键值对可以按键划分以为每一分区(例如,下游化简器)提供进度批次序列。例如,进度批次可包括具有相同的进度同步值的所有元组(特定分区内),并且可具有唯一ID。例如,每一个进度批次序列都可以按严格递增进度同步次序的。
例如,输入文本读取器可以在它到达其输入分片的末尾时将文件末尾(eof)标记附加到映射器的输入。映射器在接收到eof标记之际可将其附加到所有进度批次序列。
例如,框架702中的批处理粒度可由输入数据708的PI分配方案来确定。示例框架702还可向用户提供“控制旋钮”(例如参数化的批处理功能方面),以按照实际输入的PI注释粒度的因子来改变映射输出的批处理粒度。例如,这可避免在用户决定更改渐进式输出的粒度的情况下用PI重新注释输入数据708。
图8示出了示例带注释输入数据和示例进度批次(800)。例如,图8示出了具有三个渐进式样本的PI注释的输入分片802。例如,对应的批处理映射804可以是输出,其中批次中的每一元组都具有相同的(或基本上相同的)进度同步值。例如,进度粒度可使用修改P+的批处理函数来改变(806)。在该示例中,是示例批处理函数,且批处理参数b被设为2。
如此处进一步讨论的,示例框架702可以在进度批次方面重排映射器和化简器之间的数据,而不进行排序。作为附加性能增强,示例框架702可支持映射器和化简器之间的存储器中数据转移的模式,且用流控制来避免存储器溢出。例如,进度批次可使用示例细粒度信令机制来从映射器流水线化到化简器,这可使得映射器能够将进度批次的可用性告知作业跟踪器(例如,主机)。作业跟踪器然后可将进度批次ID和位置信息传递给适当的化简器,从而触发相应的映射输出下载。
例如,化简器侧的下载机制可支持进度同步次序的批移动。例如,每一化简器都可为与作业相关联的每一映射器维护单独的阻塞并发队列(BCQ)。例如,BCQ可包括无锁存储器数据结构,该数据结构可支持并发的入队和出队操作并且可启用适当的流控制以避免化简器的覆没。例如,BCQ的最大大小可以是可根据化简器处的可用存储器来设置的可调节参数。
例如,化简器可以按严格的进步同步次序使得从每一映射器下载的进度批次入队到与该映射器相关联的相应BCQ中。例如,该批处理的数据转移顺序模式缓解了在映射器和化简器之间维护连续连接的需求,这可有助于可缩放性。
例如,参考图4,映射组件444可被配置成发起对多个数据项410a,410b,...,410n的集合的进度知晓批处理以及多个数据项410a,410b,...,410n的进度知晓数据流动,以作为被包括在渐进式处理中的进度知晓的映射化简操作的一部分。
例如,渐进式数据重排组件446可被配置成发起使用多个数据项410a,410b,...,410n的集合的分组的免排序的渐进式数据重排,该分组基于集合中所包括的相应数据项410a,410b,...,410n的进度标记412a,412b,...,412n。
例如,进度知晓合并组件448可被配置成发起对多个数据项410a,410b,...,410n的各部分的进度知晓合并。
例如,进度知晓化简器组件450可被配置成在化简器阶段发起进度知晓合并组件448对多个数据项410a,410b,...,410n的各部分的进度知晓合并,以作为被包括在渐进式处理中的进度知晓映射化简操作的一部分。
例如,映射组件444可被配置成基于用于向作业跟踪器指示流水线化进度批次中的各个批次的可用性的信令机制来将进度批次从映射组件444流水线化到进度知晓化简器组件450。
例如,进度知晓化简器组件可包括被配置成执行无锁存储器中并发入队和出队操作的阻塞并发队列(BCQ)。
例如,进度知晓化简器组件450可由用户实现。
例如,化简器阶段可包括与时间字段的处理基本上等同地处理进度标记412a,412b,...,412n的流时间引擎。
例如,获取用进度标记412a,412b,...,412n注释的多个数据项410a,410b,...,410n可包括接收包括数据元组的多个数据项410a,410b,...,410n,这些数据元组是用户用指示数据元组进入和退出渐进式处理中所包括的各计算部分的逻辑点的相应进度区间来扩充的。
例如,指示数据元组进入和退出渐进式处理中所包括的各计算部分的逻辑点的相应进度区间可用于将相应的数据元组分配给渐进式样本。
如此处所进一步讨论的,示例框架702可使用进度知晓合并机制902来实现示例进度模型,该合并机制可确保数据按进度同步次序沿着该框架中的所有路径流动。图9示出了每一化简器904内的进度知晓合并模块的示例高级设计900。例如,一旦映射输出在每一映射输出队列906中可用,化简器904就可调用进度知晓合并机制902,如在示例算法1中示出的:
算法1
如图所示,算法1可将以下各项接受为输入(行1):映射器的数量M、BCQ集合B(其中qi∈B表示用于映射器i的阻塞并发队列)、将被产生的合并批次的当前进度同步值cmin(例如,cmin可被初始化为跨BCQ的头部最小的进度同步)、以及H,其中hi∈H指示当前处于qi的头部的进度同步值(例如,hi可被初始化为qi的头部处的进度同步值)。
如上所示,算法1初始化空集0作为输出(行4)。它在所有映射器队列上迭代(行5-15)以查找其进度同步值匹配cmin的批次并使其出队,将其添加到O并将hi更新为qi头部处的新值。它最终更新cmin并返回0(行17),即所有元组都具有相同的进度同步值的合并批次。0然后被馈送到渐进式化简器904。如果(指示所有BCQ上的输入的末尾),则框架将eof标记传递给渐进式化简器从而信令输入的终止。
令分区表示特定化简器904负责的键集。在常规MR中,化简器收集分区中的每一键的所有值并且对每一键调用化简函数以传递与该键相关联的一组值。此处讨论的示例框架702可改为以进度同步次序使用进度知晓化简器904,其输入是与该分区相关联的进度批次的序列。例如,化简器904可以负责按键分组和计算,并且可以按进度同步次序产生进度批次序列作为输出。用于实现此的示例API在以下示出:
未改变的映射API:
void map(K1 key,V1 value,Context context)
泛化的化简API:
void reduce(Iterable<K2,V2>input,Context context)
在此,V1和V2包括PI。示例框架702还可支持常规化简器API以支持较老的工作流,对于每一进度点使用按键对活动元组进行分组的层,对于每一键调用常规化简函数,并且使用化简输出来生成具有对应于该进度点的PI的元组。
例如,虽然用户可编写自定义进度知晓化简器,但是未经修改的时间流引擎(诸如STREAMINSIGHT)可被用作化简器以处理(例如,渐进式SQL的)渐进式关系型查询。流引擎可以按时间戳次序来处理数据,这与此处讨论的按进度同步排序的数据移动匹配。例如,事件中的时间概念可被重新解释为查询中的进度点。此外,流引擎自然地使用基于散列的键划分来处理高效分组的子计划,这可用于以进度同步次序处理元组。
由于许多分析查询可能需要被表达为多阶段MR作业,因此示例框架可跨不同阶段使用对可能需要跨作业交换数据的进程的并发作业调度和共置来支持完全流水线化的渐进式作业执行。
示例框架702中的调度器可被设计成从应用控制器接收多阶段查询中的所有作业作为作业图(例如,作为并发作业调度的一部分)。例如,每一作业可被转换成映射和化简任务的集合。例如,调度器可以从作业中提取类型信息以便构造依赖关系表,该依赖关系表为每一作业内的每一任务跟踪该任务从何处读取并写入到何处(例如,blob或某一其他作业)。例如,调度器可使用该依赖关系表来将映射任务划分成可以从blob/HDFS读取其输入的独立映射任务集合Mi以及其输入是某一先前阶段化简器的输出的相关映射任务集合Md。
类似地,化简任务可被划分成可以向后续作业的映射器提供输出的馈送器任务集合Rf以及将其输出写入到blob/HDFS的输出化简任务集合Ro。
算法2以下示出了用于调度对应于不同作业的映射和化简任务的示例技术:
算法2
如算法2中所示,Rf中的所有化简任务可以在从属机器上调度(行3-5),这些从属机器具有可用于调度Md中的将消耗馈送器化简任务的输出的对应的相关映射任务的至少一个映射时隙。调度器维护已经在其上调度这些馈送器化简任务的从属机器的任务跟踪器ID的状态(行5)。
在行6,Ro中的所有化简器可以取决于各从属机器上的化简时隙的可用性按循环方式来调度。在行7-8,Md中的所有映射任务被分派,并根据依赖关系表且使用由该算法保存的任务跟踪器信息来使它们与前一阶段的化简器共置。在行9-10,Mi中的所有映射任务被调度成最靠近输入数据位置。例如,以此次序布置任务可确保在存在所有MR任务将满足所有作业依赖关系的可行布置的情况下将找到这一布置。
图10A-10B示出了用于处理包括三个作业J1、J2和J3的查询的映射和化简任务的示例布置。例如,图10A示出了作业之间的数据流1000a,图10B示出了按照框架的调度算法(参见例如以上算法2)的映射任务(例如,标识为Mi)和化简任务(例如,标识为Ri)的布置1000b。图中的阴影部分指示对应的映射和化简任务已经在相同的从属机器上共同调度。调度器还验证相关映射任务的数量等于在前作业的馈送器化简任务的数量,由此确保对于在同一从属机器上共同调度的每一馈送器化简任务存在一个相关映射任务。
例如,作业之间的数据流可以使用BCQ 1002来在生产者-消费者范例上建模并且可以完全在存储器中进行以避免数据具体化和重排开销。此外,相关作业的化简器和映射器的共置可消除数据串行化、去串行化和云环境中的各阶段之间的昂贵的网络I/O的开销。
此处讨论的示例框架702可沿着该框架中的所有数据流路径提供显式端对端流控制以避免任何中间阶段处的缓冲器溢出以及较慢的接收者由于资源/负载失衡而被较快的发送者覆没。例如,阻塞并发队列(BCQ)可用于实现流控制。例如,BCQ可包括无锁数据结构,该数据结构支持并发入队和出队操作(用一个读取器和一个写入器)并且可由预算、最大和最小值来表征。
在该上下文中,术语预算可控制队列的最大容量并且可取决于化简器处的可用存储器;最大值可控制队列可保存的进度批次的最大数量(超过该数量所有入队操作将阻塞);而最小值参数可以如同阈值那样操作,其控制队列中的此时队列可被解除阻塞以便于附加入队操作的进度批次数量。例如,在一方面仔细地设置最小值可避免频繁阻塞队列和解除队列的阻塞,而在另一方面可防止队列被长时间阻塞。最大值和最小值参数的值可基于预算和每一进度批次的大小来计算。例如,如果预算被设为10MB且进度批次的大小是1MB(平均),则最大值可被设为10。如果最小值被设为7,则它可提供剩余容量3,即队列可以在它达到最大值的情况下被阻塞,直到它达到大小7。
示例框架702中的流控制机制可以在该框架中的三点处表示其自身:多阶段MR的映射器输出、下载管理器和化简输出。这些位置中的每一个可使用BCQ来实现流控制并且可以无缝地集成以形成用于示例框架的端对端流控制机制。
Upadhyaya等人的“A Latency and Fault-Tolerance Optimizer for OnlineParallel Query Plans(针对在线并行查询计划的等待时间和故障容错优化器)”,InProceedings of the 2011ACM SIGMOD International Conference on Management ofData(2011年ACM SIGMOD数据管理国际会议的论文集)(SIGMOD′11),2011年6月,第241-252页最近以显示多阶段流水线化的映射化简系统可如何支持重放和检查点的混合策略;这些解决方案可适用于此处的示例框架。
例如,示例框架的故障语义可包括映射任务故障和化简任务故障,如下所概述的。
例如,发生故障的工作者节点上的进行中或完成的任何映射任务可能如在常规MR中那样需要被重新调度。
例如,在化简任务失败后,其输入可以从最近检查点开始重放(例如,映射输出可以在本地存储上具体化以允许重放)。例如,显式进度点可使得更容易地确定在故障后在何处取得检查点或重放数据。例如,此处讨论的框架还可减少故障后重放的成本,因为进度点p处的处理可以仅仅取决于在p处“活着”(即,其PI刺穿p)的输入元组。例如,这可以按两种方式利用,如下所讨论的。
例如,元组可以在重放期间被过滤掉(在P≤p的情况下)以便显著地减少重放数据量,并且可截短保存在本地存储上的中间映射输出。例如,该优化可以不应用于将P设为∞的外部输入,而是可应用于多阶段作业中的中间结果。
在重放期间,对于重放的元组P+可被设为P+=max(p,P+),以使得化简器可以不为早于p的进度点重新生成早期结果。
如在A.Rowstron等人的“Nobody Ever Got Fired for Using Hadoop on aCluster(在群集上使用Hadoop没有人会被解雇)”,In 1st International Workshop onHot Topics in Cloud Data Processing(第一届云数据处理国际热点话题)(HotCDP2012),2012年4月10-13日中所讨论的,至少两个生产群集(在MICROSOFT和YAHOO!)具有低于14GB的中值作业输入大小,而FACEBOOK群集上90%的作业具有低于100GB的输入大小。基于该发现且与渐进式查询通常可被较早地结束的期望耦合,此处讨论的示例框架可支持非HA(高可用性)模式,其中不在本地存储上具体化中间映射输出并且不完成检查点。这涉及故障层叠回源数据(例如,作业可被重启)。
进度同步合并的可能结果是如果前一任务的进度较慢,则总进度可能需要被减缓以确保全局进度同步次序。虽然可能需要进度同步次序以取得示例框架的益处,但可存在诉诸于可牺牲语义和确定性的试探之外的修复。
例如,可存在涉及具有1个掉队节点的n个节点的场景。如果处理失衡是由于失衡的负载,则分区可以动态地从掉队节点移至新节点(化简器状态也可被移动)。例如,掉队节点可改为一起失效并且其计算可通过跨剩余的n-1个节点等同地划分其负载来重启。追赶工作可被快n-1倍地实现,从而导致更快的平衡还原。例如,如果故障平均在作业的半途发生,则在使用该方案的情况下作业可由于掉队节点而运行2.5/(n-1)倍那样长。
例如,可以添加对补偿化简器的支持,该补偿化简器可继续处理新进度点,但可维护足够的信息以一旦接收到较晚数据就修订或补偿其状态。若干引擎已经讨论了对补偿的支持(参见例如以以上R.Barga等人;E.Ryvkina等人的“Revision Processing in aStream Processing Engine:A High-Level Design(流处理引擎中的修订处理:高级设计)”,In Proceedings of the 22nd International Conference on Data Engineering(第22界数据工程国际会议的论文集)(ICDE′06),2006)。例如,在具有补偿化简器的情况下,进度知晓合并具有超时,此后它可继续跨其它输入进行进度排序的合并。
此处讨论的示例框架可例如从AZURE blob读取输入数据,并且可以按渐进式样本或进度批次的粒度以进度同步次序处理数据。例如,该框架可以由于云设置中的性能(例如,缓慢的blob写入和读取)和成本(例如,基于数据量的定价)而不将各阶段之间的结果写回到blob。如在任何渐进式引擎中一样,示例框架可期望用户以适于其查询和准确性需求的进度次序使数据可用。例如,用户可为不同类型的查询具体化不同的排序,且相关联的加载成本通过重用针对许多自组织查询的排序来分摊。
例如,该框架可使用数据中的PI来将元组分批到进度批次中。如此处所使用的,“进度批次”是示例框架中的数据移动的粒度;这允许用户将流水线化的数据转移的开销分摊在化简器处理成本上。例如,用户通常可以只在非寻常区间需要进度的事实(例如,小于每秒十次的进度更新可以是不寻常的)可被利用,并且与实时处理系统相比受控的数据相关批处理可用于显著地提高性能,同时提供比诸如MR等完全离线的系统更早的反馈。
数据处理领域的技术人员将理解,可使用许多不同的技术来进行渐进式数据分析,而不背离本文讨论的精神。
III.流程图描述
在此讨论的特征被提供为可用数据处理领域的技术人员所理解的多种不同方式来实现,而不背离在此的讨论的精神。这样的特征被解释为仅为示例实施例特征,并且不旨在被解释为限制到仅为那些详细的描述。
图11A-11C是示出根据示例实施例的图4的系统的示例操作的流程图。在图11A的示例1100a中,可获取用进度标记注释的多个数据项(1102)。进度标记可指示与相应数据项的时间处理进度相关联的进度点。例如,数据项获取组件408可被配置成获取多个数据项410a,410b,...,410n,该多个数据项410a,410b,...,410n用指示与相应数据项410a,410b,...,410n的时间处理进度相关联的进度点的进度标记412a,412b,...,412n来注释。
可以对多个设备上的多个数据项发起大规模并行的确定性渐进式处理,进度标记指示多个数据项中的哪些数据项将被结合到渐进式处理的结果中,进度标记还指示相应数据项被结合到结果中的排序(1104)。例如,渐进式分布式处理管理器440可被配置成发起对多个设备上的多个数据项410a,410b,...,410n的大规模并行的确定性渐进式处理,进度标记412a,412b,...,412n指示多个数据项410a,410b,...,410n中的哪些数据项将被结合到渐进式处理的结果442中,进度标记412a,412b,...,412n还指示相应数据项410a,410b,...,410n被结合到结果442中的排序,如上所述。
例如,获取用进度标记注释的多个数据项可包括接收包括数据元组的多个数据项,这些数据元组是用户用指示数据元组进入和退出渐进式处理中所包括的各计算部分的逻辑点的相应进度区间来扩充的(1106)。
例如,指示数据元组进入和退出渐进式处理中所包括的各计算部分的逻辑点的相应进度区间可用于将相应的数据元组分配给渐进式样本(1108)。
例如,可发起对多个数据项的集合的进度知晓批处理以及多个数据项的进度知晓数据流动,以作为渐进式处理中所包括的进度知晓映射化简操作的一部分(1110)。例如,映射组件444可被配置成发起对多个数据项410a,410b,...,410n的集合的进度知晓批处理以及多个数据项410a,410b,...,410n的进度知晓数据流动,以作为渐进式处理中包括的进度知晓映射化简操作的一部分,如上所述。
例如,在图11B的示例1100b中,可发起使用多个数据项的集合的分组的免排序的渐进式数据重排,该分组基于集合(1112)中所包括的相应数据项的进度标记(1112)。例如,渐进式数据重排组件446可被配置成发起使用多个数据项410a,410b,...,410n的集合的分组的免排序的渐进式数据重排,该分组基于集合中所包括的相应数据项410a,410b,...,410n的进度标记412a,412b,...,412n,如上所述。
例如,可发起对多个数据项的各部分的进度知晓合并(1114)。例如,进度知晓合并组件448可被配置成发起对多个数据项410a,410b,...,410n的各部分的进度知晓合并,如上所述。
例如,可以在化简器阶段发起进度知晓合并组件对多个数据项的各部分的进度知晓合并,以作为渐进式处理中所包括的进度知晓映射化简操作的一部分(1116)。例如,进度知晓化简器组件450可被配置成在化简器阶段发起进度知晓合并组件448对多个数据项410a,410b,...,410n的各部分的进度知晓合并,以作为被包括在渐进式处理中的进度知晓映射化简操作的一部分,如上所述。
例如,基于用于向作业跟踪器指示流水线化进度批次中的各个批次的可用性的信令机制来将进度批次从映射组件流水线化到进度知晓化简器组件(1118)。例如,映射组件444可被配置成基于用于向作业跟踪器指示流水线化进度批次中的各个批次的可用性的信令机制来将阶段批次从映射组件444流水线化到进度知晓化简器组件450,如上所述。
例如,在图11C的示例1100c中,可执行无锁的存储器中并发入队和出队操作(1120)。例如,进度知晓化简器组件可包括被配置成执行无锁存储器中并发入队和出队操作的阻塞并发队列(BCQ),如上所述。
例如,进度知晓化简器组件可由用户实现(1122)。
例如,化简器阶段可包括与时间字段的处理基本上等同地处理进度标记的流时间引擎(1124)。
数据处理领域的技术人员将理解,可存在执行渐进式数据分析的许多方式,而不背离本文讨论的精神。
此处讨论的示例技术可用于可基于渐进式数据分析来评估任何类型的输入。例如,渐进式查询可使用此处讨论的示例技术来分析。
多年来,在数据处理环境中一直考虑客户隐私和机密。因此,用于渐进式数据分析的示例技术可使用用户输入和/或用户提供的数据,用户经由一个或多个订阅协议(例如,“服务条款”(TOS)协议)向相关联的应用或与此类分析相关联的服务提供了许可。例如,用户可提供同意使其输入/数据在设备上传送和存储,尽管明确指出(例如,经由用户接受的协议)每一方可控制传送和/或存储如何进行,以及如果有则可维持什么级别的存储或存储的持续时间。
在此描述的各种技术的各实现可以实现为数字电子电路,或计算机硬件、固件、软件或它们的组合(例如,被配置成执行指令以执行各种功能的装置)。
实现可被实现为包含在诸如纯传播信号等纯信号中的计算机程序。此类实现在此可被称为经由“计算机可读传输介质”来实现。
或者,各实现可被实现为被包含在机器可用或机器可读存储设备(例如诸如通用串行总线(USB)存储设备等磁性或数字介质、磁带、硬盘驱动、紧致盘、数字视频盘(DVD)等等)中或在被传播的信号中)中的计算机程序,用于由数据处理设备(例如,可编程的处理器、计算机或多个计算机)的操作执行或控制数据处理设备的操作。此类实现在此可被称为经由“计算机可读存储介质”或“计算机可读存储设备”实现并由此不同于作为诸如纯传播信号等纯信号的实现。
诸如以上描述的计算机程序等的计算机程序能以任何形式的编程语言(包括编译、解释或机器语言)撰写,并能以任何形式部署,包括作为独立程序或作为模块、组件、子例程、或其他适于在计算环境中使用的单元。计算机程序可被有形地体现为机器可使用或机器可读存储设备(例如,计算机可读介质)上的可执行代码(例如,可执行指令)。可实现以上讨论的技术的计算机程序可被部署以在一个站点处的一个计算机或多个计算机上执行或跨多个站点分布并通过通信网络相互连接。
各方法步骤可由一个或多个可编程处理器来执行,该一个或多个可编程处理器执行计算机程序以便通过对输入数据进行操作并生成输出来执行功能。一个或多个可编程处理器可并行地执行指令,和/或可被以分布式配置来安排以进行分布式处理。本文讨论的示例功能还可由一个或多个硬件逻辑组件执行,且装置可至少部分被实现为一个或多个硬件逻辑组件。例如,不作为限制,可使用的硬件逻辑组件的说明性类型可包括:现场可编程门阵列(FPGA)、程序专用集成电路(ASIC)、程序专用标准产品(ASSP)、片上系统(SOC)系统以及复杂可编程逻辑器件(CPLD)等。
适于执行计算机程序的处理器可包括,作为示例,通用和专用微处理器以及任何类型的数字计算机的任意一个或多个处理器。一般地,处理器接收来自只读存储器或随机存取存储器或两者的指令和数据。计算机的元件可包括用于执行指令的至少一个处理器以及用于存储指令和数据的一个或多个存储器设备。一般地,计算机还可包括或可被操作地耦合以接收来自一个或多个大容量存储设备(例如,磁性、磁光盘、或光盘)的数据或将数据发送到大容量存储设备以供存储数据或两者。适于实现计算机程序指令和数据的信息载体包括所有形式的非易失存储器,包括,作为示例,半导体存储设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内置硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或被合并到专用逻辑电路中。
为了提供与用户的交互,各实现可在具有用于向用户显示信息的显示设备(例如,阴极射线管(CRT)、液晶显示器(LCD)、或等离子监视器)以及用户能借此向计算机提供输入的键盘和定点设备(例如,鼠标或追踪球)的计算机上实现。其他种类的设备也能被用以提供与用户的交互;例如,向用户提供的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈。例如,可经由任何形式的感官输出来提供输出,这些感官输出包括(但不限于)视觉输出(例如,视觉手势、视频输出)、音频输出(例如,语音、设备声音)、触觉输出(例如,触摸、设备移动)、温度、气味等。
此外,来自用户的输入可按照任何形式来接收,包括声音、语音或触觉输入。例如,可经由任何形式的感官输入来从用户接收输入,这些感官输入包括(但不限于)视觉输入(例如,手势、视频输入)、音频输入(例如,语音、设备声音)、触觉输入(例如,触摸、设备移动)、温度、气味等。
此外,自然用户界面(NUI)可被用于与用户接口。在这一上下文中,“NUI”可指的是使得用户能够以“自然”方式与设备交互而无需受诸如鼠标、键盘、遥控等输入设备强加的人为约束的任何接口技术。
NUI技术的示例可包括依赖于语音识别、触摸和指示笔识别、屏幕上和屏幕附近的姿势识别、空中姿势、头部和眼睛跟踪、话音和语音、视觉、触摸、姿势、以及机器智能的那些技术。示例NUI技术包括但不限于:触敏显示、话音和语音识别、意图和目的理解、使用深度相机(如立体相机系统、红外相机系统、RGB(红、绿、蓝)相机系统及其组合)的运动姿势检测、使用加速度计/陀螺仪的运动姿势检测、面部识别、3D显示、头部、眼睛和注视跟踪、浸入式增强现实和虚拟现实系统,所有这些都提供更自然的接口,以及用于使用电场传感电极(如脑电图仪(EEG)和相关技术)的传感大脑活动的技术。
实现可在包括后端组件(例如,作为数据服务器)的计算系统中实现、或可在包括中间软件层组件(例如,应用服务器)的计算系统中实现、或可在包括前端组件(例如,具有用户借此能与实现交互的图形用户界面或web浏览器的客户端计算机)的计算系统中实现、或可在包括这样的后端、中间软件层或前端组件的任意组合的计算系统中实现。各组件可通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(LAN)和广域网(WAN),例如因特网。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。虽然所描述的各实现的特定特征已经被如此处所描述地解说,但是许多改良、替代、改变与等同物现将由本领域技术人员进行。因此,应当理解,所附权利要求旨在覆盖落入各实施例的范围之内的所有这些改良和改变。
Claims (10)
1.一种渐进式分析系统,包括:
包括至少一个处理器的设备,所述设备包括分布式渐进式分析引擎,所述分布式渐进式分析引擎包括被有形地体现在计算机可读存储介质上以供所述至少一个处理器执行的指令,所述分布式渐进式分析引擎包括:
被配置成获取多个数据项的数据项获取组件,所述多个数据项用指示与相应数据项的时间处理进度相关联的进度点的进度标记来注释,其中获取用进度标记注释的所述多个数据项包括接收包括数据元组的多个数据项,所述数据元组是用户用指示所述数据元组进入和退出所述渐进式处理中所包括的各计算部分的逻辑点的相应进度区间来扩充的;以及
被配置成发起对多个设备上的所述多个数据项的大规模并行的确定性渐进式处理的渐进式分布式处理管理器,所述进度标记指示所述多个数据项中的哪些数据项将被结合到所述渐进式处理的结果中,所述进度标记还指示相应数据项被结合到所述结果中的排序,
由此所述渐进式分析系统基于将所述多个数据项的一部分结合到所述结果中来生成早期结果,并且随着所述多个数据项中的更多数据项被结合到所述结果中渐进式地细化所述结果。
2.如权利要求1所述的系统,其特征在于,进一步包括:
映射组件,所述映射组件被配置成发起对所述多个数据项的集合的进度知晓批处理以及所述多个数据项的进度知晓数据流动,以作为所述渐进式处理中所包括的进度知晓映射化简操作的一部分。
3.如权利要求2所述的系统,其特征在于,进一步包括:
被配置成发起使用所述多个数据项的集合的分组的免排序的渐进式数据重排的渐进式数据重排组件,所述分组基于所述集合中所包括的相应数据项的进度标记。
4.如权利要求2所述的系统,其特征在于,进一步包括:
被配置成发起所述多个数据项的各部分的进度知晓合并的进度知晓合并组件。
5.如权利要求4所述的系统,其特征在于,进一步包括:
进度知晓化简器组件,所述进度知晓化简器组件被配置成在化简器阶段发起所述进度知晓合并组件对所述多个数据项的各部分的进度知晓合并,以作为被包括在所述渐进式处理中的进度知晓映射化简操作的一部分。
6.如权利要求5所述的系统,其特征在于:
所述映射组件被配置成基于用于向作业跟踪器指示流水线化进度批次中的各个进度批次的可用性的信令机制来将所述进度批次从所述映射组件流水线化到所述进度知晓化简器组件。
7.如权利要求5所述的系统,其特征在于:
所述进度知晓化简器组件包括被配置成执行无锁存储器中并发入队和出队操作的阻塞并发队列(BCQ)。
8.一种渐进式分析方法,包括:
获取多个数据项,所述多个数据项用指示与相应数据项的时间处理进度相关联的进度点的进度标记来注释,包括接收包括数据元组的多个数据项,所述数据元组是用户用指示所述数据元组进入和退出所述渐进式处理中所包括的各计算部分的逻辑点的相应进度区间来扩充的;以及
经由设备处理器来发起对多个设备上的所述多个数据项的大规模并行的确定性渐进式处理,所述进度标记指示所述多个数据项中的哪些数据项将被结合到所述渐进式处理的结果中,所述进度标记还指示相应数据项被结合到所述结果中的排序,
由此所述渐进式分析方法基于将所述多个数据项的一部分结合到所述结果中来生成早期结果,并且随着所述多个数据项中的更多数据项被结合到所述结果中渐进式地细化所述结果。
9.一种渐进式分析系统,包括:
用于获取多个数据项的装置,所述多个数据项用指示与相应数据项的时间处理进度相关联的进度点的进度标记来注释,包括用于接收包括数据元组的多个数据项的装置,所述数据元组是用户用指示所述数据元组进入和退出所述渐进式处理中所包括的各计算部分的逻辑点的相应进度区间来扩充的;以及
用于经由设备处理器来发起对多个设备上的所述多个数据项的大规模并行的确定性渐进式处理的装置,所述进度标记指示所述多个数据项中的哪些数据项将被结合到所述渐进式处理的结果中,所述进度标记还指示相应数据项被结合到所述结果中的排序,
由此所述渐进式分析系统基于将所述多个数据项的一部分结合到所述结果中来生成早期结果,并且随着所述多个数据项中的更多数据项被结合到所述结果中渐进式地细化所述结果。
10.一种具有指令的计算机可读存储介质,所述指令在被执行时使机器执行如权利要求8所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/915,632 | 2013-06-12 | ||
US13/915,632 US9514214B2 (en) | 2013-06-12 | 2013-06-12 | Deterministic progressive big data analytics |
PCT/US2014/041450 WO2014200877A1 (en) | 2013-06-12 | 2014-06-09 | Deterministic progressive big data analytics |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105474204A CN105474204A (zh) | 2016-04-06 |
CN105474204B true CN105474204B (zh) | 2019-09-03 |
Family
ID=51134370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480033884.9A Active CN105474204B (zh) | 2013-06-12 | 2014-06-09 | 确定性的渐进式大数据分析 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9514214B2 (zh) |
EP (1) | EP3008642A1 (zh) |
CN (1) | CN105474204B (zh) |
WO (1) | WO2014200877A1 (zh) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9436740B2 (en) | 2012-04-04 | 2016-09-06 | Microsoft Technology Licensing, Llc | Visualization of changing confidence intervals |
US9501550B2 (en) * | 2012-04-18 | 2016-11-22 | Renmin University Of China | OLAP query processing method oriented to database and HADOOP hybrid platform |
US9275333B2 (en) | 2012-05-10 | 2016-03-01 | Eugene S. Santos | Augmented knowledge base and reasoning with uncertainties and/or incompleteness |
US9607045B2 (en) | 2012-07-12 | 2017-03-28 | Microsoft Technology Licensing, Llc | Progressive query computation using streaming architectures |
WO2014188500A1 (ja) | 2013-05-20 | 2014-11-27 | 富士通株式会社 | データストリーム処理の並列化プログラム、及びデータストリーム処理の並列化システム |
US9514214B2 (en) | 2013-06-12 | 2016-12-06 | Microsoft Technology Licensing, Llc | Deterministic progressive big data analytics |
US9836519B2 (en) | 2013-09-20 | 2017-12-05 | Oracle International Corporation | Densely grouping dimensional data |
US9990398B2 (en) * | 2013-09-20 | 2018-06-05 | Oracle International Corporation | Inferring dimensional metadata from content of a query |
US9740718B2 (en) | 2013-09-20 | 2017-08-22 | Oracle International Corporation | Aggregating dimensional data using dense containers |
US20150169622A1 (en) * | 2013-12-06 | 2015-06-18 | Zaius, Inc. | System and method for storing and retrieving data in different data spaces |
US9697262B2 (en) | 2013-12-17 | 2017-07-04 | Microsoft Technology Licensing, Llc | Analytical data processing engine |
US10459767B2 (en) * | 2014-03-05 | 2019-10-29 | International Business Machines Corporation | Performing data analytics utilizing a user configurable group of reusable modules |
US9495405B2 (en) * | 2014-04-28 | 2016-11-15 | International Business Machines Corporation | Big data analytics brokerage |
US9613127B1 (en) * | 2014-06-30 | 2017-04-04 | Quantcast Corporation | Automated load-balancing of partitions in arbitrarily imbalanced distributed mapreduce computations |
JP6442951B2 (ja) * | 2014-09-25 | 2018-12-26 | 富士通株式会社 | データ処理方法、データ処理プログラム及びデータ処理装置 |
US10037187B2 (en) | 2014-11-03 | 2018-07-31 | Google Llc | Data flow windowing and triggering |
US10303726B2 (en) * | 2014-11-13 | 2019-05-28 | Sap Se | Decoupling filter injection and evaluation by forced pushdown of filter attributes in calculation models |
US9923726B2 (en) * | 2014-12-03 | 2018-03-20 | International Business Machines Corporation | RDMA transfers in mapreduce frameworks |
CN106294381A (zh) * | 2015-05-18 | 2017-01-04 | 中兴通讯股份有限公司 | 大数据计算的方法及系统 |
CA2938472C (en) * | 2015-08-07 | 2019-01-15 | Tata Consultancy Services Limited | System and method for smart alerts |
US10642831B2 (en) | 2015-10-23 | 2020-05-05 | Oracle International Corporation | Static data caching for queries with a clause that requires multiple iterations to execute |
US10268521B2 (en) * | 2016-01-22 | 2019-04-23 | Samsung Electronics Co., Ltd. | Electronic system with data exchange mechanism and method of operation thereof |
US10496643B2 (en) * | 2016-02-08 | 2019-12-03 | Microsoft Technology Licensing, Llc | Controlling approximations of queries |
US10896178B2 (en) | 2016-03-30 | 2021-01-19 | Microsoft Technology Licensing, Llc | High performance query processing and data analytics |
US10348576B2 (en) | 2016-04-29 | 2019-07-09 | Microsoft Technology Licensing, Llc | Modeling resiliency strategies for streaming queries |
US10482088B2 (en) * | 2016-05-04 | 2019-11-19 | Eugene S. Santos | Augmented exploration for big data and beyond |
US10178161B2 (en) | 2016-05-11 | 2019-01-08 | Microsoft Technology Licensing, Llc | Digital signal processing over data streams |
US10740328B2 (en) | 2016-06-24 | 2020-08-11 | Microsoft Technology Licensing, Llc | Aggregate-query database system and processing |
US10530661B2 (en) | 2016-06-30 | 2020-01-07 | At&T Intellectual Property I, L.P. | Systems and methods for modeling networks |
US10223475B2 (en) | 2016-08-31 | 2019-03-05 | At&T Intellectual Property I, L.P. | Database evaluation of anchored length-limited path expressions |
CN106383704B (zh) * | 2016-08-31 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 进度条数据处理的方法和装置 |
US10685063B2 (en) | 2016-09-16 | 2020-06-16 | At&T Intellectual Property I, L.P. | Time-based querying of graph databases |
US10621236B2 (en) | 2016-09-16 | 2020-04-14 | At&T Intellectual Property I, L.P. | Concept based querying of graph databases |
US10552435B2 (en) | 2017-03-08 | 2020-02-04 | Microsoft Technology Licensing, Llc | Fast approximate results and slow precise results |
US10896169B2 (en) | 2017-05-12 | 2021-01-19 | International Business Machines Corporation | Distributed system, computer program product and method |
US11194630B2 (en) | 2017-05-30 | 2021-12-07 | Microsoft Technology Licensing, Llc | Grouped shuffling of partition vertices |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
US10956125B2 (en) | 2017-12-21 | 2021-03-23 | International Business Machines Corporation | Data shuffling with hierarchical tuple spaces |
CN108540407A (zh) * | 2018-03-01 | 2018-09-14 | 山东大学 | 一种大数据平台中Spark Streaming接收器动态配置方法及装置 |
CN109889570B (zh) * | 2019-01-04 | 2021-04-27 | 四川虹美智能科技有限公司 | 一种设备信息分发系统及方法 |
US11222018B2 (en) | 2019-09-09 | 2022-01-11 | Oracle International Corporation | Cache conscious techniques for generation of quasi-dense grouping codes of compressed columnar data in relational database systems |
US20210390618A1 (en) * | 2020-06-16 | 2021-12-16 | The Financial Risk Group Inc. | Financial Risk Assessment |
US11216464B1 (en) | 2021-03-18 | 2022-01-04 | Snowflake Inc. | Multidimensional two-sided interval joins on distributed hash-based-equality-join infrastructure |
CN113176937B (zh) * | 2021-05-21 | 2023-09-12 | 抖音视界有限公司 | 任务处理方法、装置和电子设备 |
US20240012866A1 (en) * | 2022-07-07 | 2024-01-11 | Shopify Inc. | Queuing analytics events before consent |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1695136A (zh) * | 2002-12-21 | 2005-11-09 | 国际商业机器公司 | 用于可外化推理部件的系统及方法 |
CN101957832A (zh) * | 2009-07-16 | 2011-01-26 | Sap股份公司 | 对于事件流数据管理的统一的窗口支持 |
Family Cites Families (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7966078B2 (en) | 1999-02-01 | 2011-06-21 | Steven Hoffberg | Network media appliance system and method |
US6503195B1 (en) | 1999-05-24 | 2003-01-07 | University Of North Carolina At Chapel Hill | Methods and systems for real-time structured light depth extraction and endoscope using real-time structured light depth extraction |
US8090730B2 (en) | 2001-12-04 | 2012-01-03 | University Of Southern California | Methods for fast progressive evaluation of polynomial range-sum queries on real-time datacubes |
AU2003253626A1 (en) | 2002-06-07 | 2003-12-22 | University Of North Carolina At Chapel Hill | Methods and systems for laser based real-time structured light depth extraction |
US7383246B2 (en) | 2003-10-31 | 2008-06-03 | International Business Machines Corporation | System, method, and computer program product for progressive query processing |
US20060106793A1 (en) | 2003-12-29 | 2006-05-18 | Ping Liang | Internet and computer information retrieval and mining with intelligent conceptual filtering, visualization and automation |
US7182465B2 (en) | 2004-02-25 | 2007-02-27 | The University Of North Carolina | Methods, systems, and computer program products for imperceptibly embedding structured light patterns in projected color images for display on planar and non-planar surfaces |
US7650331B1 (en) | 2004-06-18 | 2010-01-19 | Google Inc. | System and method for efficient large-scale data processing |
US7487145B1 (en) | 2004-06-22 | 2009-02-03 | Google Inc. | Method and system for autocompletion using ranked results |
US7836044B2 (en) | 2004-06-22 | 2010-11-16 | Google Inc. | Anticipated query generation and processing in a search engine |
US8296654B2 (en) | 2004-07-01 | 2012-10-23 | Spotfire Ab | Automatic guide for data analysis |
US20070016612A1 (en) | 2005-07-11 | 2007-01-18 | Emolecules, Inc. | Molecular keyword indexing for chemical structure database storage, searching, and retrieval |
US7536396B2 (en) | 2006-03-21 | 2009-05-19 | At&T Intellectual Property Ii, L.P. | Query-aware sampling of data streams |
US7490110B2 (en) | 2006-03-24 | 2009-02-10 | International Business Machines Corporation | Predictable query execution through early materialization |
US7877381B2 (en) | 2006-03-24 | 2011-01-25 | International Business Machines Corporation | Progressive refinement of a federated query plan during query execution |
US7728868B2 (en) | 2006-08-02 | 2010-06-01 | Inneroptic Technology, Inc. | System and method of providing real-time dynamic imagery of a medical procedure site using multiple modalities |
US8201107B2 (en) | 2006-09-15 | 2012-06-12 | Emc Corporation | User readability improvement for dynamic updating of search results |
WO2008039741A2 (en) | 2006-09-25 | 2008-04-03 | Mark Business Intelligence Systems, Llc. | System and method for project process and workflow optimization |
US8584046B2 (en) | 2007-04-09 | 2013-11-12 | Microsoft Corporation | Visualizing differences in similarity metrics of hierarchies |
JP4980148B2 (ja) | 2007-06-07 | 2012-07-18 | 株式会社日立製作所 | 文書検索方法 |
US7890444B2 (en) | 2007-09-19 | 2011-02-15 | International Business Machines Corporation | Visualization of data availability and risk |
US8812487B2 (en) | 2008-03-06 | 2014-08-19 | Cisco Technology, Inc. | Addition and processing of continuous SQL queries in a streaming relational database management system |
US7882138B1 (en) | 2008-03-27 | 2011-02-01 | Sonoa Networks India (PVT) Ltd. | Progressive evaluation of predicate expressions in streaming XPath processor |
US9002100B2 (en) | 2008-04-02 | 2015-04-07 | Xerox Corporation | Model uncertainty visualization for active learning |
JP5198929B2 (ja) | 2008-04-25 | 2013-05-15 | 株式会社日立製作所 | ストリームデータ処理方法及び計算機システム |
US8446412B2 (en) | 2008-06-26 | 2013-05-21 | Microsoft Corporation | Static visualization of multiple-dimension data trends |
US8358308B2 (en) | 2008-06-27 | 2013-01-22 | Microsoft Corporation | Using visual techniques to manipulate data |
JP5337447B2 (ja) | 2008-10-28 | 2013-11-06 | 株式会社日立製作所 | ストリームデータ処理方法、及びシステム |
US8572068B2 (en) | 2009-02-02 | 2013-10-29 | Hewlett-Packard Development Company, L.P. | Evaluation of set of representative query performance using robustness mapping |
US8690776B2 (en) | 2009-02-17 | 2014-04-08 | Inneroptic Technology, Inc. | Systems, methods, apparatuses, and computer-readable media for image guided surgery |
EP2226752A1 (de) | 2009-03-03 | 2010-09-08 | Siemens Aktiengesellschaft | Verfahren zur rechnergestützten Visualisierung des Risikostatus in einem technischen Projekt |
US20100241893A1 (en) * | 2009-03-18 | 2010-09-23 | Eric Friedman | Interpretation and execution of a customizable database request using an extensible computer process and an available computing environment |
US20110084967A1 (en) | 2009-10-09 | 2011-04-14 | International Business Machines Corporation | Visualization of Datasets |
US20130030860A1 (en) | 2009-10-30 | 2013-01-31 | Fluor Technologies Corporation | Managing inspection, test, analys, and acceptance criteria (itaac) activities, systems and methods |
US20110310112A1 (en) | 2010-03-31 | 2011-12-22 | Alexandre Zolotovitski | Method for statistical visualization of client service events |
US8484243B2 (en) | 2010-05-05 | 2013-07-09 | Cisco Technology, Inc. | Order-independent stream query processing |
US8290936B2 (en) | 2010-08-17 | 2012-10-16 | International Business Machines Corporation | Executing a query plan with display of intermediate results |
US8326821B2 (en) | 2010-08-25 | 2012-12-04 | International Business Machines Corporation | Transforming relational queries into stream processing |
US8620945B2 (en) | 2010-09-23 | 2013-12-31 | Hewlett-Packard Development Company, L.P. | Query rewind mechanism for processing a continuous stream of data |
US9208217B2 (en) | 2010-10-06 | 2015-12-08 | Linguamatics Ltd. | Providing users with a preview of text mining results from queries over unstructured or semi-structured text |
US8484244B2 (en) | 2010-12-17 | 2013-07-09 | Fanhattan Llc | Forecasting an availability of a media content item |
US8954967B2 (en) * | 2011-05-31 | 2015-02-10 | International Business Machines Corporation | Adaptive parallel data processing |
US8862577B2 (en) | 2011-08-15 | 2014-10-14 | Hewlett-Packard Development Company, L.P. | Visualizing sentiment results with visual indicators representing user sentiment and level of uncertainty |
US20130117257A1 (en) | 2011-11-03 | 2013-05-09 | Microsoft Corporation | Query result estimation |
US9201164B2 (en) | 2011-11-15 | 2015-12-01 | Chevron U.S.A. Inc. | System and method of using spatially independent subsets of data to calculate property distribution uncertainty of spatially correlated reservoir data |
JP5919825B2 (ja) * | 2012-01-05 | 2016-05-18 | 富士通株式会社 | データ処理方法、分散処理システムおよびプログラム |
US20130194271A1 (en) | 2012-01-30 | 2013-08-01 | Sap Ag | Visualization of Uncertain Times Series |
US8983936B2 (en) | 2012-04-04 | 2015-03-17 | Microsoft Corporation | Incremental visualization for structured data in an enterprise-level data store |
US9436740B2 (en) | 2012-04-04 | 2016-09-06 | Microsoft Technology Licensing, Llc | Visualization of changing confidence intervals |
CN103379114B (zh) * | 2012-04-28 | 2016-12-14 | 国际商业机器公司 | 用于在MapReduce系统中保护隐私数据的方法和装置 |
US9607045B2 (en) | 2012-07-12 | 2017-03-28 | Microsoft Technology Licensing, Llc | Progressive query computation using streaming architectures |
US8996693B2 (en) * | 2012-09-17 | 2015-03-31 | Nokia Corporation | Method and apparatus for providing dynamic stream processing of data based on static analytics |
US9563663B2 (en) | 2012-09-28 | 2017-02-07 | Oracle International Corporation | Fast path evaluation of Boolean predicates |
US9514214B2 (en) | 2013-06-12 | 2016-12-06 | Microsoft Technology Licensing, Llc | Deterministic progressive big data analytics |
-
2013
- 2013-06-12 US US13/915,632 patent/US9514214B2/en active Active
-
2014
- 2014-06-09 WO PCT/US2014/041450 patent/WO2014200877A1/en active Application Filing
- 2014-06-09 EP EP14736174.5A patent/EP3008642A1/en not_active Withdrawn
- 2014-06-09 CN CN201480033884.9A patent/CN105474204B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1695136A (zh) * | 2002-12-21 | 2005-11-09 | 国际商业机器公司 | 用于可外化推理部件的系统及方法 |
CN101957832A (zh) * | 2009-07-16 | 2011-01-26 | Sap股份公司 | 对于事件流数据管理的统一的窗口支持 |
Non-Patent Citations (3)
Title |
---|
Beyond online aggregation;JOOS-HENDRI K BOSE ET AL;《PROCEEDINGS OF THE 2010 WORKSHOP ON MASSIVE DATA ANALYTICS ON THE CLOUD》;20100426;第1-4页 |
MapReduce Online;TYSON CONDIE ET AL;《NSDI’10 PROCEEDINGS OF THE 7TH USENIX CONFERENCE ON NETWORKED SYSTEMS DESIGN AND IMPLEMENTATION》;20100428;第2-8页 |
SIMPLE,FAST,AND PRACTICAL NON-BLOCKING AND BLOCKING CONCURRENT QUEUE ALGORITHMS;MICHAEL M M ET AL;《PROCEEDINGS OF THE 15TH ANNUAL SYMPOSIUM ON PRINCIPLES OF DISTRIBUTED COMPUTING》;19961231;第267-275页 |
Also Published As
Publication number | Publication date |
---|---|
CN105474204A (zh) | 2016-04-06 |
WO2014200877A1 (en) | 2014-12-18 |
US9514214B2 (en) | 2016-12-06 |
US20140372438A1 (en) | 2014-12-18 |
EP3008642A1 (en) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105474204B (zh) | 确定性的渐进式大数据分析 | |
JP6887544B2 (ja) | イベント処理のための動的に型付けされたビッグデータによるイベントの充実化 | |
US10713249B2 (en) | Managing snapshots and application state in micro-batch based event processing systems | |
US10217256B2 (en) | Visually exploring and analyzing event streams | |
US11503107B2 (en) | Integrating logic in micro batch based event processing systems | |
WO2020220216A1 (en) | Search time estimate in data intake and query system | |
Khalifa et al. | The six pillars for building big data analytics ecosystems | |
WO2018052907A1 (en) | Data serialization in a distributed event processing system | |
WO2015085103A1 (en) | Pattern matching across multiple input data streams | |
US11169999B2 (en) | Combined sort and aggregation | |
US11507585B2 (en) | Heartbeat propagation in a distributed stream processing system | |
Dhavapriya et al. | Big data analytics: challenges and solutions using Hadoop, map reduce and big table |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |