CN114385669A - 数据联机分析方法、系统、客户端及服务端 - Google Patents

数据联机分析方法、系统、客户端及服务端 Download PDF

Info

Publication number
CN114385669A
CN114385669A CN202210041502.3A CN202210041502A CN114385669A CN 114385669 A CN114385669 A CN 114385669A CN 202210041502 A CN202210041502 A CN 202210041502A CN 114385669 A CN114385669 A CN 114385669A
Authority
CN
China
Prior art keywords
data
online analysis
query
user
analysis result
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.)
Pending
Application number
CN202210041502.3A
Other languages
English (en)
Inventor
刘博�
张同虎
李登宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Construction Bank Corp
Original Assignee
China Construction Bank Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Construction Bank Corp filed Critical China Construction Bank Corp
Priority to CN202210041502.3A priority Critical patent/CN114385669A/zh
Publication of CN114385669A publication Critical patent/CN114385669A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations

Abstract

本发明公开了一种数据联机分析方法、系统、客户端及服务端,其中该方法包括:客户端接收用户输入的查询条件;根据用户输入的查询条件,以及预先配置的查询条件与SQL语句的关系生成SQL语句;服务端根据SQL语句创建AST对象;根据AST对象创建查询的执行管道,该执行管道包括联机分析处理数据库中多个待查询数据块标识;根据多个待查询数据块标识,从联机分析处理数据库中匹配出多个待查询数据块,从每一待查询数据块中读取查询结果,根据多个查询结果形成联机分析结果;将联机分析结果发送至客户端。本发明无需数据预处理,只需根据用户灵活配置的查询条件匹配对应的数据块即可高效地在海量的报文数据中分析得到实时联机分析结果。

Description

数据联机分析方法、系统、客户端及服务端
技术领域
本发明涉及大数据处理技术领域,尤其涉及一种数据联机分析方法、系统、客户端及服务端。
背景技术
随着金融领域报文数据量的指数级增长,传统的联机分析系统在存储大量报文数据时,预处理效率极其低下,且随着业务需求的变化,数据分析需求也越来越多,需要分析人员不断增加预处理任务才可满足需求,预处理较为复杂,无法得到实时联机分析的结果。
发明内容
本发明实施例提供一种数据联机分析方法,用以无需数据预处理,只需根据用户灵活配置的查询条件匹配对应的数据块即可高效地在海量的报文数据中分析得到实时联机分析结果,该方法包括:
客户端接收用户输入的查询条件;根据用户输入的查询条件,以及预先配置的查询条件与SQL语句之间的关系,生成用户输入的查询条件对应的SQL语句;将用户输入的查询条件对应的SQL语句发送至服务端;
服务端根据所述SQL语句,创建抽象语法树AST对象;根据AST对象,创建查询的执行管道,所述查询的执行管道包括联机分析处理数据库中多个待查询数据块标识;根据多个待查询数据块标识,从联机分析处理数据库中匹配出对应的多个待查询数据块,从每一待查询数据块中读取查询结果,根据每一待查询数据块的查询结果形成联机分析结果;将所述联机分析结果发送至客户端。
本发明实施例提供一种数据联机分析方法,用以无需数据预处理,只需根据用户灵活配置的查询条件匹配对应的数据块即可高效地在海量的报文数据中分析得到实时联机分析结果,该方法包括:
接收用户输入的查询条件;
根据用户输入的查询条件,以及预先配置的查询条件与SQL语句之间的关系,生成用户输入的查询条件对应的SQL语句;
将用户输入的查询条件对应的SQL语句发送至服务端;
接收根据用户输入的查询条件对应的SQL语句反馈的联机分析结果。
本发明实施例提供一种数据联机分析方法,用以无需数据预处理,只需根据用户灵活配置的查询条件匹配对应的数据块即可高效地在海量的报文数据中分析得到实时联机分析结果,该方法包括:
接收用户输入的查询条件对应的SQL语句;
根据所述用户输入的查询条件对应的SQL语句,创建抽象语法树AST对象;
根据AST对象,创建查询的执行管道,所述查询的执行管道包括联机分析处理数据库中多个待查询数据块标识;
根据多个待查询数据块标识,从联机分析处理数据库中匹配出对应的多个待查询数据块,从每一待查询数据块中读取查询结果,根据每一待查询数据块的查询结果形成联机分析结果;
将所述联机分析结果发送至客户端。
本发明实施例提供一种数据联机分析系统,用以无需数据预处理,只需根据用户灵活配置的查询条件匹配对应的数据块即可高效地在海量的报文数据中分析得到实时联机分析结果,该系统包括:
客户端,用于接收用户输入的查询条件;根据用户输入的查询条件,以及预先配置的查询条件与SQL语句之间的关系,生成用户输入的查询条件对应的SQL语句;将用户输入的查询条件对应的SQL语句发送至服务端;
服务端,用于根据所述SQL语句,创建抽象语法树AST对象;根据AST对象,创建查询的执行管道,所述查询的执行管道包括联机分析处理数据库中多个待查询数据块标识;根据多个待查询数据块标识,从联机分析处理数据库中匹配出对应的多个待查询数据块,从每一待查询数据块中读取查询结果,根据每一待查询数据块的查询结果形成联机分析结果;将所述联机分析结果发送至客户端。
本发明实施例提供一种数据联机分析客户端,用以无需数据预处理,只需根据用户灵活配置的查询条件匹配对应的数据块即可高效地在海量的报文数据中分析得到实时联机分析结果,该客户端包括:
第一接收单元,用于接收用户输入的查询条件;接收根据用户输入的查询条件对应的SQL语句反馈的联机分析结果;
SQL语句生成单元,用于根据用户输入的查询条件,以及预先配置的查询条件与SQL语句之间的关系,生成用户输入的查询条件对应的SQL语句;
第一发送单元,用于将用户输入的查询条件对应的SQL语句发送至服务端。
本发明实施例提供一种数据联机分析服务端,用以无需数据预处理,只需根据用户灵活配置的查询条件匹配对应的数据块即可高效地在海量的报文数据中分析得到实时联机分析结果,该服务端包括:
第二接收单元,用于接收用户输入的查询条件对应的SQL语句;
第一创建单元,用于根据所述用户输入的查询条件对应的SQL语句,创建抽象语法树AST对象;
第二创建单元,用于根据AST对象,创建查询的执行管道,所述查询的执行管道包括联机分析处理数据库中多个待查询数据块标识;
结果生成单元,用于根据多个待查询数据块标识,从联机分析处理数据库中匹配出对应的多个待查询数据块,从每一待查询数据块中读取查询结果,根据每一待查询数据块的查询结果形成联机分析结果;
第二发送单元,用于将所述联机分析结果发送至客户端。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据联机分析方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据联机分析方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述数据联机分析方法。
本发明实施例提供的数据联机分析方案:首先,客户端接收用户输入的查询条件;根据用户输入的查询条件,以及预先配置的查询条件与SQL语句之间的关系,生成用户输入的查询条件对应的SQL语句;将用户输入的查询条件对应的SQL语句发送至服务端;其次,服务端根据SQL语句,创建抽象语法树AST对象;根据AST对象,创建查询的执行管道,查询的执行管道包括联机分析处理数据库中多个待查询数据块标识;根据多个待查询数据块标识,从联机分析处理数据库中匹配出对应的多个待查询数据块,从每一待查询数据块中读取查询结果,根据每一待查询数据块的查询结果形成联机分析结果;将所述联机分析结果发送至客户端。
与现有技术中传统联机分析系统在大量报文数据分析场景中,预处理复杂且效率低下,无法进行实时的联机数据分析的技术方案相比,本发明实施例提供的数据联机分析方案的有益技术效果是:客户端通过用户输入的查询条件,以及预先配置的查询条件与SQL语句之间的关系,即可快速生成SQL语句,服务端通过对SQL语句创建抽象语法树AST对象,并根据AST对象创建查询的执行管道,可以只查询符合查询条件的数据块,因此能很快从海量数据中极快地查找到满足条件的数据,且不需要任何的数据预处理,从而可以进行在线实时数据分析,提供实时联机数据分析结果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中应用于系统的数据联机分析方法的示意图;
图2为本发明实施例中的数据联机分析服务端的底层架构图;
图3为本发明实施例中的数据联机分析方法的原理图;
图4为本发明实施例中的数据联机分析系统的底层架构图;
图5为本发明实施例中应用于客户端的数据联机分析方法的流程示意图;
图6为本发明实施例中应用于服务端的数据联机分析方法的流程示意图;
图7为本发明实施例中数据联机分析系统的结构示意图;
图8为本发明实施例中数据联机分析客户端的结构示意图;
图9为本发明实施例中数据联机分析服务端的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
联机事务处理系统(On-Line Transaction Processing,OLTP):OLTP是一种以事务元作为数据处理的单位、人机交互的计算机应用系统。它能对数据进行即时更新或其他操作,系统内的数据总是保持在最新状态。用户可将一组保持数据一致性的操作序列指定为一个事务元,通过终端、个人计算机或其他设备输入事务元,经系统处理后返回结果,应用于飞机订票、银行出纳、股票交易、超市销售、饭店前后管理等。
联机分析处理系统(On-line Analytical Processing,OLAP):OLAP是一种软件技术,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的。它具有FASMI(Fast Analysis of Shared Multidimensional Information),即共享多维信息的快速分析的特征。其中F是快速性(Fast),指系统能在数秒内对用户的多数分析要求做出反应;A是可分析性(Analysis),指用户无需编程就可以定义新的专门计算,将其作为分析的一部分,并以用户所希望的方式给出报告;M是多维性(Multi—dimensional),指提供对数据分析的多维视图和分析;I是信息性(Information),指能及时获得信息,并且管理大容量信息。
随着金融领域报文数据量的指数级增长,传统的OLTP数据库由于存储方式、数据压缩、数据索引、查询步骤、聚合方式等限制,已经无法满足快速返回数十亿、百亿级别报文数据实时联机分析的结果,因此,本发明实施例提出了一种数据联机分析方案,该方案的目的是要实现一种新型的专用于大数据量报文的实时联机分析系统,支撑金融领域的分析人员能够迅速、一致、交互地从各个方面观察报文数据信息。下面对该数据联机分析方案进行详细介绍。
图1为本发明实施例提供的应用于系统的数据联机分析方法的示意图,如图1所示,该方法包括如下步骤:
步骤10:客户端接收用户输入的查询条件;根据用户输入的查询条件,以及预先配置的查询条件与SQL语句之间的关系,生成用户输入的查询条件对应的SQL语句;将用户输入的查询条件对应的SQL语句发送至服务端;
步骤20:服务端根据所述SQL语句,创建抽象语法树AST对象;根据AST对象,创建查询的执行管道,所述查询的执行管道包括联机分析处理数据库中多个待查询数据块标识;根据多个待查询数据块标识,从联机分析处理数据库中匹配出对应的多个待查询数据块,从每一待查询数据块中读取查询结果,根据每一待查询数据块的查询结果形成联机分析结果;将所述联机分析结果发送至客户端。
具体的,面对大数据量报文的联机分析场景,为了能够得到实时联机数据分析结果,提高数据分析处理效率,如图7所示,本发明实施提供的数据联机分析系统可以包括客户端01和服务端02。具体实施时,客户端01接收用户输入的查询条件;根据用户输入的查询条件,以及预先配置的查询条件与SQL语句之间的关系,生成用户输入的查询条件对应的SQL语句;将用户输入的查询条件对应的SQL语句发送至服务端;服务端02根据所述SQL语句,创建抽象语法树AST对象;根据AST对象,创建查询的执行管道,所述查询的执行管道包括联机分析处理数据库中多个待查询数据块标识;根据多个待查询数据块标识,从联机分析处理数据库中匹配出对应的多个待查询数据块,从每一待查询数据块中读取查询结果,根据每一待查询数据块的查询结果形成联机分析结果;将所述联机分析结果发送至客户端。
因此,本发明实施例的数据联机分析方法,支持灵活配置查询语句,无需用户每次根据不同的查询条件逐个编码,只需要用户输入查询条件,即可根据预先配置的查询条件与SQL语句之间的关系,快速生成对应的SQL语句,从而可以提高数据查询效率;同时,本发明实施例的数据联机分析方法,在查询数据时,可以通过对SQL语句创建AST对象,进而根据AST对象,快速创建查询的执行管道,可以只查询符合查询条件的数据块,且不需要任何的数据预处理,从而可以实现在线实时数据分析,能够快速从海量数据中查找到满足查询条件的数据,提升实时数据联机分析处理效率。
本发明实施中的联机分析处理数据库为OLAP型的数据库,OLAP型的数据库中数据的存储结构不同于传统的OLTP型的数据库,是通过构建一种树形的文件存储结构,对数据进行分块、分区、列式存储。在写入数据的过程中不会经过缓冲而直接写入磁盘,将大容量数据拆分成几百兆大小的Segments,并顺序写入,在持续写入过程中,不断进行compare&merge操作,因此写入吞吐量很高。
图2为本发明实施例中的数据联机分析服务端的底层架构图。该服务端包括:
1、数据流(DataStream):支持在介质中读写数据、执行数据转换。
2、服务层(Server):即服务端接口,用于接收客户端输入的数据。
3、分析器(Parsers):负责创建AST对象,将每一条SQL语句以递归下降的方法解析成AST语法树的形式。
4、解释器(Interpreters):负责解释AST,并进一步创建查询的执行管道(即查询执行流水线)。
5、存储抽象(Storage):IStorage接口负责数据的定义、查询与写入,具体的,IStorage接口返回指定列的原始数据。
6、列(Column):表示数据库中的列块,一列数据由一个Column对象表示,Column对象分为接口和实现两个部分,在IColumn接口对象中,定义了对数据进行各种关系运算的方法。在大多数场景中,都会以整列的方式操作数据,但如果需要操作单个具体的数值(也就是单列中的一行数据),则需要使用Field对象,Field对象代表一个单值。与Column对象的泛化设计思路不同,Field对象使用了聚合的设计模式。
7、数据类型(DataTypes):负责数据的序列化和反序列化、类型转换等,可以读写二进制形式的列,从而构成数据库中的数据块;IDataType接口定义了许多正反序列化的方法,它们成对出现。IDataType接口也使用了泛化的设计模式,具体方法的实现逻辑由对应数据类型的实例承载。DataType负责序列化相关工作,并不负责数据的读取,而是转由从Column或Field对象获取。
8、数据库内置函数集合(Functions):包括比较函数、sum、count、distinct等函数。主要提供两类函数—普通函数(Functions)和聚合函数(Aggregate Functions)。普通函数由IFunction接口定义,拥有数十种函数实现,采用向量化的方式直接作用于一整列数据。聚合函数由IAggregateFunction接口定义,相比无状态的普通函数,聚合函数是有状态的。以COUNT聚合函数为例,其AggregateFunctionCount的状态使用整型记录。聚合函数的状态支持序列化与反序列化,所以能够在分布式节点之间进行传输,以实现增量计算。
因此,根据服务端的底层架构可知,联机分析处理数据库采用了数据分块、分区、列式存储、适宜OLAP的Functions的数据统计组织方法、对指定的数据类型研发性能最优越的数据结构。
图3为本发明实施例中的数据联机分析方法的原理图。图4为本发明实施例中的数据联机分析系统的底层架构图,下面结合图3和图4详细介绍本发明的数据联机分析方案。
具体实施时,如图3所示,首先,客户端可以根据动态SQL配置生成动态SQL。具体的,在上述步骤10中,用户可以通过客户端(client)输入查询条件;客户端根据用户输入的查询条件,以及预先配置的查询条件与SQL语句之间的关系(即动态SQL配置),可以生成用户输入的查询条件对应的SQL语句;从而可以实现灵活配置查询条件对应的查询语句,不需要每次都根据查询条件编写代码,从而提高了SQL生成效率,进而提高联机数据分析效率。
具体实施时,如图3所示,客户端(client)将动态SQL发送至实时联机分析系统的服务端,由服务端对动态SQL进行解析。具体的,在上述步骤20中,如图4所示,服务端接收用户输入的查询条件对应的SQL语句,并将SQL语句发送到服务端的分析器Parser。分析器Parser根据SQL语句,创建抽象语法树AST对象。再将AST对象交由解释器Interpreter进行逻辑处理,创建查询的执行管道。
其中,不同的SQL语句执行的操作不同,因此,不同的SQL语句,会经由不同的Parser分析器实现类解析。
在一个实施例中,根据所述SQL语句,创建抽象语法树AST对象,包括:按照递归下降的方法,为每一用户输入的查询条件对应的SQL语句创建对应的AST对象;
根据AST对象,创建查询的执行管道,包括:对每一用户输入的查询条件对应的SQL语句对应的AST对象进行解析,确定对应的查询的执行管道。
具体实施时,如图4所示,分析器Parser将每一条SQL语句以递归下降的方法解析成AST语法树的形式。其中,AST对象可以为各种类型的结构体,包括查询、插入、更新、删除等。解释器Interpreter对AST进行解释,确定AST对象对应的业务逻辑,并进一步创建查询的执行管道(即查询执行流水线),对联机分析处理数据库底层的数据进行查询分析和转换。
其中,解释器Interpreter的作用就像服务层Service一样,起到串联整个查询过程的作用,它会根据解释器的类型,聚合它所需要的资源。
具体实施时,查询的执行管道可以是从联机分析处理数据库中确定和AST对象对应的多个待查询数据块标识,进而在查询数据时,只需要根据多个待查询数据块标识,从联机分析处理数据库中匹配出对应的多个待查询数据块,从每一待查询数据块中读取查询结果,根据每一待查询数据块的查询结果形成联机分析结果。
在一个实施例中,每一所述数据块是由数据对象、数据类型和列标识组成的三元组;所述数据对象包括预设关系运算函数;所述数据类型包括预设正序列化函数和反序列化函数;
根据每一待查询数据块的查询结果形成联机分析结果,包括:
根据列标识获取对应的数据;
调用预设关系运算函数,对列标识对应的数据进行计算,得到数据对象对应的数据;
根据预设正序列化函数和反序列化函数,对数据对象对应的数据进行计算,得到数据类型对应的数据;
根据列标识、数据对象对应的数据和数据类型对应的数据,生成待查询数据块对应的查询结果。
具体实施时,联机分析处理数据库中的数据以数据块的数据结构存储,即Column、DataType及列标识字符串。仅通过Block对象就能完成一系列的数据操作。
具体实施时,如图4所示,通过列标识调用IStorage接口,由IStorage接口返回指定列的原始数据,该接口不对原始数据进行处理,对数据具体的加工、计算和过滤则由Column、DataTypes中的函数完成。
具体实施时,Column接口定义有预设关系运算函数,可以对指定列的原始数据进行计算,得到数据对象对应的数据。
具体实施时,数据类型接口定义了许多正序列化函数和反序列化函数,它们成对出现。DataType虽然负责序列化相关工作,但它并不直接负责数据的读取,而是转由从Column或Field对象获取。因此,数据类型接口可以从Column或Field对象获取数据,根据预设正序列化函数和反序列化函数,对数据对象对应的数据进行计算,可以得到数据类型对应的数据。
具体实施时,待查询数据块可以根据列标识、数据对象对应的数据和数据类型对应的数据,生成待查询数据块对应的查询结果。根据每一待查询数据块的查询结果形成联机分析结果,其联机分析结果为按照数据对象、数据类型、列标识进行分组后的联机分析结果。将联机分析结果发送至客户端。
下面介绍进一步优选的步骤。
在一个实施例中,客户端接收用户输入的联机分析结果期望形式;将用户输入的联机分析结果期望形式发送至服务端;
服务端接收用户输入的联机分析结果期望形式;在根据每一待查询数据块的查询结果形成联机分析结果之后,生成用户输入的联机分析结果期望形式对应的联机分析结果;将所述期望形式对应的联机分析结果发送至客户端;
客户端接收所述期望形式对应的联机分析结果。
具体实施时,如图3所示,用户还可以根据具体的需求,通过客户端输入结果集配置。具体的,用户通过客户端输入联机分析结果期望形式(即结果集配置),并将其发送至服务端,服务端在生成联机分析结果之后,还可以根据用户输入的联机分析结果期望形式,生成用户期望的联机分析结果,从而可以实现联机分析结果的灵活配置,不需要用户每次再对联机分析结果进行处理才能得到期望的联机分析结果,提升用户体验。
本发明实施例提供的数据联机分析方法的优点如下:
1、客户端可以根据用户输入的查询条件灵活配置查询语句;以及用户可以输入联机分析结果期望形式,由服务端根据联机分析结果期望形式,生成期望形式对应的联机分析结果,进而可以快速、灵活地配置用户需求,提高了数据联机分析处理效率,提升了用户体验。
2、服务端通过对SQL语句创建AST对象,进而根据AST对象,快速创建查询的执行管道,可以只查询符合查询条件的数据块,且不需要任何的数据预处理,从而可以实现在线实时数据分析,提供在线实时分析结果,提升数据联机分析处理效率。
本发明实施例中还提供了一种应用于客户端的数据联机分析方法,如下面的实施例所述。由于该方法解决问题的原理与应用于系统的数据联机分析方法相似,因此该方法的实施可以参见应用于系统的数据联机分析方法的实施,重复之处不再赘述。
图5为本发明实施例中应用于客户端的数据联机分析方法的流程示意图,如图5所示,该方法包括如下步骤:
步骤501:接收用户输入的查询条件;
步骤502:根据用户输入的查询条件,以及预先配置的查询条件与SQL语句之间的关系,生成用户输入的查询条件对应的SQL语句;
步骤503:将用户输入的查询条件对应的SQL语句发送至服务端;
步骤504:接收根据用户输入的查询条件对应的SQL语句反馈的联机分析结果。
在一个实施例中,应用于客户端的数据联机分析方法还可以包括:
接收用户输入的联机分析结果期望形式;
将用户输入的联机分析结果期望形式发送至客户端;
上述步骤504,具体可以包括:
接收所述期望形式对应的联机分析结果。
本发明实施例中还提供了一种应用于服务端的数据联机分析方法,如下面的实施例所述。由于该方法解决问题的原理与应用于系统的数据联机分析方法相似,因此该方法的实施可以参见应用于系统的数据联机分析方法的实施,重复之处不再赘述。
图6为本发明实施例中应用于服务端的数据联机分析方法的流程示意图,如图6所示,该方法包括如下步骤:
步骤601:接收用户输入的查询条件对应的SQL语句;
步骤602:根据所述用户输入的查询条件对应的SQL语句,创建抽象语法树AST对象;
步骤603:根据AST对象,创建查询的执行管道,所述查询的执行管道包括联机分析处理数据库中多个待查询数据块标识;
步骤604:根据多个待查询数据块标识,从联机分析处理数据库中匹配出对应的多个待查询数据块,从每一待查询数据块中读取查询结果,根据每一待查询数据块的查询结果形成联机分析结果;
步骤605:将所述联机分析结果发送至客户端。
在一个实施例中,应用于服务端的数据联机分析方法还包括:
接收用户输入的联机分析结果期望形式;
在根据每一待查询数据块的查询结果形成联机分析结果之后,还包括:
生成用户输入的联机分析结果期望形式对应的联机分析结果;
将所述联机分析结果发送至客户端,具体可以包括:
将所述期望形式对应的联机分析结果发送至客户端。
本发明实施例中还提供了一种数据联机分析系统,如下面的实施例所述。由于该系统解决问题的原理与应用于系统的数据联机分析方法相似,因此该系统的实施可以参见应用于系统的数据联机分析方法的实施,重复之处不再赘述。
图7为本发明实施例中数据联机分析系统的结构示意图,如图7所示,该系统包括:
客户端01,用于接收用户输入的查询条件;根据用户输入的查询条件,以及预先配置的查询条件与SQL语句之间的关系,生成用户输入的查询条件对应的SQL语句;将用户输入的查询条件对应的SQL语句发送至服务端;
服务端02,用于根据所述SQL语句,创建抽象语法树AST对象;根据AST对象,创建查询的执行管道,所述查询的执行管道包括联机分析处理数据库中多个待查询数据块标识;根据多个待查询数据块标识,从联机分析处理数据库中匹配出对应的多个待查询数据块,从每一待查询数据块中读取查询结果,根据每一待查询数据块的查询结果形成联机分析结果;将所述联机分析结果发送至客户端。
在一个实施例中,客户端还用于接收用户输入的联机分析结果期望形式;将用户输入的联机分析结果期望形式发送至服务端;
服务端还用于接收用户输入的联机分析结果期望形式;在根据每一待查询数据块的查询结果形成联机分析结果之后,生成用户输入的联机分析结果期望形式对应的联机分析结果;将所述期望形式对应的联机分析结果发送至客户端。
在一个实施例中,服务端具体用于:按照递归下降的方法,为每一用户输入的查询条件对应的SQL语句创建对应的AST对象;对每一用户输入的查询条件对应的SQL语句对应的AST对象进行解析,确定对应的查询的执行管道。
在一个实施例中,每一所述数据块是由数据对象、数据类型和列标识组成的三元组;所述数据对象包括预设关系运算函数;所述数据类型包括预设正序列化函数和反序列化函数;
服务端具体用于:根据列标识获取对应的数据;调用预设关系运算函数,对列标识对应的数据进行计算,得到数据对象对应的数据;根据预设正反序列化函数,对数据对象对应的数据进行计算,得到数据类型对应的数据;根据列标识、数据对象对应的数据和数据类型对应的数据,生成待查询数据块对应的查询结果。
本发明实施例中还提供了一种数据联机分析客户端,如下面的实施例所述。由于该客户端解决问题的原理与应用于系统的数据联机分析方法相似,因此该客户端的实施可以参见应用于系统的数据联机分析方法的实施,重复之处不再赘述。
图8为本发明实施例中数据联机分析客户端的结构示意图,如图8所示,该客户端包括:
第一接收单元011,用于接收用户输入的查询条件;接收根据用户输入的查询条件对应的SQL语句反馈的联机分析结果;
SQL语句生成单元012,用于根据用户输入的查询条件,以及预先配置的查询条件与SQL语句之间的关系,生成用户输入的查询条件对应的SQL语句;
第一发送单元013,用于将用户输入的查询条件对应的SQL语句发送至服务端。
在一个实施例中,所述第一接收单元还用于接收用户输入的联机分析结果期望形式;接收所述期望形式对应的联机分析结果;
所述第一发送单元还用于将用户输入的联机分析结果期望形式发送至服务端。
本发明实施例中还提供了一种数据联机分析服务端,如下面的实施例所述。由于该客户端解决问题的原理与应用于系统的数据联机分析方法相似,因此该客户端的实施可以参见应用于系统的数据联机分析方法的实施,重复之处不再赘述。
图9为本发明实施例中数据联机分析服务端的结构示意图,如图9所示,该服务端包括:
第二接收单元021,用于接收用户输入的查询条件对应的SQL语句;
第一创建单元022,用于根据所述用户输入的查询条件对应的SQL语句,创建抽象语法树AST对象;
第二创建单元023,用于根据AST对象,创建查询的执行管道,所述查询的执行管道包括联机分析处理数据库中多个待查询数据块标识;
结果生成单元024,用于根据多个待查询数据块标识,从联机分析处理数据库中匹配出对应的多个待查询数据块,从每一待查询数据块中读取查询结果,根据每一待查询数据块的查询结果形成联机分析结果;
第二发送单元025,用于将所述联机分析结果发送至客户端。
在一个实施例中,所述第二接收单元还用于接收用户输入的联机分析结果期望形式;
所述结果生成单元具体用于在根据每一待查询数据块的查询结果形成联机分析结果之后,生成用户输入的联机分析结果期望形式对应的联机分析结果;
第二发送单元还用于:将所述期望形式对应的联机分析结果发送至客户端。
在一个实施例中,第一创建单元具体用于按照递归下降的方法,为每一用户输入的查询条件对应的SQL语句创建对应的AST对象;
第二创建单元具体用于对每一用户输入的查询条件对应的SQL语句对应的AST对象进行解析,确定对应的查询的执行管道。
在一个实施例中,所述每一数据块是由数据对象、数据类型和列标识组成的三元组;所述数据对象包括预设关系运算函数;所述数据类型包括预设正序列化函数和反序列化函数;
结果生成单元具体用于:根据列标识获取对应的数据;
调用预设关系运算函数,对列标识对应的数据进行计算,得到数据对象对应的数据;
根据预设正序列化函数和反序列化函数,对数据对象对应的数据进行计算,得到数据类型对应的数据;
根据列标识、数据对象对应的数据和数据类型对应的数据,生成待查询数据块对应的查询结果。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据联机分析方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述数据联机分析方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述数据联机分析方法。
本发明实施例提供的数据联机分析方案:首先,客户端接收用户输入的查询条件;根据用户输入的查询条件,以及预先配置的查询条件与SQL语句之间的关系,生成用户输入的查询条件对应的SQL语句;将用户输入的查询条件对应的SQL语句发送至服务端;其次,服务端根据SQL语句,创建抽象语法树AST对象;根据AST对象,创建查询的执行管道,查询的执行管道包括联机分析处理数据库中多个待查询数据块标识;根据多个待查询数据块标识,从联机分析处理数据库中匹配出对应的多个待查询数据块,从每一待查询数据块中读取查询结果,根据每一待查询数据块的查询结果形成联机分析结果;将所述联机分析结果发送至客户端。
与现有技术中传统联机分析系统在大量报文数据分析场景中,预处理复杂且效率低下,无法进行实时的联机数据分析的技术方案相比,本发明实施例提供的数据联机分析方案的有益技术效果是:客户端通过用户输入的查询条件,以及预先配置的查询条件与SQL语句之间的关系,即可快速生成SQL语句,服务端通过对SQL语句创建抽象语法树AST对象,并根据AST对象创建查询的执行管道,可以只查询符合查询条件的数据块,因此能很快从海量数据中极快地查找到满足条件的数据,且不需要任何的数据预处理,从而可以进行在线实时数据分析,提供实时联机数据分析结果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (19)

