CN106776639B - 基于结构化查询语言的数据处理方法及数据处理装置 - Google Patents
基于结构化查询语言的数据处理方法及数据处理装置 Download PDFInfo
- Publication number
- CN106776639B CN106776639B CN201510824248.4A CN201510824248A CN106776639B CN 106776639 B CN106776639 B CN 106776639B CN 201510824248 A CN201510824248 A CN 201510824248A CN 106776639 B CN106776639 B CN 106776639B
- Authority
- CN
- China
- Prior art keywords
- data processing
- query
- operator
- query operator
- structured
- 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
Images
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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于结构化查询语言的数据处理方法,其包括接收结构化查询语言脚本,其中结构化查询语言脚本包括表格引用编码以及表格操作编码;通过语法解析,将结构化查询语言脚本转换为具有多个操作节点的抽象语法树;根据操作节点的功能,将抽象语法树转换为具有多个查询算子的算子树;其中每个查询算子包括用于执行同一操作指令的多个所述操作节点;以及根据查询算子的类型,调用实时处理系统中相应的数据处理模块对所述查询算子进行数据处理。本发明还提供一种数据处理装置。本发明的基于结构化查询语言的数据处理方法及数据处理装置通过结构化查询语言脚本进行编码的输入以及转换,有效的降低了程序开发的人力成本以及沟通成本。
Description
技术领域
本发明涉及数据处理领域,特别是涉及一种基于结构化查询语言的数据处理方法及数据处理装置。
背景技术
Apache Storm的网络拓扑程序可提供多种语言的编程接口,理论上任何实时计算需求均可通过开发该网络拓扑程序来实现。即对于任何一个实时计算内容来说,均可开发一个独立的网络拓扑程序来实现。
但是现有技术开发出的网络拓扑程序的开发和维护成本较高,如用户对实时计算需求进行任何改动,编程技术人员就需要对相应的网络拓扑程序进行重新编码,并且在重新编码中容易引入其他编码问题。
同时实时计算需求的用户往往是没有编码经验的数据分析人员,这样每个网络拓扑程序的设定均需要编程技术人员和数据分析人员进行需求的反复沟通,增加了网络拓扑程序开发的人力成本以及沟通成本。
发明内容
本发明实施例提供一种可有效降低程序开发的人力成本以及沟通成本的基于结构化查询语言的数据处理方法及数据处理装置;以解决现有的数据处理方法及数据处理装置的人力成本以及沟通成本较高的技术问题。
本发明实施例提供一种基于结构化查询语言的数据处理方法,其包括:
接收结构化查询语言脚本,其中所述结构化查询语言脚本包括表格引用编码以及表格操作编码;
通过语法解析,将所述结构化查询语言脚本转换为生成具有多个操作节点 的抽象语法树;
根据所述操作节点的功能,将所述抽象语法树转换为具有多个查询算子的算子树;其中每个查询算子包括用于执行同一操作指令的多个所述操作节点;以及
根据所述查询算子的类型,调用实时处理系统中相应的数据处理模块对所述查询算子进行数据处理。
本发明实施例还提供一种基于结构化查询语言的数据处理装置,其包括:
脚本接收模块,用于接收结构化查询语言脚本,其中所述结构化查询语言脚本包括表格引用编码以及表格操作编码;
语法树转换模块,用于通过语法解析,将所述结构化查询语言脚本转换为生成具有多个操作节点的抽象语法树;
算子树转换模块,用于根据所述操作节点的功能,将所述抽象语法树转换为具有多个查询算子的算子树;其中每个查询算子包括用于执行同一操作指令的多个所述操作节点;以及
数据处理模块,用于根据所述查询算子的类型,调用实时处理系统中相应的数据处理模块对所述查询算子进行数据处理。
相较于现有技术的数据处理方法及数据处理装置,本发明的基于结构化查询语言的数据处理方法及数据处理装置通过结构化查询语言脚本进行编码的输入以及转换,有效的降低了程序开发的人力成本以及沟通成本;解决了现有的数据处理方法及数据处理装置的人力成本以及沟通成本较高的技术问题。
附图说明
图1为本发明的基于结构化查询语言的数据处理方法的第一优选实施例的流程图;
图2为本发明的基于结构化查询语言的数据处理方法的第二优选实施例的流程图。
图3为本发明的基于结构化查询语言的数据处理装置的第一优选实施例的结构示意图;
图4为本发明的基于结构化查询语言的数据处理装置的第二优选实施例的结构示意图;
图5为本发明的基于结构化查询语言的数据处理装置的第二优选实施例的算子树转换模块的结构示意图;
图6为本发明的基于结构化查询语言的数据处理装置的第二优选实施例的数据处理模块的结构示意图;
图7A-图7F为本发明的基于结构化查询语言的数据处理方法和数据处理装置的具体实施例的使用示意图;
图8为本发明的基于结构化查询语言的数据处理装置所在的电子设备的工作环境结构示意图。
具体实施方式
请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。
在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行之作业的步骤及符号来说明,除非另有述明。因此,其将可了解到这些步骤及操作,其中有数次提到为由计算机执行,包括了由代表了以一结构化型式中的数据之电子信号的计算机处理单元所操纵。此操纵转换该数据或将其维持在该计算机之内存系统中的位置处,其可重新配置或另外以本领域技术人员所熟知的方式来改变该计算机之运作。该数据所维持的数据结构为该内存之实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域技术人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。
本发明的数据加密装置可使用各种电子设备进行实施,该电子设备包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费型电子设备、小型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境,等等。但该电子设备优选为数据处理服务器,以提高数据处理的效率。
请参照图1,图1为本发明的基于结构化语言的数据处理方法的第一优选实施例的流程图。本优选实施例的数据处理方法可使用上述电子设备进行实施。该数据处理方法包括:
步骤S101,接收结构化查询语言脚本,该结构化查询语言脚本包括表格引用编码以及表格操作编码;
步骤S102,通过语法解析,将结构化查询语言脚本转换为具有多个操作节点的抽象语法树;
步骤S103,根据操作节点的功能,将抽象语法树转换为具有多个查询算子的算子树;其中每个查询算子包括用于执行同一操作指令的多个操作节点;
步骤S104,根据查询算子的类型,调用实时处理系统中相应的数据处理模块对查询算子进行数据处理。
下面详细说明本优选实施例的基于结构化查询语言的数据处理方法的各步骤的具体流程。
在步骤S101中,数据处理装置接收用户输入的结构化查询语言脚本(SQL,Structured Query Language),其中该结构化查询语言脚本包括表格引用编码以及表格操作编码,其中表格操作编码是指具体进行数据处理操作的编码;表格引用编码单独不能进行数据处理操作,但是表格引用编码可方便的通过表格操作编码进行引用,从而实现大量参数的快速输入或快速切换。由于结构化查询语言脚本的适用性较强以及兼容性较强,因此本优选实施例的数据处理装置可以较好的降低编程技术人员和数据分析人员的沟通成本。随后转到步骤 S102。
在步骤S102中,数据处理装置通过语法解析,将结构化查询语言脚本转换为具有多个操作节点的抽象语法树;如这里的每个操作节点可为结构化查询语言脚本中的一段代码。由于代码之间具有执行顺序关系以及相互的引用关系,因此可将结构化查询语言脚本转换为具有多个操作节点的抽象语法树。随后转到步骤S103。
在步骤S103中,数据处理装置根据步骤S102获取的操作节点的功能,将抽象语法树转换为具有多个查询算子的算子树。其中每个查询算子包括用于执行同一操作指令的多个操作节点。由于单独的操作节点不一定能够完成一完整的操作指令,如设置参数位置,设置计算公式,设置计算结果输出位置等操作节点均视为计算这个操作指令服务的。因此这里将同一操作指令的多个操作节点合并为一查询算子。这里的操作指令具体可包括用于进行数据扫描的扫描操作指令、用于进行数据选择的选择操作指令、用于进行数据过滤的过滤操作指令、用于进行数据合并选择的合并选择操作指令、用于进行数据合并查询的合并查询操作指令、用于进行数据局部处理操作的局部处理操作指令、用于进行数据总处理操作的总处理操作指令、用于进行数据输出选择操作的输出选择操作指令以及用于进行数据输出操作的数据输出操作指令。这样通过转换可得到相应的扫描查询算子、选择查询算子、过滤查询算子、合并选择查询算子、合并查询算子、局部处理查询算子、总处理查询算子、输出选择查询算子以及输出查询算子,并通过上述查询算子构成算子树。随后转到步骤S104。
在步骤S104中,数据处理装置根据步骤S103获取的查询算子的类型,调用实时处理系统中相应的数据处理模块对查询算子进行数据处理。通过不同的输出处理模块对不同的查询算子进行处理,进一步提高了该数据处理装置的数据处理效率。
这样即完成了本优选实施例的数据处理方法的数据处理过程。
本优选实施例的基于结构化查询语言的数据处理方法通过结构化查询语言 脚本进行编码的输入以及转换,有效的降低了程序开发的人力成本以及沟通成本。
请参照图2,图2为本发明的基于结构化查询语言的数据处理方法的第二优选实施例的流程图。本优选实施例的数据处理方法可使用上述电子设备进行实施。该数据处理方法包括:
步骤S201,接收结构化查询语言脚本,其中结构化查询语言脚本包括表格引用编码以及表格操作编码;
步骤S202,通过语法解析,将结构化查询语言脚本转换为具有多个操作节点的抽象语法树;
步骤S203,根据所述操作节点的功能,对所有的操作节点进行分组,并将相邻的、用于执行同一操作指令的所述操作节点设置在同一查询算子中;
步骤S204,使用所有的查询算子,创建算子树;
步骤S205,调用主动数据处理模块对扫描查询算子、选择查询算子、过滤查询算子、合并选择查询算子、合并查询算子以及局部处理查询算子进行数据处理;
步骤S206,调用被动数据处理模块对总处理查询算子、输出选择查询算子以及输出查询算子进行数据处理;
步骤S207,通过结构化查询语言脚本,对数据处理的结果进行输出。
下面详细说明本优选实施例的基于结构化查询语言的数据处理方法的各步骤的具体流程。
在步骤S201中,数据处理装置接收用户输入的结构化查询语言脚本(SQL,Structured Query Language),其中该结构化查询语言脚本包括表格引用编码以及表格操作编码,其中表格操作编码是指具体进行数据处理操作的编码;表格引用编码单独不能进行数据处理操作,但是表格引用编码可方便的通过表格操作编码进行引用,从而实现大量参数的快速输入或快速切换。由于结构化查询 语言脚本的适用性较强以及兼容性较强,因此本优选实施例的数据处理装置可以较好的降低编程技术人员和数据分析人员的沟通成本。随后转到步骤S202。
在步骤S202中,数据处理装置通过语法解析,将结构化查询语言脚本转换为具有多个操作节点的抽象语法树;如这里的每个操作节点可为结构化查询语言脚本中的一段代码。由于代码之间具有执行顺序关系以及相互的引用关系,因此可将结构化查询语言脚本转换为具有多个操作节点的抽象语法树。随后转到步骤S203。
在步骤S203中,数据处理装置根据步骤S202获取的操作节点的功能,对所有的操作节点进行分组,并将相邻的、用于执行同一操作指令的操作节点设置在同一查询算子中,这样每个查询算子均包括用于执行同一操作指令的多个操作节点。由于单独的操作节点不一定能够完成一完成的操作指令,如设置参数位置,设置计算公式,设置计算结果输出位置等操作节点均视为计算这个操作指令服务的。因此这里将同一操作指令的相邻的多个操作节点合并为一查询算子。
这里的操作指令具体可包括用于进行数据扫描的扫描操作指令、用于进行数据选择的选择操作指令、用于进行数据过滤的过滤操作指令、用于进行数据合并选择的合并选择操作指令、用于进行数据合并查询的合并查询操作指令、用于进行数据局部处理操作的局部处理操作指令、用于进行数据总处理操作的总处理操作指令、用于进行数据输出选择操作的输出选择操作指令以及用于进行数据输出操作的数据输出操作指令。这样通过转换可得到相应的扫描查询算子、选择查询算子、过滤查询算子、合并选择查询算子、合并查询算子、局部处理查询算子、总处理查询算子、输出选择查询算子以及输出查询算子。随后转到步骤S204。
在步骤S204中,数据处理装置使用步骤S203获取的所有的查询算子,创建算子树。该算子树包括扫描查询算子、选择查询算子、过滤查询算子、合并选择查询算子、合并查询算子、局部处理查询算子、总处理查询算子、输出选 择查询算子以及输出查询算子。随后转到步骤S205。
在步骤S205中,由于扫描查询算子、选择查询算子、过滤查询算子、合并选择查询算子、合并查询算子以及局部处理查询算子涉及到数据的输入,因此需要处理装置主动进行数据操作处理;因此调用主动数据处理模块(spout)对扫描查询算子、选择查询算子、过滤查询算子、合并选择查询算子、合并查询算子以及局部处理查询算子进行数据处理。并将数据处理结果发送至被动数据处理模块。随后转到步骤S206。
在步骤S206中,由于总处理查询算子、输出选择查询算子以及输出查询算子涉及到数据的输出,因此需要处理装置被动进行数据操作处理;因此调用被动数据处理模块(bolt)对总处理查询算子、输出选择查询算子以及输出查询算子进行数据处理。随后转到步骤S207。
在步骤S207中,根据结构化查询语言脚本的表格引用编码中对数据输出的如输出位置以及输出格式等参数的设定,对步骤S206输出的数据处理结果进行输出。这里通过结构化查询语言脚本进行输出,同样可以增强输出数据的适用性以及兼容性,便于数据分析人员及时获取到相应的数据处理结果。
这样即完成了本优选实施例的数据处理方法的数据处理过程。
在第一优选实施例的基础上,本优选实施例的基于结构化查询语言的数据处理方法通过不同类型的查询算子的设定以及不同类型的数据处理模块的设定,进一步提高了该数据处理方法的数据处理效率。
本发明还提供一种基于结构化语言的数据处理装置,请参照图3,图3为本发明的基于结构化查询语言的数据处理装置的第一优选实施例的结构示意图。本优选实施例的数据处理装置30可使用上述数据处理方法的第一优选实施例进行实施。该数据处理装置30包括脚本接收模块31、语法树转换模块32、算子树转换模块33以及数据处理模块34。
脚本接收模块31用于接收结构化查询语言脚本,其中结构化查询语言脚本 包括表格引用编码以及表格操作编码。语法树转换模块32用于通过语法解析,将结构化查询语言脚本转换为具有多个操作节点的抽象语法树。算子树转换模块33用于根据操作节点的功能,将抽象语法树转换为具有多个查询算子的算子树;其中每个查询算子包括用于执行同一操作指令的多个操作节点。数据处理模块34用于根据查询算子的类型,调用实时处理系统中相应的数据处理模块对查询算子进行数据处理。
本优选实施例的基于结构化查询语言的数据处理装置30使用时,首先脚本接收模块31接收用户输入的结构化查询语言脚本(SQL,Structured Query Language),其中该结构化查询语言脚本包括表格引用编码以及表格操作编码,其中表格操作编码是指具体进行数据处理操作的编码;表格引用编码单独不能进行数据处理操作,但是表格引用编码可方便的通过表格操作编码进行引用,从而实现大量参数的快速输入或快速切换。由于结构化查询语言脚本的适用性较强以及兼容性较强,因此本优选实施例的数据处理装置可以较好的降低编程技术人员和数据分析人员的沟通成本。
随后语法树转换模块32通过语法解析,将结构化查询语言脚本转换为具有多个操作节点的抽象语法树;如这里的每个操作节点可为结构化查询语言脚本中的一段代码。由于代码之间具有执行顺序关系以及相互的引用关系,因此可将结构化查询语言脚本转换为具有多个操作节点的抽象语法树。
然后算子树转换模块33根据语法树转换模块32获取的操作节点的功能,将抽象语法树转换为具有多个查询算子的算子树。其中每个查询算子包括用于执行同一操作指令的多个操作节点。由于单独的操作节点不一定能够完成一完成的操作指令,如设置参数位置,设置计算公式,设置计算结果输出位置等操作节点均视为计算这个操作指令服务的。因此这里将同一操作指令的多个操作节点合并为一查询算子。这里的操作指令具体可包括用于进行数据扫描的扫描操作指令、用于进行数据选择的选择操作指令、用于进行数据过滤的过滤操作指令、用于进行数据合并选择的合并选择操作指令、用于进行数据合并查询的 合并查询操作指令、用于进行数据局部处理操作的局部处理操作指令、用于进行数据总处理操作的总处理操作指令、用于进行数据输出选择操作的输出选择操作指令以及用于进行数据输出操作的数据输出操作指令。这样通过转换可得到相应的扫描查询算子、选择查询算子、过滤查询算子、合并选择查询算子、合并查询算子、局部处理查询算子、总处理查询算子、输出选择查询算子以及输出查询算子,并通过上述查询算子构成算子树。
最后数据处理模块34根据算子树转换模块33获取的查询算子的类型,调用实时处理系统中相应的数据处理模块对查询算子进行数据处理。通过不同的输出处理模块对不同的查询算子进行处理,进一步提高了该数据处理装置的数据处理效率。
这样即完成了本优选实施例的数据处理装置30的数据处理过程。
本优选实施例的基于结构化查询语言的数据处理装置通过结构化查询语言脚本进行编码的输入以及转换,有效的降低了程序开发的人力成本以及沟通成本。
请参照图4,图4为本发明的基于结构化查询语言的数据处理装置的第二优选实施例的结构示意图。本优选实施例的数据处理装置40可使用上述数据处理方法的第一优选实施例进行实施。该数据处理装置40包括脚本接收模块41、语法树转换模块42、算子树转换模块43、数据处理模块44以及输出模块45。
脚本接收模块41用于接收结构化查询语言脚本,其中结构化查询语言脚本包括表格引用编码以及表格操作编码。语法树转换模块42用于通过语法解析,将结构化查询语言脚本转换为具有多个操作节点的抽象语法树。算子树转换模块43用于根据操作节点的功能,将抽象语法树转换为具有多个查询算子的算子树;其中每个查询算子包括用于执行同一操作指令的多个操作节点。数据处理模块44用于根据查询算子的类型,调用实时处理系统中相应的数据处理模块对查询算子进行数据处理。输出模块45用于通过结构化查询语言脚本,对数据处 理的结果进行输出。
请参照图5,图5为本发明的基于结构化查询语言的数据处理装置的第二优选实施例的算子树转换模块的结构示意图。该算子树转换模块43包括查询算子设置单元431以及算子树创建单元432。
查询算子设置单元431用于根据操作节点的功能,对所有的操作节点进行分组,并将相邻的、用于执行同一操作指令的操作节点设置在同一所述查询算子中。算子树创建单元432用于使用所有的查询算子,创建算子树。
请参照图6,图6为本发明的基于结构化查询语言的数据处理装置的第二优选实施例的数据处理模块的结构示意图。该数据处理模块44包括主动数据处理单元441以及被动数据处理单元442。
主动数据处理单元441用于调用主动数据处理模块对扫描查询算子、选择查询算子、过滤查询算子、合并选择查询算子、合并查询算子以及局部处理查询算子进行数据处理。被动数据处理单元442用于调用被动数据处理模块对总处理查询算子、输出选择查询算子以及输出查询算子进行数据处理。
本优选实施例的基于结构化查询语言的数据处理装置40使用时,首先脚本接收模块41接收用户输入的结构化查询语言脚本(SQL,Structured Query Language),其中该结构化查询语言脚本包括表格引用编码以及表格操作编码,其中表格操作编码是指具体进行数据处理操作的编码;表格引用编码单独不能进行数据处理操作,但是表格引用编码可方便的通过表格操作编码进行引用,从而实现大量参数的快速输入或快速切换。由于结构化查询语言脚本的适用性较强以及兼容性较强,因此本优选实施例的数据处理装置可以较好的降低编程技术人员和数据分析人员的沟通成本。
随后语法树转换模块42通过语法解析,将结构化查询语言脚本转换为具有多个操作节点的抽象语法树;如这里的每个操作节点可为结构化查询语言脚本中的一段代码。由于代码之间具有执行顺序关系以及相互的引用关系,因此可将结构化查询语言脚本转换为具有多个操作节点的抽象语法树。
然后算子树转换模块43的查询算子设置单元431根据语法树转换模块42获取的操作节点的功能,对所有的操作节点进行分组,并将相邻的、用于执行同一操作指令的操作节点设置在同一查询算子中,这样每个查询算子均包括用于执行同一操作指令的多个操作节点。由于单独的操作节点不一定能够完成一完成的操作指令,如设置参数位置,设置计算公式,设置计算结果输出位置等操作节点均视为计算这个操作指令服务的。因此这里将同一操作指令的相邻的多个操作节点合并为一查询算子。
这里的操作指令具体可包括用于进行数据扫描的扫描操作指令、用于进行数据选择的选择操作指令、用于进行数据过滤的过滤操作指令、用于进行数据合并选择的合并选择操作指令、用于进行数据合并查询的合并查询操作指令、用于进行数据局部处理操作的局部处理操作指令、用于进行数据总处理操作的总处理操作指令、用于进行数据输出选择操作的输出选择操作指令以及用于进行数据输出操作的数据输出操作指令。这样通过转换可得到相应的扫描查询算子、选择查询算子、过滤查询算子、合并选择查询算子、合并查询算子、局部处理查询算子、总处理查询算子、输出选择查询算子以及输出查询算子
随后算子树转换模块43的算子树创建单元432使用查询算子设置单元431获取的所有的查询算子,创建算子树。该算子树包括扫描查询算子、选择查询算子、过滤查询算子、合并选择查询算子、合并查询算子、局部处理查询算子、总处理查询算子、输出选择查询算子以及输出查询算子。
然后由于扫描查询算子、选择查询算子、过滤查询算子、合并选择查询算子、合并查询算子以及局部处理查询算子涉及到数据的输入,因此需要处理装置主动进行数据操作处理;因此数据处理模块44的主动数据处理单元441调用实时处理系统的主动数据处理模块(spout)对扫描查询算子、选择查询算子、过滤查询算子、合并选择查询算子、合并查询算子以及局部处理查询算子进行数据处理。
最后由于总处理查询算子、输出选择查询算子以及输出查询算子涉及到数 据的输出,因此需要处理装置被动进行数据操作处理;因此数据处理模块44的被动数据处理单元442调用实时处理系统的被动数据处理模块(bolt)对总处理查询算子、输出选择查询算子以及输出查询算子进行数据处理。
最后输出模块45根据结构化查询语言脚本的表格引用编码中对数据输出的如输出位置以及输出格式等参数的设定,对被动数据处理单元输出的数据处理结果进行输出。这里通过结构化查询语言脚本进行输出,同样可以增强输出数据的适用性以及兼容性,便于数据分析人员及时获取到相应的数据处理结果。
这样即完成了本优选实施例的数据处理装置40的数据处理过程。
在第一优选实施例的基础上,本优选实施例的基于结构化查询语言的数据处理装置通过不同类型的查询算子的设定以及不同类型的数据处理模块的设定,进一步提高了该数据处理方法的数据处理效率。
下面通过一具体实施例说明本发明的基于结构化查询语言的数据处理方法和数据处理装置的具体工作原理。请参照图7,图7为本发明的基于结构化查询语言的数据处理方法及数据处理装置的具体实施例的使用示意图。
首先接收用户输入的结构化查询语言脚本,在本具体实施例中,该结构化查询语言脚本为:
[system]
sql=\
WITH\
(SELECT'ylzt'name,qq FROM tbl_ylzt WHERE type='login')ylzt\
(SELECT'lol'name,qq FROM tbl_lol WHERE type='login')lol\
(SELECT name,qq FROM ylzt UNION ALL SELECT name,qq FROM lol)utbl\
INSERT INTO result SELECT FROM_UNIXTIME(AGGRTIME DIV 1000,'yyyy-MM-ddHH:mm:ss'),name,COUNT(qq ACCU),COUNT(qq SW),COUNT(qq)FROM utbl\
GROUP BY name COORDINATE BY UNIX_TIMESTAMP()*1000\
WITH AGGR INTERVAL 60SECONDS WITH ACCU INTERVAL 3600SECONDS WITH SWINTERVAL 300SECONDS(上述为表格操作编码)
[tabledesc-tbl_ylzt]
table.name=tbl_ylzt
table.fields=qq,bigint,:type,string,
table.type=stream
table.tube.addrlist=xxx
table.topic=xxx
table.interfaceId=xxx
table.field.splitter=xxx
[tabledesc-tbl_lol]
table.name=tbl_lol
table.fields=qq,bigint,:type,string,
table.type=stream
table.tube.addrlist=xxx
table.topic=xxx
table.interfaceId=xxx
table.field.splitter=xxx
[tabledesc-result]
table.name=result
table.fields=agtime,string,:name,string,:pv,bigint,:fmpv,bigint,:hpv,bigint,
table.type=mysql
table.mysql.db.host=127.0.0.1
table.mysql.db.name=xxx
table.mysql.db.port=3306
table.mysql.db.username=xxx
table.mysql.db.passwd=xxx(上述为表格引用编码)。
该编码的功能为对“御龙在天”和“英雄联盟”两个游戏的用户登录流水数据进行统计,具体为统计每分钟的用户登录次数,每分钟输出一次;最近连续五分钟的用户登录次数,每分钟输出一次;统计当前小时开始到当前分钟的用户登录次数,每分钟输出一次;将统计结果插入到指定的数据库的结果表中。其中表格操作编码可通过代码“tbl_ylzt”直接调用表格引用编码中的[tabledesc-tbl_ylzt]下的全部内容。
随后数据处理装置将该结构化查询语言脚本转换为具有多个操作节点的抽象语法树。具体如图7A至7E所示。
其中图7A对应的代码为
(SELECT'ylzt'name,qq FROM tbl_ylzt WHERE type='login')ylzt\;图7E中用A表示。
图7B对应的代码为:
(SELECT'lol'name,qq FROM tbl_lol WHERE type='login')lol\;图7E中用B表示。
图7C对应的代码为:
(SELECT name,qq FROM ylzt UNION ALL SELECT name,qq FROM lol)utbl\;图7E中用C表示。
图7D对应的代码为:
INSERT INTO result SELECT FROM_UNIXTIME(AGGRTIME DIV 1000,'yyyy-MM-ddHH:mm:ss'),name,COUNT(qq ACCU),COUNT(qq SW),COUNT(qq)FROM utbl\
GROUP BY name COORDINATE BY UNIX_TIMESTAMP()*1000\
WITH AGGR INTERVAL 60SECONDS WITH ACCU INTERVAL3600SECONDS WITH SWINTERVAL 300SECONDS;图7E中用D表示。
图7E为所有的表格操作编码的抽象语法树,该表格操作编码可以直接引用表格引用编码中的相关内容。
然后数据处理装置根据操作节点的功能,将抽象语法树转换为具有多个查询算子的算子树,形成的算子树如图7F所示。其中TS1和TS2为扫描查询算子,SEL1和SEL2为选择查询算子,FIL1和FIL2为过滤查询算子,SEL3和SEL4为合并选择查询算子,UNION为合并查询算子,MGBY为局部处理查询算子,RGBY为总处理查询算子,SEL5为输出选择查询算子,FS为输出查询算子。具体查询算子对应的操作节点可参照图7A至图7D。
随后数据处理装置调用主动数据处理模块(spout),对扫描查询算子TS1和TS2、选择查询算子SEL1和SEL2、过滤查询算子FIL1和FIL2、合并选择查询算子SEL3和SEL4、合并查询算子UNION以及局部处理查询算子MGBY进行数据处理。
数据处理装置调用被动数据处理模块(bolt),对总处理查询算子RGBY、输出选择查询算子SEL5以及输出查询算子FS进行数据处理。这里可对主动数据处理模块和被动数据处理模块的使用资源比例进行调整,以提高数据处理效率。
最后数据处理装置根据结构化查询语言脚本的表格引用编码中对数据输出的如输出位置以及输出格式等参数的设定,将上述的数据处理结果输出,以便于数据分析人员及时获取到相应的数据处理结果。
这样即完成了本发明的基于结构化查询语言的数据处理方法及数据处理装置的具体实施例的数据处理过程。
本发明的基于结构化查询语言的数据处理方法及数据处理装置通过结构化查询语言脚本进行编码的输入以及转换,有效的降低了程序开发的人力成本以及沟通成本;解决了现有的数据处理方法及数据处理装置的人力成本以及沟通成本较高的技术问题。
如本申请所使用的术语“组件”、“模块”、“系统”、“接口”、“进程”等等一般地旨在指计算机相关实体:硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是但不限于是运行在处理器上的进程、处理器、对象、可执行应用、执行的线程、程序和/或计算机。通过图示,运行在控制器上的应用和该控制器二者都可以是组件。一个或多个组件可以有在于执行的进程和/或线程内,并且组件可以位于一个计算机上和/或分布在两个或更多计算机之间。
而且,要求保护的主题可以被实现为使用标准编程和/或工程技术产生软件、固件、硬件或其任意组合以控制计算机实现所公开的主题的方法、装置或制造品。本文所使用的术语“制造品”旨在包含可从任意计算机可读设备、载体或介质访问的计算机程序。当然,本领域技术人员将认识到可以对该配置进行许多修改,而不脱离要求保护的主题的范围或精神。
图8和随后的讨论提供了对实现本发明所述的数据处理装置所在的电子设备的工作环境的简短、概括的描述。图8的工作环境仅仅是适当的工作环境的一个实例并且不旨在建议关于工作环境的用途或功能的范围的任何限制。实例电子设备812包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费型电子设备、小型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境,等等。
尽管没有要求,但是在“计算机可读指令”被一个或多个电子设备执行的通用背景下描述实施例。计算机可读指令可以经由计算机可读介质来分布(下文讨论)。计算机可读指令可以实现为程序模块,比如执行特定任务或实现特定抽象数据类型的功能、对象、应用编程接口(API)、数据结构等等。典型地,该计算机可读指令的功能可以在各种环境中随意组合或分布。
图8图示了包括本发明的数据处理装置的一个或多个实施例的电子设备812的实例。在一种配置中,电子设备812包括至少一个处理单元816和存储器818。根据电子设备的确切配置和类型,存储器818可以是易失性的(比如 RAM)、非易失性的(比如ROM、闪存等)或二者的某种组合。该配置在图8中由虚线814图示。
在其他实施例中,电子设备812可以包括附加特征和/或功能。例如,设备812还可以包括附加的存储装置(例如可移除和/或不可移除的),其包括但不限于磁存储装置、光存储装置等等。这种附加存储装置在图8中由存储装置820图示。在一个实施例中,用于实现本文所提供的一个或多个实施例的计算机可读指令可以在存储装置820中。存储装置820还可以存储用于实现操作系统、应用程序等的其他计算机可读指令。计算机可读指令可以载入存储器818中由例如处理单元816执行。
本文所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。存储器818和存储装置820是计算机存储介质的实例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光存储装置、盒式磁带、磁带、磁盘存储装置或其他磁存储设备、或可以用于存储期望信息并可以被电子设备812访问的任何其他介质。任意这样的计算机存储介质可以是电子设备812的一部分。
电子设备812还可以包括允许电子设备812与其他设备通信的通信连接826。通信连接826可以包括但不限于调制解调器、网络接口卡(NIC)、集成网络接口、射频发射器/接收器、红外端口、USB连接或用于将电子设备812连接到其他电子设备的其他接口。通信连接826可以包括有线连接或无线连接。通信连接826可以发射和/或接收通信媒体。
术语“计算机可读介质”可以包括通信介质。通信介质典型地包含计算机可读指令或诸如载波或其他传输机构之类的“己调制数据信号”中的其他数据,并且包括任何信息递送介质。术语“己调制数据信号”可以包括这样的信号:该信号特性中的一个或多个按照将信息编码到信号中的方式来设置或改变。
电子设备812可以包括输入设备824,比如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外相机、视频输入设备和/或任何其他输入设备。设备812中也可以包括输出设备822,比如一个或多个显示器、扬声器、打印机和/或任意其他输出设备。输入设备824和输出设备822可以经由有线连接、无线连接或其任意组合连接到电子设备812。在一个实施例中,来自另一个电子设备的输入设备或输出设备可以被用作电子设备812的输入设备824或输出设备822。
电子设备812的组件可以通过各种互连(比如总线)连接。这样的互连可以包括外围组件互连(PCI)(比如快速PCI)、通用串行总线(USB)、火线(IEEE1394)、光学总线结构等等。在另一个实施例中,电子设备812的组件可以通过网络互连。例如,存储器818可以由位于不同物理位置中的、通过网络互连的多个物理存储器单元构成。
本领域技术人员将认识到,用于存储计算机可读指令的存储设备可以跨越网络分布。例如,可经由网络828访问的电子设备830可以存储用于实现本发明所提供的一个或多个实施例的计算机可读指令。电子设备812可以访问电子设备830并且下载计算机可读指令的一部分或所有以供执行。可替代地,电子设备812可以按需要下载多条计算机可读指令,或者一些指令可以在电子设备812处执行并且一些指令可以在电子设备830处执行。
本文提供了实施例的各种操作。在一个实施例中,所述的一个或多个操作可以构成一个或多个计算机可读介质上存储的计算机可读指令,其在被电子设备执行时将使得计算设备执行所述操作。描述一些或所有操作的顺序不应当被解释为暗示这些操作必需是顺序相关的。本领域技术人员将理解具有本说明书的益处的可替代的排序。而且,应当理解,不是所有操作必需在本文所提供的每个实施例中存在。
而且,本文所使用的词语“优选的”意指用作实例、示例或例证。奉文描述为“优选的”任意方面或设计不必被解释为比其他方面或设计更有利。相反,词 语“优选的”的使用旨在以具体方式提出概念。如本申请中所使用的术语“或”旨在意指包含的“或”而非排除的“或”。即,除非另外指定或从上下文中清楚,“X使用A或B”意指自然包括排列的任意一个。即,如果X使用A;X使用B;或X使用A和B二者,则“X使用A或B”在前述任一示例中得到满足。
而且,尽管已经相对于一个或多个实现方式示出并描述了本公开,但是本领域技术人员基于对本说明书和附图的阅读和理解将会想到等价变型和修改。本公开包括所有这样的修改和变型,并且仅由所附权利要求的范围限制。特别地关于由上述组件(例如元件、资源等)执行的各种功能,用于描述这样的组件的术语旨在对应于执行所述组件的指定功能(例如其在功能上是等价的)的任意组件(除非另外指示),即使在结构上与执行本文所示的本公开的示范性实现方式中的功能的公开结构不等同。此外,尽管本公开的特定特征已经相对于若干实现方式中的仅一个被公开,但是这种特征可以与如可以对给定或特定应用而言是期望和有利的其他实现方式的一个或多个其他特征组合。而且,就术语“包括”、“具有”、“含有”或其变形被用在具体实施方式或权利要求中而言,这样的术语旨在以与术语“包含”相似的方式包括。
本发明实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。上述的各装置或系统,可以执行相应方法实施例中的方法。
综上所述,虽然本发明已以优选实施例揭露如上,但上述优选实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。
Claims (7)
1.一种基于结构化查询语言的数据处理方法,其特征在于,包括:
接收结构化查询语言脚本,其中所述结构化查询语言脚本包括表格引用编码以及表格操作编码;
通过语法解析,将所述结构化查询语言脚本转换为具有多个操作节点的抽象语法树;
根据所述操作节点的功能,将所述抽象语法树转换为具有多个查询算子的算子树;其中每个查询算子包括用于执行同一操作指令的多个所述操作节点;以及
根据所述查询算子的类型,调用实时处理系统中相应的数据处理模块对所述查询算子进行数据处理;
其中所述查询算子包括扫描查询算子、选择查询算子、过滤查询算子、合并选择查询算子、合并查询算子、局部处理查询算子、总处理查询算子、输出选择查询算子以及输出查询算子;所述实时处理系统包括主动数据处理模块以及被动数据处理模块;
所述根据所述查询算子的类型,调用实时处理系统中相应的数据处理模块对所述查询算子进行数据处理的步骤具体为:
调用所述主动数据处理模块对所述扫描查询算子、所述选择查询算子、所述过滤查询算子、所述合并选择查询算子、所述合并查询算子以及所述局部处理查询算子进行数据处理;
调用所述被动数据处理模块对所述总处理查询算子、所述输出选择查询算子以及所述输出查询算子进行数据处理;以及
对所述主动数据处理模块和所述被动数据处理模块的使用资源比例进行调整,以提高数据处理效率。
2.根据权利要求1所述的基于结构化查询语言的数据处理方法,其特征在于,所述根据所述操作节点的功能,将所述抽象语法树转换为具有多个查询算子的算子树的步骤包括:
根据所述操作节点的功能,对所有的操作节点进行分组,并将相邻的、用于执行同一操作指令的所述操作节点设置在同一所述查询算子中;以及
使用所有的所述查询算子,创建所述算子树。
3.根据权利要求1所述的基于结构化查询语言的数据处理方法,其特征在于,所述数据处理方法还包括:
通过所述结构化查询语言脚本,对所述数据处理的结果进行输出。
4.一种基于结构化查询语言的数据处理装置,其特征在于,包括:
脚本接收模块,用于接收结构化查询语言脚本,其中所述结构化查询语言脚本包括表格引用编码以及表格操作编码;
语法树转换模块,用于通过语法解析,将所述结构化查询语言脚本转换为具有多个操作节点的抽象语法树;
算子树转换模块,用于根据所述操作节点的功能,将所述抽象语法树转换为具有多个查询算子的算子树;其中每个查询算子包括用于执行同一操作指令的多个所述操作节点;以及
数据处理模块,用于根据所述查询算子的类型,调用实时处理系统中相应的数据处理模块对所述查询算子进行数据处理;
其中所述查询算子包括扫描查询算子、选择查询算子、过滤查询算子、合并选择查询算子、合并查询算子、局部处理查询算子、总处理查询算子、输出选择查询算子以及输出查询算子;
所述数据处理模块包括:
主动数据处理单元,用于调用所述主动数据处理模块对所述扫描查询算子、所述选择查询算子、所述过滤查询算子、所述合并选择查询算子、所述合并查询算子以及所述局部处理查询算子进行数据处理;以及
被动数据处理单元,用于调用所述被动数据处理模块对所述总处理查询算子、所述输出选择查询算子以及所述输出查询算子进行数据处理;
其中所述数据处理模块还用于对所述主动数据处理模块和所述被动数据处理模块的使用资源比例进行调整,以提高数据处理效率。
5.根据权利要求4所述的基于结构化查询语言的数据处理装置,其特征在于,所述算子树转换模块包括:
查询算子设置单元,用于根据所述操作节点的功能,对所有的操作节点进行分组,并将相邻的、用于执行同一操作指令的所述操作节点设置在同一所述查询算子中;以及
算子树创建单元,用于使用所有的所述查询算子,创建所述算子树。
6.根据权利要求4所述的基于结构化查询语言的数据处理装置,其特征在于,所述数据处理装置还包括:输出模块,用于通过所述结构化查询语言脚本,对所述数据处理的结果进行输出。
7.一种存储介质,其内存储有处理器可执行指令,所述指令由一个或一个以上处理器加载,以执行如权利要求1至3中任一项所述的基于结构化查询语言的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510824248.4A CN106776639B (zh) | 2015-11-24 | 2015-11-24 | 基于结构化查询语言的数据处理方法及数据处理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510824248.4A CN106776639B (zh) | 2015-11-24 | 2015-11-24 | 基于结构化查询语言的数据处理方法及数据处理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106776639A CN106776639A (zh) | 2017-05-31 |
CN106776639B true CN106776639B (zh) | 2020-04-10 |
Family
ID=58963659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510824248.4A Active CN106776639B (zh) | 2015-11-24 | 2015-11-24 | 基于结构化查询语言的数据处理方法及数据处理装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776639B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019296B (zh) * | 2017-09-29 | 2021-04-23 | 北京国双科技有限公司 | 数据库查询脚本的生成方法、装置、存储介质及处理器 |
CN109739878B (zh) * | 2018-12-13 | 2020-12-01 | 北京达佳互联信息技术有限公司 | 大数据查询方法、装置、服务器及存储介质 |
CN110096709A (zh) * | 2019-05-07 | 2019-08-06 | 百度在线网络技术(北京)有限公司 | 指令处理方法及装置、服务器及计算机可读介质 |
CN110333941B (zh) * | 2019-06-28 | 2021-08-24 | 苏宁消费金融有限公司 | 一种基于sql的大数据实时计算方法 |
CN111078773B (zh) * | 2019-12-04 | 2023-09-05 | 北京奇艺世纪科技有限公司 | 一种数据处理方法及装置 |
CN114546981A (zh) * | 2020-11-24 | 2022-05-27 | 奇安信科技集团股份有限公司 | 数据库操作方法和装置 |
CN115599811A (zh) * | 2021-07-09 | 2023-01-13 | 华为技术有限公司(Cn) | 数据处理的方法、装置和计算系统 |
CN115131139B (zh) * | 2022-09-02 | 2022-11-22 | 创新奇智(南京)科技有限公司 | 一种基于结构数据获取目标结果的方法、装置、介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102375826A (zh) * | 2010-08-13 | 2012-03-14 | 中国移动通信集团公司 | Sql脚本解析方法、装置及系统 |
CN103186541A (zh) * | 2011-12-27 | 2013-07-03 | 阿里巴巴集团控股有限公司 | 一种映射关系生成方法及装置 |
CN103593401A (zh) * | 2013-10-15 | 2014-02-19 | 北京航空航天大学 | 代码转换方法及装置 |
CN103761080A (zh) * | 2013-12-25 | 2014-04-30 | 中国农业大学 | 一种基于SQL的MapReduce作业生成方法及系统 |
CN104123288A (zh) * | 2013-04-24 | 2014-10-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
-
2015
- 2015-11-24 CN CN201510824248.4A patent/CN106776639B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102375826A (zh) * | 2010-08-13 | 2012-03-14 | 中国移动通信集团公司 | Sql脚本解析方法、装置及系统 |
CN103186541A (zh) * | 2011-12-27 | 2013-07-03 | 阿里巴巴集团控股有限公司 | 一种映射关系生成方法及装置 |
CN104123288A (zh) * | 2013-04-24 | 2014-10-29 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
CN103593401A (zh) * | 2013-10-15 | 2014-02-19 | 北京航空航天大学 | 代码转换方法及装置 |
CN103761080A (zh) * | 2013-12-25 | 2014-04-30 | 中国农业大学 | 一种基于SQL的MapReduce作业生成方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106776639A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776639B (zh) | 基于结构化查询语言的数据处理方法及数据处理装置 | |
CN109542399B (zh) | 软件开发方法、装置、终端设备及计算机可读存储介质 | |
CN106970820B (zh) | 代码存储方法及代码存储装置 | |
WO2019241416A1 (en) | Regular expression generation using longest common subsequence algorithm on regular expression codes | |
CN110908997A (zh) | 数据血缘构建方法、装置、服务器及可读存储介质 | |
CN109582289B (zh) | 规则引擎中规则流的处理方法、系统、存储介质和处理器 | |
US11520825B2 (en) | Method and system for converting one type of data schema to another type of data schema | |
CN107741935B (zh) | 数据导入方法及数据导入装置 | |
CN101620636A (zh) | 一种显示表格数据的方法和装置 | |
CN111443901B (zh) | 一种基于Java反射的业务扩展方法及装置 | |
US20220147498A1 (en) | Generation of schemas with error resolve | |
CN115016784B (zh) | 低代码应用复用方法、应用解析系统、设备及存储介质 | |
CN110554877A (zh) | 一种json数据解析方法、装置、设备及储存介质 | |
CN113467777A (zh) | 路径识别方法、装置和系统 | |
CN114327493A (zh) | 数据处理方法及装置、电子设备、计算机可读介质 | |
CN111984826B (zh) | 基于xml的数据自动入库方法、系统、装置和存储介质 | |
CN105556504A (zh) | 从物理流生成逻辑表示 | |
CN110941655A (zh) | 一种数据格式转换方法及装置 | |
CN111124541A (zh) | 一种配置文件的生成方法、装置、设备及介质 | |
CN111897529B (zh) | 前端组件转换方法、装置、设备及可读存储介质 | |
CN106325849B (zh) | 数据处理方法及数据处理装置 | |
CN114860566A (zh) | 源代码测试方法、装置、电子设备及存储介质 | |
CN110795468A (zh) | 数据抽取方法及装置 | |
CN108304188B (zh) | 一种数据类型转换方法及终端 | |
CN112199428B (zh) | 功能数据块的应用管理系统、方法及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |