实现基于SQL的流式数据处理引擎的方法、装置、设备制造方法及图纸

技术编号:20680788 阅读:32 留言:0更新日期:2019-03-27 18:50
本申请公开一种实现基于SQL的流式数据处理引擎的方法、装置、设备。该方法包括:获得SQL语句;对SQL语句进行词法分析,获得SQL语句的词法分析结果;对词法分析结果进行语法分析,获得SQL语句的语法分析树;根据语法分析树,生成待处理流式数据的统计指标,其中统计指标包括多个维度,多个维度包括时间序列维度;以及根据统计指标及语法分析树中定义的函数,对流式数据按时间粒度进行处理。该方法能够以标准的SQL实现基于流式数据的指标粒度化处理。

【技术实现步骤摘要】
实现基于SQL的流式数据处理引擎的方法、装置、设备
本专利技术涉及大数据处理
,具体而言,涉及一种实现基于SQL的流式数据处理引擎的方法、装置、设备及可读存储介质。
技术介绍
数据对象是个完整的实体,每个对象都有唯一的标识,每个对象都有时间序列上的完整状态。并且由于每个行业都有各自的特殊性,因此每个对象都有行业定义的操作方式,也即每个对象都有在行业当中的维度。以统计报表为例,统计报表一般的处理方式是在数据仓库里根据业务需求编写复杂的统计SQL(StructuredQueryLanguage,结构化查询语言),去完成各种不同的报表查询。这样的报表没有统一的粒度,没有统一的规则,完全依赖于需求及实现的SQL。如果是实时流式数据,必须先将数据存储到统一的数据仓库里,才可以根据事先编写好的SQL去计算。该过程需要涉及大量的计算能力,不可能做到实时数据处理。因此,如何把产生的行业数据抽象成每个对象维度的统计指标,并根据统计指标把数据计算为指标数据,从而可以做到对于实时大数据的及时处理,成为亟待解决的一个问题。在所述
技术介绍
部分公开的上述信息仅用于加强对本专利技术的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现思路
本专利技术提供一种实现基于SQL的流式数据处理引擎的方法、装置、设备及可读存储介质,能够以标准的SQL实现基于流式数据的指标粒度化处理。本专利技术的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本专利技术的实践而习得。根据本专利技术的一方面,提供一种实现基于SQL的流式数据处理引擎的方法,包括:获得SQL语句;对SQL语句进行词法分析,获得SQL语句的词法分析结果;对词法分析结果进行语法分析,获得SQL语句的语法分析树;根据语法分析树,生成待处理流式数据的统计指标,其中统计指标包括多个维度,多个维度包括时间序列维度;以及根据统计指标及语法分析树中定义的函数,对流式数据按时间粒度进行处理。根据本专利技术的一实施方式,上述方法还包括:将处理后的结果和统计指标合并输出并存储至语义分析树中所制定的目标结果中。根据本专利技术的一实施方式,获得SQL语句包括:接收提交的SQL语句;将提交的SQL语句存储至共享存储系统中;以及基于SQL引擎定期同步共享存储系统,加载提交的SQL语句,以获得SQL语句。根据本专利技术的一实施方式,根据语法分析树,生成待处理流式数据的统计指标包括:获取SQL语法元数据;以及获取GroupBy函数的组维度,以生成统计指标中除时间序列维度中的其他维度。根据本专利技术的一实施方式,语法分析树中定义的函数包括:SQL标准函数及基于SQL语法的自定义函数。根据本专利技术的一实施方式,上述方法基于JVM、SPARK或STORM平台执行根据统计指标及语法分析树中定义的函数,对流式数据按时间粒度进行处理。根据本专利技术的一实施方式,在根据统计指标及语法分析树中定义的函数,对流式数据按时间粒度进行处理之前,上述方法还包括:根据语法分析树中的源流式类型及流式配置信息,启动消费流式数据的客户端API。根据本专利技术的再一方面,提供一种实现基于SQL的流式数据处理引擎的装置,包括:语句获取模块,用于获得SQL语句;词法分析模块,用于对SQL语句进行词法分析,获得SQL语句的词法分析结果;语法分析模块,用于对词法分析结果进行语法分析,获得SQL语句的语法分析树;指标生成模块,用于根据语法分析树,生成待处理流式数据的统计指标,其中统计指标包括多个维度,多个维度包括时间序列维度;以及数据处理模块,用于根据统计指标及语法分析树中定义的函数,对流式数据按时间粒度进行处理。。根据本专利技术的再一方面,提供一种计算机设备,包括:存储器、处理器及存储在存储器中并可在处理器中运行的可执行指令,其特征在于,处理器执行可执行指令时实现如上述任一种方法。根据本专利技术的再一方面,提供一种计算机可读存储介质,其上存储有计算机可执行指令,其特征在于,可执行指令被处理器执行时实现如上述任一种方法。根据本专利技术实施方式的实现基于SQL的流式数据处理引擎的方法,通过对SQL进行解析生成语法分析树,根据语法分析树生成针对待处理数据对象的统计指标,并在其中增加时间序列维度,从而能够以标准的SQL实现基于流式数据的指标粒度化处理。此外,根据一些实施例,本专利技术实施方式的实现基于SQL的流式数据处理引擎的方法可以应用于多种平台上,如JVM、SPARK、STORM等,从而提供原生的分布式能力。应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本专利技术。附图说明通过参照附图详细描述其示例实施例,本专利技术的上述和其它目标、特征及优点将变得更加显而易见。图1是根据一示例性实施方式示出的一种实现基于SQL的流式数据处理引擎的方法的流程图。图2是根据一示例性实施方式示出的另一种实现基于SQL的流式数据处理引擎的方法的流程图。图3是根据一示例性实施方式示出的再一种实现基于SQL的流式数据处理引擎的方法的流程图。图4是根据一示例性实施方式示出的再一种实现基于SQL的流式数据处理引擎的方法的流程图。图5是根据一示例性实施方式示出的再一种实现基于SQL的流式数据处理引擎的方法的流程图。图6是根据一示例性实施方式示出的一种实现基于SQL的流式数据处理引擎的装置的框图。图7是根据一示例性实施方式示出的一种计算机系统的结构示意图。具体实施方式现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本专利技术将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本专利技术的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本专利技术的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本专利技术的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现或者操作以避免喧宾夺主而使得本专利技术的各方面变得模糊。图1是根据一示例性实施方式示出的一种实现基于SQL的流式数据处理引擎的方法的流程图。如图1所示,方法10包括:在步骤S102中,获得SQL语句。在步骤S104中,对SQL语句进行词法分析,获得SQL语句的词法分析结果。词法分析的过程是将字符聚集为单词或者词法符号(token)的过程。这和我们的大脑阅读英文文本的过程相类似,我们并不是一个字母(相当于字符)一个字母的去阅读一个句子,而是将句子看做由多个单词组成,先通过将字母聚集为单词,然后获取每个单词的意义,从而理解句子的意义。在步骤S106中,对词法分析结果进行语法分析,获得SQL语句的语法分析树(parsetree)。在这个过程中,输入的词法分析结果(即词法符号)被消费以识别语句结构,即为赋值语句。经过语法分析,获得SQL语句的语法分析树。其中,语法分析树的每个中间结点都标记着非终结符,每个叶子结点都标记着终结符。语法分析树的每一棵子树都描述了句子中一个抽象的实例。在本文档来自技高网...

【技术保护点】
1.一种实现基于SQL的流式数据处理引擎的方法,其特征在于,包括:获得SQL语句;对所述SQL语句进行词法分析,获得所述SQL语句的词法分析结果;对所述词法分析结果进行语法分析,获得所述SQL语句的语法分析树;根据所述语法分析树,生成待处理流式数据的统计指标,其中所述统计指标包括多个维度,所述多个维度包括时间序列维度;以及根据所述统计指标及所述语法分析树中定义的函数,对所述流式数据按时间粒度进行处理。

【技术特征摘要】
1.一种实现基于SQL的流式数据处理引擎的方法,其特征在于,包括:获得SQL语句;对所述SQL语句进行词法分析,获得所述SQL语句的词法分析结果;对所述词法分析结果进行语法分析,获得所述SQL语句的语法分析树;根据所述语法分析树,生成待处理流式数据的统计指标,其中所述统计指标包括多个维度,所述多个维度包括时间序列维度;以及根据所述统计指标及所述语法分析树中定义的函数,对所述流式数据按时间粒度进行处理。2.根据权利要求1所述的方法,其特征在于,还包括:将处理后的结果和所述统计指标合并输出并存储至所述语义分析树中所制定的目标结果中。3.根据权利要求1或2所述的方法,其特征在于,获得SQL语句包括:接收提交的SQL语句;将所述提交的SQL语句存储至共享存储系统中;以及基于SQL引擎定期同步所述共享存储系统,加载所述提交的SQL语句,以获得所述SQL语句。4.根据权利要求1或2所述的方法,其特征在于,根据所述语法分析树,生成待处理流式数据的统计指标包括:获取SQL语法元数据;以及获取GroupBy函数的组维度,以生成所述统计指标中除时间序列维度中的其他维度。5.根据权利要求1或2所述的方法,其特征在于,所述语法分析树中定义的函数包括:SQL标准函数及基于SQL语法的自定义函数。6.根据权利要求1或2所述的方法,其特征在于,基于JVM、...

【专利技术属性】
技术研发人员:宋永忠
申请(专利权)人:北京京东金融科技控股有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1