1.一种数据联机分析方法,其特征在于,包括:
客户端接收用户输入的查询条件;根据用户输入的查询条件,以及预先配置的查询条件与SQL语句之间的关系,生成用户输入的查询条件对应的SQL语句;将用户输入的查询条件对应的SQL语句发送至服务端;
服务端根据所述SQL语句,创建抽象语法树AST对象;根据AST对象,创建查询的执行管道,所述查询的执行管道包括联机分析处理数据库中多个待查询数据块标识;根据多个待查询数据块标识,从联机分析处理数据库中匹配出对应的多个待查询数据块,从每一待查询数据块中读取查询结果,根据每一待查询数据块的查询结果形成联机分析结果;将所述联机分析结果发送至客户端。
2.如权利要求1所述的数据联机分析方法,其特征在于,还包括:
客户端接收用户输入的联机分析结果期望形式;将用户输入的联机分析结果期望形式发送至服务端;
服务端接收用户输入的联机分析结果期望形式;在根据每一待查询数据块的查询结果形成联机分析结果之后,生成用户输入的联机分析结果期望形式对应的联机分析结果;将所述期望形式对应的联机分析结果发送至客户端。
3.如权利要求1所述的数据联机分析方法,其特征在于,根据所述SQL语句,创建抽象语法树AST对象,包括:按照递归下降的方法,为每一用户输入的查询条件对应的SQL语句创建对应的AST对象;
根据AST对象,创建查询的执行管道,包括:对每一用户输入的查询条件对应的SQL语句对应的AST对象进行解析,确定对应的查询的执行管道。
4.如权利要求1所述的数据联机分析方法,其特征在于,每一所述数据块是由数据对象、数据类型和列标识组成的三元组;所述数据对象包括预设关系运算函数;所述数据类型包括预设正序列化函数和反序列化函数;
根据每一待查询数据块的查询结果形成联机分析结果,包括:
根据列标识获取对应的数据;
调用预设关系运算函数,对列标识对应的数据进行计算,得到数据对象对应的数据;
根据预设正序列化函数和反序列化函数,对数据对象对应的数据进行计算,得到数据类型对应的数据;
根据列标识、数据对象对应的数据和数据类型对应的数据,生成待查询数据块对应的查询结果。
5.一种数据联机分析方法,其特征在于,包括:
接收用户输入的查询条件;
根据用户输入的查询条件,以及预先配置的查询条件与SQL语句之间的关系,生成用户输入的查询条件对应的SQL语句;
将用户输入的查询条件对应的SQL语句发送至服务端;
接收根据用户输入的查询条件对应的SQL语句反馈的联机分析结果。
6.如权利要求5所述的数据联机分析方法,其特征在于,还包括:
接收用户输入的联机分析结果期望形式;
将用户输入的联机分析结果期望形式发送至客户端;
接收根据用户输入的查询条件对应的SQL语句反馈的联机分析结果,包括:接收所述期望形式对应的联机分析结果。
7.一种数据联机分析方法,其特征在于,包括:
接收用户输入的查询条件对应的SQL语句;
根据所述用户输入的查询条件对应的SQL语句,创建抽象语法树AST对象;
根据AST对象,创建查询的执行管道,所述查询的执行管道包括联机分析处理数据库中多个待查询数据块标识;
根据多个待查询数据块标识,从联机分析处理数据库中匹配出对应的多个待查询数据块,从每一待查询数据块中读取查询结果,根据每一待查询数据块的查询结果形成联机分析结果;
将所述联机分析结果发送至客户端。
8.如权利要求7所述的数据联机分析方法,其特征在于,还包括:
接收用户输入的联机分析结果期望形式;
在根据每一待查询数据块的查询结果形成联机分析结果之后,还包括:
生成用户输入的联机分析结果期望形式对应的联机分析结果;
将所述联机分析结果发送至客户端,包括:
将所述期望形式对应的联机分析结果发送至客户端。
9.一种数据联机分析系统,其特征在于,包括:
客户端,用于接收用户输入的查询条件;根据用户输入的查询条件,以及预先配置的查询条件与SQL语句之间的关系,生成用户输入的查询条件对应的SQL语句;将用户输入的查询条件对应的SQL语句发送至服务端;
服务端,用于根据所述SQL语句,创建抽象语法树AST对象;根据AST对象,创建查询的执行管道,所述查询的执行管道包括联机分析处理数据库中多个待查询数据块标识;根据多个待查询数据块标识,从联机分析处理数据库中匹配出对应的多个待查询数据块,从每一待查询数据块中读取查询结果,根据每一待查询数据块的查询结果形成联机分析结果;将所述联机分析结果发送至客户端。
10.如权利要求9所述的数据联机分析系统,其特征在于,客户端还用于接收用户输入的联机分析结果期望形式;将用户输入的联机分析结果期望形式发送至服务端;
服务端还用于接收用户输入的联机分析结果期望形式;在根据每一待查询数据块的查询结果形成联机分析结果之后,生成用户输入的联机分析结果期望形式对应的联机分析结果;将所述期望形式对应的联机分析结果发送至客户端。
11.如权利要求9所述的数据联机分析系统,其特征在于,服务端具体用于:按照递归下降的方法,为每一用户输入的查询条件对应的SQL语句创建对应的AST对象;对每一用户输入的查询条件对应的SQL语句对应的AST对象进行解析,确定对应的查询的执行管道。
12.如权利要求9所述的数据联机分析系统,其特征在于,每一所述数据块是由数据对象、数据类型和列标识组成的三元组;所述数据对象包括预设关系运算函数;所述数据类型包括预设正序列化函数和反序列化函数;
服务端具体用于:根据列标识获取对应的数据;调用预设关系运算函数,对列标识对应的数据进行计算,得到数据对象对应的数据;根据预设正反序列化函数,对数据对象对应的数据进行计算,得到数据类型对应的数据;根据列标识、数据对象对应的数据和数据类型对应的数据,生成待查询数据块对应的查询结果。
13.一种数据联机分析客户端,其特征在于,包括:
第一接收单元,用于接收用户输入的查询条件;接收根据用户输入的查询条件对应的SQL语句反馈的联机分析结果;
SQL语句生成单元,用于根据用户输入的查询条件,以及预先配置的查询条件与SQL语句之间的关系,生成用户输入的查询条件对应的SQL语句;
第一发送单元,用于将用户输入的查询条件对应的SQL语句发送至服务端。
14.如权利要求13所述的数据联机分析客户端,其特征在于,所述第一接收单元还用于接收用户输入的联机分析结果期望形式;接收所述期望形式对应的联机分析结果;
所述第一发送单元还用于将用户输入的联机分析结果期望形式发送至服务端。
15.一种数据联机分析服务端,其特征在于,包括:
第二接收单元,用于接收用户输入的查询条件对应的SQL语句;
第一创建单元,用于根据所述用户输入的查询条件对应的SQL语句,创建抽象语法树AST对象;
第二创建单元,用于根据AST对象,创建查询的执行管道,所述查询的执行管道包括联机分析处理数据库中多个待查询数据块标识;
结果生成单元,用于根据多个待查询数据块标识,从联机分析处理数据库中匹配出对应的多个待查询数据块,从每一待查询数据块中读取查询结果,根据每一待查询数据块的查询结果形成联机分析结果;
第二发送单元,用于将所述联机分析结果发送至客户端。
16.如权利要求15所述的数据联机分析服务端,其特征在于,所述第二接收单元还用于接收用户输入的联机分析结果期望形式;
所述结果生成单元具体用于在根据每一待查询数据块的查询结果形成联机分析结果之后,生成用户输入的联机分析结果期望形式对应的联机分析结果;
第二发送单元还用于:将所述期望形式对应的联机分析结果发送至客户端。
17.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8任一所述方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至8任一所述方法。
19.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现权利要求1至8任一所述方法。
CN202210041502.3A 2022-01-14 2022-01-14 数据联机分析方法、系统、客户端及服务端 Pending CN114385669A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210041502.3A CN114385669A (zh) 2022-01-14 2022-01-14 数据联机分析方法、系统、客户端及服务端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210041502.3A CN114385669A (zh) 2022-01-14 2022-01-14 数据联机分析方法、系统、客户端及服务端

Publications (1)

Publication Number Publication Date
CN114385669A true CN114385669A (zh) 2022-04-22

Family

ID=81201919

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210041502.3A Pending CN114385669A (zh) 2022-01-14 2022-01-14 数据联机分析方法、系统、客户端及服务端

Country Status (1)

Country Link
CN (1) CN114385669A (zh)

Similar Documents

Publication Publication Date Title
CN110618983B (zh) 基于json文档结构的工业大数据多维分析与可视化方法
JP6617117B2 (ja) 半構造データのためのスケーラブルな分析プラットフォーム
US9424150B2 (en) Fault tolerance based query execution
US20080222634A1 (en) Parallel processing for etl processes
US9348874B2 (en) Dynamic recreation of multidimensional analytical data
Riondato et al. The VC-dimension of SQL queries and selectivity estimation through sampling
CA2795525A1 (en) Columnar storage representations of records
US10977280B2 (en) Systems and methods for memory optimization interest-driven business intelligence systems
Swarna et al. Apache Pig-a data flow framework based on Hadoop Map Reduce
Bala et al. P-ETL: Parallel-ETL based on the MapReduce paradigm
CN109684319A (zh) 数据清洗系统、方法、装置及存储介质
US20230418824A1 (en) Workload-aware column inprints
CN113297057A (zh) 内存分析方法、装置及系统
CN104133891A (zh) 一种基于关系型数据库的海量结构化数据的存储方法
CN108334532B (zh) 一种基于Spark的Eclat并行化方法、系统及装置
Moussa Tpc-h benchmark analytics scenarios and performances on hadoop data clouds
CN113342843A (zh) 大数据在线分析方法和系统
US10235100B2 (en) Optimizing column based database table compression
TW201327199A (zh) 雲端線上即時多維度分析系統與方法
US20150134660A1 (en) Data clustering system and method
CN111046054A (zh) 一种电力营销业务数据分析的方法和系统
CN115062028B (zh) 一种OLTP领域多表join查询的方法
CN114385669A (zh) 数据联机分析方法、系统、客户端及服务端
CN111090708B (zh) 基于数据仓库的用户特征产出方法和系统
CN114328606A (zh) Sql执行效率的提高方法、设备及存储介质

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