CN110442602A - 数据查询方法、装置、服务器及存储介质 - Google Patents
数据查询方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN110442602A CN110442602A CN201910590884.3A CN201910590884A CN110442602A CN 110442602 A CN110442602 A CN 110442602A CN 201910590884 A CN201910590884 A CN 201910590884A CN 110442602 A CN110442602 A CN 110442602A
- Authority
- CN
- China
- Prior art keywords
- data
- connector
- prepolymerization
- polymerization
- 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.)
- Granted
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—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/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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例涉及大数据技术领域,提供一种数据查询方法、装置、服务器及存储介质,通过分布式环境中的查询器对分布式数据库中的数据进行聚合查询时,所述方法包括:对接收到的结构化查询语言SQL语句进行解析,并将SQL语句中的聚合操作下推至连接器;然后,接收连接器反馈的聚合结果,聚合结果是对分布式数据库依据聚合操作对数据表进行预聚合得到的多个预聚合结果进行再聚合得到的。与现有技术相比,本实施例中在连接器和分布式数据库中进行数据聚合,查询器接收到的是连接器反馈的聚合结果,这样就避免了大量数据的传输,有效提升了查询器进行聚合查询的速度。
Description
技术领域
本发明实施例涉及大数据技术领域,具体而言,涉及一种数据查询方法、装置、服务器及存储介质。
背景技术
Spark是一种基于内存的分布式计算框架,其中包括能够处理SQL(StructuredQuery Language,结构化查询语言)语句的SparkSQL,通过SparkSQL可以对多种数据库中的数据进行读取及分析统计等。但是,目前SparkSQL对数据库中的数据进行聚合查询时,聚合查询包括分组聚合查询和常规聚合查询,例如,“分别统计student表中gender字段为“男”、“女”的学生成绩之和”、“统计user表中人员的平均年龄”等,SparkSQL会把数据表中的全部数据读取到Spark中再进行聚合计算,可能会产生大量的网络数据传输流量,导致聚合查询效率低下、查询速度缓慢。
发明内容
本发明实施例的目的在于提供一种数据查询方法、装置、服务器及存储介质,用以提高查询器进行聚合查询的速度。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种数据查询方法,应用于分布式环境中的查询器,所述方法包括:对接收到的结构化查询语言SQL语句进行解析,并将所述SQL语句中的聚合操作下推至连接器;接收所述连接器反馈的聚合结果,所述聚合结果是对分布式数据库依据所述聚合操作对数据表进行预聚合得到的多个预聚合结果进行再聚合得到的。
第二方面,本发明实施例还提供了一种数据查询装置,所述数据查询装置包括分布式环境中的查询器,所述查询器用于:对接收到的结构化查询语言SQL语句进行解析,并将所述SQL语句中的聚合操作下推至连接器;接收所述连接器反馈的聚合结果,所述聚合结果是对分布式数据库依据所述聚合操作对数据表进行预聚合得到的多个预聚合结果进行再聚合得到的。
第三方面,本发明实施例还提供了一种服务器,所述服务器包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的数据查询方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述的数据查询方法。
相对现有技术,本发明实施例提供的一种数据查询方法、装置、服务器及存储介质,通过分布式环境中的查询器对分布式数据库中的数据进行聚合查询时,查询器先对接收到的SQL语句进行解析,并将SQL语句中的聚合操作下推至连接器,连接器将聚合操作发送至分布式数据库,分布式数据库依据聚合操作对数据表进行预聚合得到多个预聚合结果并反馈给连接器,连接器依据多个预聚合结果进行再聚合得到聚合结果后反馈给查询器。与现有技术相比,本实施例中聚合处理在连接器和分布式数据库中进行,查询器接收到的是连接器反馈的聚合结果,这样就避免了大量数据的传输,有效提升了Spark组件进行聚合查询的速度。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的数据查询方法的流程示意图。
图2示出了本发明实施例提供的数据查询方法的又一流程示意图。
图3示出了SparkSQL对SQL语句的解析流程图。
图4示出了本发明实施例提供的数据查询方法的又一流程示意图。
图5示出了本发明实施例提供的数据查询方法的又一流程示意图。
图6示出了本发明实施例提供的数据查询方法的又一流程示意图。
图7示出了本发明实施例提供的数据查询装置的方框示意图。
图8示出了本发明实施例提供的服务器的方框示意图。
图标:10-服务器;11-处理器;12-存储器;13-总线;100-数据查询装置;110-查询器;120-连接器;130-分布式数据库;111-第一解析模块;112-第二解析模块;113-执行模块;121-第一处理模块;122-第二处理模块;123-第三处理模块;131-分区服务器。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本发明实施例提供的数据查询方法,可以应用于预先建立有查询器、连接器及分布式数据库的服务器,此处的服务器可以是单个服务器,可以是服务器群组,也就是,查询器、连接器及分布式数据库可以部署在同一服务器,也可以部署在不同服务器。如果查询器、连接器及分布式数据库部署在同一服务器,则查询器、连接器及分布式数据库是该服务器的三个功能模块,如果查询器、连接器及分布式数据库部署在不同服务器,则查询器、连接器及分布式数据库是不同服务器的功能模块、或者是三个独立的服务器。为便于描述,后续实施例以查询器、连接器及数据库部署在同一服务器为例进行描述。
查询器的运行环境为分布式环境,用于实现数据查询功能,此处的查询器可以是Spark组件、Hadoop组件等,Spark组件是一种基于内存的分布式计算框架,可以通过SparkSQL实现数据的查询,SparkSQL是Spark组件的一个模块,主要用于进行结构化数据的处理;Hadoop组件一种分布式系统基础架构,可以通过Hive实现数据的查询,Hive架构在Hadoop之上,是一个数据仓库基础工具,在Hadoop中用来处理结构化数据,本实施例以查询器为Spark组件为例进行描述;分布式数据库用于实现数据存储功能,连接器用于实现Spark组件与分布式数据库之间的指令转换,Spark组件可以通过连接器访问分布式数据库。
Spark组件可以通过SparkSQL实现数据的查询,SparkSQL是一种基于Spark组件的分布式SQL引擎,Spark组件可以通过SparkSQL对多种数据源中的数据进行读取、以及通过SQL语句对这些数据源中的数据进行分析统计等。SparkSQL可以提供多个接口供用户使用,例如,JDBC(Java DataBase Connectivity,Java数据库连接)、ODBC(Open DatabaseConnectivity,开放数据库连接)、API(Application Programming Interface,应用程序编程接口)等接口。SparkSQL还可以支持多种格式的数据源,例如,JSON(Java Script ObjectNotation,Java脚本对象标记)、Parquet(列式存储格式)、avro(数据序列化的系统)、CSV(Comma Separated Values,逗号分隔值文)等格式。
分布式数据库是用于存储数据的仓库,分布式数据库包括数据表,数据按照各自的类型和使用特性被分别存储到不同的数据表中,目前常见的分布式数据库包括Hive数据库、HBase数据库和ElasticSearch数据库等等,本实施例中的分布式数据库采用HBase数据库。
HBase数据库是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可以在服务器上搭建起大规模结构化存储集群。HBase数据库以HBase表的形式存储数据,HBase表可以由行和列族(ColumnFamily)组成,HBase表的示例如下表1所示:
表1 HBase表示例
行键(RowKey)是HBase表的索引,对HBase表中数据的访问方式包括单个行键访问、行键范围访问或者全表扫描,其中,单个行键访问性能最优,行键范围访问性能次之,全表扫描性能最差。当接收到查询请求时,如果查询请求携带的行键是001,则从HBase表中查询到的内容是第一行数据,故返回第一行数据。此外,列族可以由一个或者多个列组成,表1中每个列的列名如name、province、city等为元数据,每个元数据对应多个属性值,例如name对应的属性值有Lilei、Wanggang。
HBase数据库不支持SQL语言访问,而是提供了原生的API给用户使用,而SparkSQL具有以下特性:1.支持更完善SQL;2.支持广泛的数据源,可将多个异构数据库中的数据同时进行分析处理;3.擅长做海量数据的分析;4.处理后的数据可在内存级别与Spark组件中的其他组件共享,例如机器学习组件、流数据处理组件等,因此,通常使用SparkSQL查询HBase数据库中的数据,并且SparkSQL必须通过连接器访问Hbase数据库。
连接器是查询器和分布式数据库之间的桥梁,用于实现查询器和数据库之间的指令转换。当使用SparkSQL通过连接器访问Hbase数据库时,该连接器是可以是SparkSQL-Hbase连接器,SparkSQL-Hbase连接器可以实现SparkSQL与Hbase数据库之间的指令转换。为便于描述,下述实施例以SparkSQL通过SparkSQL-Hbase连接器查询Hbase数据库中的数据为例进行描述。
目前,如果使用SparkSQL对Hbase数据库中的数据进行简单查询,SparkSQL的性能较好,但是如果进行聚合查询,例如,均值查询、总和查询、分组查询等,SparkSQL的性能较差。原因在于SparkSQL对Hbase数据库中的数据进行聚合查询,例如,“统计user表中人员的平均年龄”时,SparkSQL会把数据表中的全部数据读取到Spark组件中再进行聚合计算,大量数据传输需要消耗大量内存和产生大量网络流量,导致查询速度和效率低下。
为解决上述问题,本发明实施例中Spark组件对接收到的SQL语句进行解析,并将SQL语句中的聚合操作推送至连接器,在连接器和分布式数据库中进行聚合后再将聚合结果返回到查询器,从而有效提升Spark组件进行聚合查询的速度,下面进行详细介绍。
请参照图1,图1示出了本发明实施例提供的数据查询方法的流程示意图。该数据查询方法可以应用于服务器,该数据查询方法包括以下步骤:
步骤S101,查询器对接收到的结构化查询语言SQL语句进行解析,并将SQL语句中的聚合操作下推至连接器。
在本实施例中,SQL语句是客户端发送至服务器的查询语句,也就是说,当客户端需要对HBase数据库中的数据进行查询时,会向服务器发送SQL语句,例如,select sum(age)from shc01 where id>30 group by key;。
SQL语句包括聚合操作和数据表属性信息,数据表属性信息用于指示出具体要查询的HBase表,数据表属性信息可以包括表信息、字段信息等,其中,表信息可以包括HBase表的表名等,字段信息可以包括HBase表的rowkey信息、列族和列信息等,例如,SQL语句为:select*from shc01 where id=3;则对应的数据表属性信息为:表名为shc01、列ID为3。
聚合操作用于对数据属性信息对应的数据表进行聚合查询,通常聚合查询可以包括常规聚合查询和分组聚合查询,常规聚合查询时聚合操作包括聚合函数且不包括分组语句,即,SQL语句不带有groupby语句(分组语句),在执行该SQL语句时,按照聚合函数对数据表中的数据进行聚合即可。其中,聚合函数可以包括用于求和的sum函数、用于求平均的avg函数、用于统计行数的count函数、用于确定最小值的min函数以及用于确定最大值的max函数,例如,select sum from shc01 where id>30,该SQL语句表示对shc01中列ID>30的所有数据进行求和。
分组聚合查询时聚合操作包括分组语句和聚合函数,即,SQL语句带有groupby语句(分组语句),在执行该SQL语句时,通常是先对数据表进行分组,再按照聚合函数对分组得到的每组数据进行聚合,例如,例如,select sum(age)from shc01 where id>30 groupby key,该SQL语句表示对shc01中列ID>30的所有数据按照key分组并求和。在本实施例中,Spark组件获得客户端发送的SQL语句后,由于HBase数据库不提供SQL操作方式,故需要先依据SQL语句中的数据表属性信息,在SparkSQL中建表关联HBase数据库中的表,例如,SQL语句为:select*from shc01 where id=3;则需要在SparkSQL中进行以下处理:
1.建表并指定表名为shc01,例如,CREATE TABLE shc01;
2.指定SparkSQL中的哪个类处理SQL语句,例如,USING org.apache.spark.sql.execution.datasources.hbase;
3.指定SQL语句携带的数据表属性信息,包括表名、rowkey信息、列族和列信息等,例如,TABLENAME"SHC01",ROWKEY"key",COLUMNS"rowkey:key:string,info:name:string,info:age:int,info:id:Double"。
在SparkSQL中建表关联HBase数据库中的表之后,需要对SQL语句进行解析,并将SQL语句中的聚合操作下推至连接器,请参照图2,步骤S101可以包括以下子步骤:
子步骤S1011,Spark组件对SQL语句进行语言解析及优化,得到逻辑计划,其中,逻辑计划包括聚合操作。
请参照图3,SparkSQL对SQL语句进行语言解析及优化的过程可以包括:首先,SparkSQL对SQL语句进行语法解析得到不可执行的逻辑计划,即UnResolved LogicalPlan;然后,SparkSQL对不可执行逻辑计划进行词法解析得到可执行的逻辑计划,即ResolvedLogicalPlan;接下来,SparkSQL根据配置的优化规则对可执行的逻辑计划进行优化,得到优化的逻辑计划,即,Optimized LogicalPlan,此时得到的逻辑计划就能进一步解析为物理计划。
SparkSQL对SQL语句进行语言解析及优化,得到逻辑计划后,需要按照执行策略对逻辑计划进一步解析为物理计划,之后Spark组件的执行端就能执行该物理计划并返回相应的数据。但是,现有技术中,当逻辑计划包括聚合操作时,SparkSQL将逻辑计划解析为物理计划并执行时,会将数据表中的全部数据读取到Spark组件中再进行聚合,这样就会消耗大量内存和产生大量网络流量,导致查询速度非常缓慢,查询效率低下。
为解决这一问题,本实施例在将逻辑计划解析为物理计划时,在执行策略的外部数据源策略中添加对聚合操作的处理功能,这样SparkSQL在执行得到的物理计划时,会将聚合操作下推至连接器,在连接器和分布式数据库中进行聚合后再将聚合结果返回到Spark组件,从而有效提升Spark组件进行聚合查询的速度,下面通过子步骤S1022对逻辑计划解析为物理计划的过程进行详细介绍。
子步骤S1022,Spark组件对逻辑计划进行解析,从逻辑计划中提取出聚合操作,并将聚合操作作为聚合方法的参数,得到物理计划。
在本实施例中,SparkSQL在执行策略的外部数据源策略中添加聚合操作的处理功能,也就是,SparkSQL预先定义聚合接口及聚合接口中的聚合方法,聚合接口是外部数据源策略这一组规则的集合,它规定了实现聚合接口的必须拥有的一组规则,聚合方法就是聚合处理这一个规则,换句话说,聚合方法是添加到外部数据源策略这一组规则中的一个新规则。同时,聚合方法包括表信息和聚合函数信息这两个形参,例如,
trait PrunedAggressScan{def buildScan(requiredColumns:Array[String],filters:Array[Filter],aggressKey:Array[String],aggressFunction:A->B):RDD[Row]}
其中,PrunedAggressScan表示聚合接口,buildScan表示聚合方法,Columns表示数据表中的列,aggress表示聚合函数,A和B分别表示聚合函数的参数类型和返回类型,如sum(age)=sum_age,A代表age的数据类型int,B代表sum_age的数据类型init。
同时,预先设置连接器继承Spark组件中定义的聚合接口并实现聚合接口中的聚合方法,也就是,设置连接器为该聚合接口的实现类并运行该聚合方法,例如,
buildScan(requiredColumns:Array[String],filters:Array[Filter],aggressKey:Array[String],aggressFunction:A->B)
即,设置连接器继承PrunedAggressScan接口并实现buildScan方法。
在SparkSQL和连接器预先做了上述设置的情况下,当SparkSQL对逻辑计划进行解析时,如果逻辑计划中包括聚合操作,则会匹配到外部数据源策略,也就是,从逻辑计划中提取出聚合操作和数据表属性信息,并将逻辑计划中的聚合操作和数据表属性信息作为聚合方法的参数,也就是,将预先定义的聚合方法中的表信息和聚合函数信息分别具体化为数据表属性信息和聚合操作,例如,聚合操作为sum,则buildScan方法中的aggressKey具体为sum,这样得到最终的物理计划,该物理计划被Spark组件执行时,会将数据表属性信息和聚合操作下推至分布式数据库。
子步骤S1023,Spark组件执行物理计划,以将聚合操作推送至连接器。
在本实施例中,由于Spark组件只是定义了聚合接口和聚合方法,并不能对聚合方法进行实现,故当Spark组件执行物理计划时,会去找聚合接口的实现类,即连接器,并将聚合操作和数据表属性信息下推至连接器,使得连接器实现该聚合方法,也就是实现聚合操作。
步骤S102,连接器依据聚合方法构建查询对象,并将聚合操作和分布式数据库的协处理器信息封装进查询对象后发送给分布式数据库的多个分区服务器。
在本实施例中,当Spark组件将聚合操作和数据表属性信息下推至连接器后,连接器就能根据聚合方法访问HBase表中的数据进行聚合。
在本实施例中,连接器在实现聚合方法时,先根据聚合方法(例如,buildScan方法)构建出查询对象(Scan对象),查询对象(Scan对象)是HBase数据库对HBase表进行预聚合的指令;再根据聚合方法(例如,buildScan方法)将聚合操作和数据表属性信息封装进查询对象(Scan对象)中。
同时,为了提升分布式数据库(例如,HBase数据库)对数据表进行预聚合的性能,可以在分布式数据库(例如,HBase数据库)中采用协处理器(coprocessors)进行数据的聚合计算,这样就需要连接器将分布式数据库(例如,HBase数据库)的协处理器信息也封装进查询对象(Scan对象),协处理器信息指的是协处理器的处理流程信息。由于HBase数据库的协处理器包括Observers协处理器和Endpoint协处理器,而Observers协处理器和Endpoint协处理器的处理流程不同,因此需要将具体的协处理器信息也封装进查询对象(Scan对象),这样HBase数据库在接收到查询对象(Scan对象)后,就能根据协处理器信息确定出具体的协处理器。
在本实施例中,HBase数据库包括多个分区服务器(Regionserver),HBase表包括多个数据分区(region),数据分区(region)是HBase数据库中对HBase表进行切割的单元;分区服务器(Regionserver)是HBase数据库中真正负责管理数据的服务器,也就是负责为客户端进行数据读写的服务器,每一分区服务器(Regionserver)都会管理多个数据分区(region),同一个分区服务器(Regionserver)管理的所有数据分区(region)不属于同一张HBase表。
下面对HBase数据库的Observers协处理器和Endpoint协处理器进行简单介绍。
Observers协处理器可以理解为传统数据库的触发器,当发生某些事件的时候Observers协处理器会被Regionserver调用,Observers协处理器包括一些分布在Regionserver中的钩子函数,在固定的事件发生时被调用。例如,put操作之前有钩子函数prePut,该钩子函数prePut在put操作执行前会被Regionserver调用,在put操作之后则有postPut钩子函数。
Endpoint协处理器类似传统数据库中的存储过程,客户端可以调用Endpoint协处理器执行一段Regionserver端代码,并将Regionserver端代码的结果返回给客户端进一步处理,最常见的用法就是进行聚合操作。如果没有Endpoint协处理器,当用户需要找出一张表中的最大数据,即进行max操作时,就必须进行全表扫描,在客户端遍历扫描结果,并执行求最大值的操作,这样效率过于低下,而利用Endpoint协处理器用户可以将聚合函数部署到Regionserver端,在RegionServer端计算出每个region的最大值,仅仅将该最后得到的值返回给客户端,在客户端进一步将多个region的最大值进一步处理而找到其中的最大值,这样整体的执行效率会提高很多。
步骤S103,分区服务器对查询对象进行解析,得到聚合操作和协处理器。
在本实施例中,连接器向HBase数据库发送查询对象(Scan对象),也就是向HBase数据库中的多个分区服务器(Regionserver)发送查询对象(Scan对象),每一分区服务器(Regionserver)接收到查询对象(Scan对象)后,均对查询对象Scan对象)进行解析,得到聚合操作、数据表属性信息和协处理器。
步骤S104,分区服务器对本分区服务器存储的数据进行查询得到数据表的分区查询结果。
在本实施例中,分区服务器(Regionserver)得到聚合操作、数据表属性信息和协处理器之后,需要依据数据表属性信息对本分区服务器存储的数据进行查询得到数据表的分区查询结果,也就是从本分区服务器存储的全部数据中查询出对应数据表属性信息的所有数据。
步骤S105,分区服务器控制协处理器依据聚合操作对分区查询结果进行预聚合得到预聚合结果,并将预聚合结果反馈至连接器。
在本实施例中,当聚合操作包括聚合函数且不包括分组语句,即,SQL语句不带有groupby语句(分组语句)时,协处理器按照聚合函数对分区查询结果进行预聚合,得到预聚合结果并返回给连接器,例如,求出HBase表的总行数:select count(*)from table,聚合函数为count,分区服务器得到的分区查询结果包括200行数据,则协处理器得到的预聚合结果为200。
需要指出的是,聚合操作中的聚合函数不同,分区服务器(Regionserver)对应的协处理器实现的功能也不同,例如,对于sum函数,协处理器是对分区查询结果进行求和,得到求和结果并返回给连接器;对于avg函数,协处理器是对分区查询结果求平均值,并将分区查询结果对应的平均值和数据总个数返回给连接器。
当聚合操作包括分组语句和聚合函数,即,SQL语句带有groupby语句时,例如,求每个班级的平均年龄:select avg(age)from table group by classname,其中分组语句为group by classname,聚合函数为avg(age)。此时,协处理器按照聚合操作对分区查询结果进行预聚合得到预聚合结果的过程,可以包括以下步骤:
首先,协处理器按照分组语句对分区查询结果进行分组,得到至少一个第一分组,例如,按照分组语句group by classname对分区查询结果进行分组,此时每个第一分组也就是一个班级的数据,如1班、2班、3班等。
然后,协处理器依据聚合函数对每一第一分组中的全部数据进行聚合得到每一第一分组的预聚合值,其中,预聚合结果包括每一第一分组的预聚合值,例如,依据聚合函数avg(age)计算每一班级中的年龄均值,并将每一班级的年龄均值和数据总个数返回给连接器,也就是,每一第一分组的预聚合值包括每一班级的年龄均值和数据总个数,如,1班:10/50,2班:11/60,3班:10/50。
步骤S106,连接器接收每个分区服务器依据聚合操作对数据表进行预聚合得到的预聚合结果。
在本实施例中,每一分区服务器(Regionserver)控制对应的协处理器依据聚合操作对分区查询结果进行预聚合得到预聚合结果之后,每一分区服务器(Regionserver)都会将预聚合结果返回给连接器。
步骤S107,连接器依据聚合操作对多个预聚合结果进行再聚合得到聚合结果,并将聚合结果反馈至查询器。
在本实施例中,连接器接收到多个预聚合结果后,依据聚合操作对多个预聚合结果进行再聚合得到聚合结果并返回至Spark组件。
当聚合操作包括聚合函数且不包括分组语句,即,SQL语句不带有groupby语句(分组语句)时,连接器按照聚合函数对多个预聚合结果进行再聚合得到聚合结果并返回至Spark组件,例如,求出HBase表的总行数,HBase数据库的分区服务器(Regionserver)发送的预聚合结果包括200、300、400,则连接器对预聚合结果进行再聚合得到聚合结果为900并返回至Spark组件。
当聚合处理指令包括分组语句和聚合函数,即,SQL语句带有groupby语句时,例如,求每个班级的平均年龄:select avg(age)from table group by classname,连接器依据聚合操作对多个预聚合结果进行再聚合得到聚合结果的过程,可以包括以下步骤:
首先,连接器按照分组语句对多个预聚合结果再次进行分组,得到至少一个第二分组,此时每个第二分组也就是一个班级的数据,如1班、2班、3班等。
然后,连接器依据聚合函数对每一第二分组中的全部预聚合值进行再聚合,得到每一第二分组的聚合值,其中,聚合结果包括每一第二分组的聚合值,例如,多个预聚合结果包括:
1班:10/50,2班:11/60,3班:10/50;
1班:9/50,2班:10/50,3班:9/40;
1班:10/40,2班:10/40,3班:9/60;
连接器按照group by classname对多个预聚合结果再次进行分组,再按照公式sum(a*b)/sum(a)计算出每个班级的平均年龄,其中,a表示每一班级的数据总个数,b表示每一班级的年龄均值,则得到聚合结果:1班:9.6,2班:10.4,3班:9.3。
步骤S108,查询器接收连接器反馈的聚合结果,聚合结果是对分布式数据库依据聚合操作对数据表进行预聚合得到的多个预聚合结果进行再聚合得到的。
请参照图4,图4示出了本发明实施例提供的应用于查询器的数据查询方法的流程示意图,该应用于查询器的数据查询方法包括以下步骤:
步骤S201,查询器对接收到的结构化查询语言SQL语句进行解析,并将SQL语句中的聚合操作下推至连接器。
步骤S202,查询器接收连接器反馈的聚合结果,聚合结果是对分布式数据库依据聚合操作对数据表进行预聚合得到的多个预聚合结果进行再聚合得到的。
请参照图5,图5示出了本发明实施例提供的应用于连接器的数据查询方法的流程示意图,该应用于连接器的数据查询方法包括以下步骤:
步骤S301,连接器依据聚合方法构建查询对象,并将聚合操作和分布式数据库的协处理器信息封装进查询对象后发送给分布式数据库的多个分区服务器。
步骤S302,连接器接收每个分区服务器依据聚合操作对数据表进行预聚合得到的预聚合结果。
步骤S303,连接器依据聚合操作对多个预聚合结果进行再聚合得到聚合结果,并将聚合结果反馈至查询器。
请参照图6,图6示出了本发明实施例提供的应用于分布式数据库的分区服务器的数据查询方法的流程示意图,该应用于分布式数据库的分区服务器的数据查询方法包括以下步骤:
步骤S401,分区服务器对查询对象进行解析,得到聚合操作和协处理器。
步骤S402,分区服务器依据聚合操作对本分区服务器存储的数据进行查询得到数据表的分区查询结果。
步骤S403,分区服务器控制协处理器依据聚合操作对分区查询结果进行预聚合得到预聚合结果,并将预聚合结果反馈至连接器。
与现有技术相比,本发明实施例具有以下有益效果:
Spark组件接收客户端发送的SQL语句,且SQL语句包括聚合操作时,Spark组件可以通过SparkSQL对Hbase数据库进行聚合查询,SparkSQL对SQL语句进行解析得到物理计划后,将SQL语句中的聚合操作下推至连接器,在连接器和分布式数据库中进行聚合后再将聚合结果返回到Spark组件,避免将大量数据拉取到Spark组件中进行聚合,减少了内存消耗,提升了Spark组件进行聚合查询的速度。
请参照图7,图7示出了本发明实施例提供的数据查询装置100的方框示意图。数据查询装置100包括查询器110、连接器120及分布式数据库130。
查询器110,用于对接收到的结构化查询语言SQL语句进行解析,并将SQL语句中的聚合操作下推至连接器;接收连接器反馈的聚合结果,聚合结果是对分布式数据库依据聚合操作对数据表进行预聚合得到的多个预聚合结果进行再聚合得到的。
在本实施例中,查询器110为Spark组件,Spark组件预先定义聚合接口及聚合接口中的聚合方法,Spark组件包括第一解析模块111、第二解析模块112及执行模块113。
第一解析模块111,用于对SQL语句进行语言解析及优化,得到逻辑计划,其中,逻辑计划包括聚合操作。
第二解析模块112,用于对逻辑计划进行解析,从逻辑计划中提取出聚合操作,并将聚合操作作为聚合方法的参数,得到物理计划。
执行模块113,用于执行物理计划,以将聚合操作下推至连接器。
此处的第一解析模块111和第二解析模块112也就是SparkSQL,执行模块113是Spark组件的执行端。
连接器120预先设置继承聚合接口并实现聚合接口中的聚合方法,连接器120包括第一处理模块121、第二处理模块122及第三处理模块123。
第一处理模块121,用于依据聚合方法构建查询对象,并将聚合操作和分布式数据库的协处理器信息封装进查询对象后发送给分布式数据库的多个分区服务器。
第二处理模块122,用于接收每个分区服务器依据聚合操作对数据表进行预聚合得到的预聚合结果。
第三处理模块123,用于依据聚合操作对多个预聚合结果进行再聚合得到聚合结果,并将聚合结果反馈至查询器。
分布式数据库130的分区服务器131用于:对查询对象进行解析,得到聚合操作和协处理器;对本分区服务器存储的数据进行查询得到数据表的分区查询结果;控制协处理器依据聚合操作对分区查询结果进行预聚合得到预聚合结果,并将预聚合结果反馈至连接器。
在本实施例中,聚合操作包括分组语句和聚合函数时,协处理器具体用于:按照分组语句对分区查询结果进行分组,得到至少一个第一分组;依据聚合函数对每一第一分组中的全部数据进行聚合得到每一第一分组的预聚合值,其中,预聚合结果包括每一第一分组的预聚合值。
在本实施例中,聚合操作包括分组语句和聚合函数时,连接器120具体用于:按照分组语句对多个预聚合结果再次进行分组,得到至少一个第二分组;依据聚合函数对每一第二分组中的全部预聚合值进行再聚合,得到每一第二分组的聚合值,聚合结果包括每一第二分组的聚合值。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的数据查询装置100的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
请参照图8,图8示出了本发明实施例提供的服务器10的方框示意图。服务器10包括处理器11、存储器12及总线13,处理器11和存储器12通过总线13连接。
存储器12用于存储程序,例如数据查询装置100,即查询器110、连接器120及分布式数据库130,数据查询装置100包括至少一个可以软件或固件(firmware)的形式存储于存储器12中或固化在服务器10的操作系统(operating system,OS)中的软件功能模块,处理器11在接收到执行指令后,执行所述程序以实现本发明上述实施例揭示的数据查询方法。服务器10可以是单台服务器或服务器群组,两者都可以用于实现本发明实施例的数据查询方法。
存储器12可能包括高速随机存取存储器(RAM:Random Access Memory),也可能还包括非易失存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器11可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器11中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器11可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器11执行时实现上述实施例揭示的数据查询方法。
综上所述,本发明实施例提供的一种数据查询方法、装置、服务器及存储介质,应用于分布式环境中的查询器的数据查询方法包括:对接收到的结构化查询语言SQL语句进行解析,并将SQL语句中的聚合操作下推至连接器;接收连接器反馈的聚合结果,聚合结果是对分布式数据库依据聚合操作对数据表进行预聚合得到的多个预聚合结果进行再聚合得到的。与现有技术相比,本实施例中聚合处理在连接器和分布式数据库中进行,查询器接收到的是连接器反馈的聚合结果,这样就避免了大量数据的传输,有效提升了Spark组件进行聚合查询的速度。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
Claims (12)
1.一种数据查询方法,其特征在于,应用于分布式环境中的查询器,所述方法包括:
对接收到的结构化查询语言SQL语句进行解析,并将所述SQL语句中的聚合操作下推至连接器;
接收所述连接器反馈的聚合结果,所述聚合结果是对分布式数据库依据所述聚合操作对数据表进行预聚合得到的多个预聚合结果进行再聚合得到的。
2.如权利要求1所述的方法,其特征在于,所述查询器为Spark组件,所述Spark组件预先定义聚合接口及所述聚合接口中的聚合方法;
所述查询器对接收到的结构化查询语言SQL语句进行解析,并将所述SQL语句中的聚合操作下推至连接器的步骤,包括:
所述Spark组件对所述SQL语句进行语言解析及优化,得到逻辑计划,其中,所述逻辑计划包括所述聚合操作;
所述Spark组件对所述逻辑计划进行解析,从所述逻辑计划中提取出所述聚合操作,并将所述聚合操作作为所述聚合方法的参数,得到物理计划;
所述Spark组件执行所述物理计划,以将所述聚合操作下推至所述连接器。
3.如权利要求2所述的方法,其特征在于,所述连接器预先设置继承所述聚合接口并实现所述聚合接口中的所述聚合方法;
所述方法还包括:
所述连接器依据所述聚合方法构建查询对象,并将所述聚合操作和所述分布式数据库的协处理器信息封装进所述查询对象后发送给所述分布式数据库的多个分区服务器;
所述连接器接收每个所述分区服务器依据所述聚合操作对所述数据表进行预聚合得到的预聚合结果;
所述连接器依据所述聚合操作对所述多个预聚合结果进行再聚合得到聚合结果,并将所述聚合结果反馈至所述查询器。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
所述分区服务器对所述查询对象进行解析,得到所述聚合操作和协处理器;
所述分区服务器对本分区服务器存储的数据进行查询得到所述数据表的分区查询结果;
所述分区服务器控制所述协处理器依据所述聚合操作对所述分区查询结果进行预聚合得到预聚合结果,并将所述预聚合结果反馈至所述连接器。
5.如权利要求4所述的方法,其特征在于,所述聚合操作包括分组语句和聚合函数;
所述协处理器依据所述聚合操作对所述分区查询结果进行预聚合得到预聚合结果的步骤,包括:
所述协处理器按照所述分组语句对所述分区查询结果进行分组,得到至少一个第一分组;
所述协处理器依据所述聚合函数对每一所述第一分组中的全部数据进行聚合得到每一所述第一分组的预聚合值,其中,所述预聚合结果包括每一所述第一分组的预聚合值。
6.如权利要求5所述的方法,其特征在于,所述连接器依据所述聚合操作对所述多个预聚合结果进行再聚合得到聚合结果的步骤,包括:
所述连接器按照所述分组语句对所述多个预聚合结果再次进行分组,得到至少一个第二分组;
所述连接器依据所述聚合函数对每一所述第二分组中的全部预聚合值进行再聚合,得到每一所述第二分组的聚合值,所述聚合结果包括每一所述第二分组的聚合值。
7.一种数据查询装置,其特征在于,所述数据查询装置包括分布式环境中的查询器,所述查询器用于:
对接收到的结构化查询语言SQL语句进行解析,并将所述SQL语句中的聚合操作下推至连接器;
接收所述连接器反馈的聚合结果,所述聚合结果是对分布式数据库依据所述聚合操作对数据表进行预聚合得到的多个预聚合结果进行再聚合得到的。
8.如权利要求7所述的装置,其特征在于,所述查询器为Spark组件,所述Spark组件预先定义聚合接口及所述聚合接口中的聚合方法;
所述Spark组件包括:
第一解析模块,用于对所述SQL语句进行语言解析及优化,得到逻辑计划,其中,所述逻辑计划包括所述聚合操作;
第二解析模块,用于对所述逻辑计划进行解析,从所述逻辑计划中提取出所述聚合操作,并将所述聚合操作作为所述聚合方法的参数,得到物理计划;
执行模块,用于执行所述物理计划,以将所述聚合操作下推至所述连接器。
9.如权利要求8所述的装置,其特征在于,所述数据查询装置还包括连接器,所述连接器预先设置继承所述聚合接口并实现所述聚合接口中的所述聚合方法;
所述连接器包括:
第一处理模块,用于依据所述聚合方法构建查询对象,并将所述聚合操作和所述分布式数据库的协处理器信息封装进所述查询对象后发送给所述分布式数据库的多个分区服务器;
第二处理模块,用于接收每个所述分区服务器依据所述聚合操作对所述数据表进行预聚合得到的预聚合结果;
第三处理模块,用于依据所述聚合操作对所述多个预聚合结果进行再聚合得到聚合结果,并将所述聚合结果反馈至所述查询器。
10.如权利要求9所述的装置,其特征在于,所述数据查询装置还包括分布式数据库,所述分布式数据库的分区服务器用于:
对所述查询对象进行解析,得到所述聚合操作和协处理器;
对本分区服务器存储的数据进行查询得到所述数据表的分区查询结果;
控制所述协处理器依据所述聚合操作对所述分区查询结果进行预聚合得到预聚合结果,并将所述预聚合结果反馈至所述连接器。
11.一种服务器,其特征在于,其特征在于,所述服务器包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-6中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910590884.3A CN110442602B (zh) | 2019-07-02 | 2019-07-02 | 数据查询方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910590884.3A CN110442602B (zh) | 2019-07-02 | 2019-07-02 | 数据查询方法、装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110442602A true CN110442602A (zh) | 2019-11-12 |
CN110442602B CN110442602B (zh) | 2021-01-01 |
Family
ID=68428534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910590884.3A Active CN110442602B (zh) | 2019-07-02 | 2019-07-02 | 数据查询方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110442602B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111427887A (zh) * | 2020-03-17 | 2020-07-17 | 中国邮政储蓄银行股份有限公司 | 一种快速扫描HBase分区表的方法、装置、系统 |
CN112084191A (zh) * | 2020-09-03 | 2020-12-15 | 浪潮云信息技术股份公司 | 一种基于Spark SQL的OpenTsdb时序数据查询方法 |
CN112307066A (zh) * | 2020-11-03 | 2021-02-02 | 平安普惠企业管理有限公司 | 分布式数据聚合方法、系统、设备及存储介质 |
CN113051068A (zh) * | 2019-12-27 | 2021-06-29 | 中兴通讯股份有限公司 | 数据库查询方法、装置、设备和存储介质 |
CN113448965A (zh) * | 2021-07-02 | 2021-09-28 | 中国工商银行股份有限公司 | 一种全表扫描的结构化查询语句的确定方法、装置和设备 |
CN113722337A (zh) * | 2021-11-03 | 2021-11-30 | 深圳市信润富联数字科技有限公司 | 业务数据确定方法、装置、设备及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801145A (zh) * | 2005-01-06 | 2006-07-12 | 中兴通讯股份有限公司 | 一种提高应用系统访问数据库效率的方法 |
CN102254029A (zh) * | 2011-07-29 | 2011-11-23 | 株洲南车时代电气股份有限公司 | 一种基于视图的数据访问系统及其方法 |
CN103064875A (zh) * | 2012-10-30 | 2013-04-24 | 中国标准化研究院 | 一种服务化空间数据分布式查询方法 |
CN105205105A (zh) * | 2015-08-27 | 2015-12-30 | 浪潮集团有限公司 | 一种基于storm的数据ETL系统及处理方法 |
CN105224613A (zh) * | 2015-09-17 | 2016-01-06 | 西安未来国际信息股份有限公司 | 基于数据联邦技术的异构数据源整合系统及其整合方法 |
CN105447051A (zh) * | 2014-09-22 | 2016-03-30 | 普天信息技术有限公司 | 一种数据库操作的方法和装置 |
CN106250519A (zh) * | 2016-08-04 | 2016-12-21 | 曙光信息产业(北京)有限公司 | 用于并行数据库的数据查询方法和装置 |
CN108804459A (zh) * | 2017-05-02 | 2018-11-13 | 杭州海康威视数字技术股份有限公司 | 数据查询方法及装置 |
CN109344169A (zh) * | 2018-09-20 | 2019-02-15 | 新华三大数据技术有限公司 | 数据处理方法及装置 |
CN109542967A (zh) * | 2018-11-19 | 2019-03-29 | 四川长虹电器股份有限公司 | 基于xbrl标准的智慧城市数据共享系统及方法 |
US20190138633A1 (en) * | 2017-11-08 | 2019-05-09 | Walmart Apollo, Llc | System and method for committing and rolling back database requests |
CN109952569A (zh) * | 2016-09-16 | 2019-06-28 | 甲骨文国际公司 | 用于基于字典的连接和聚合的技术 |
-
2019
- 2019-07-02 CN CN201910590884.3A patent/CN110442602B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1801145A (zh) * | 2005-01-06 | 2006-07-12 | 中兴通讯股份有限公司 | 一种提高应用系统访问数据库效率的方法 |
CN102254029A (zh) * | 2011-07-29 | 2011-11-23 | 株洲南车时代电气股份有限公司 | 一种基于视图的数据访问系统及其方法 |
CN103064875A (zh) * | 2012-10-30 | 2013-04-24 | 中国标准化研究院 | 一种服务化空间数据分布式查询方法 |
CN105447051A (zh) * | 2014-09-22 | 2016-03-30 | 普天信息技术有限公司 | 一种数据库操作的方法和装置 |
CN105205105A (zh) * | 2015-08-27 | 2015-12-30 | 浪潮集团有限公司 | 一种基于storm的数据ETL系统及处理方法 |
CN105224613A (zh) * | 2015-09-17 | 2016-01-06 | 西安未来国际信息股份有限公司 | 基于数据联邦技术的异构数据源整合系统及其整合方法 |
CN106250519A (zh) * | 2016-08-04 | 2016-12-21 | 曙光信息产业(北京)有限公司 | 用于并行数据库的数据查询方法和装置 |
CN109952569A (zh) * | 2016-09-16 | 2019-06-28 | 甲骨文国际公司 | 用于基于字典的连接和聚合的技术 |
CN108804459A (zh) * | 2017-05-02 | 2018-11-13 | 杭州海康威视数字技术股份有限公司 | 数据查询方法及装置 |
US20190138633A1 (en) * | 2017-11-08 | 2019-05-09 | Walmart Apollo, Llc | System and method for committing and rolling back database requests |
CN109344169A (zh) * | 2018-09-20 | 2019-02-15 | 新华三大数据技术有限公司 | 数据处理方法及装置 |
CN109542967A (zh) * | 2018-11-19 | 2019-03-29 | 四川长虹电器股份有限公司 | 基于xbrl标准的智慧城市数据共享系统及方法 |
Non-Patent Citations (1)
Title |
---|
庞超: "基于Spark和Hive的网易移动大数据支持平台的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051068A (zh) * | 2019-12-27 | 2021-06-29 | 中兴通讯股份有限公司 | 数据库查询方法、装置、设备和存储介质 |
CN111427887A (zh) * | 2020-03-17 | 2020-07-17 | 中国邮政储蓄银行股份有限公司 | 一种快速扫描HBase分区表的方法、装置、系统 |
CN112084191A (zh) * | 2020-09-03 | 2020-12-15 | 浪潮云信息技术股份公司 | 一种基于Spark SQL的OpenTsdb时序数据查询方法 |
CN112084191B (zh) * | 2020-09-03 | 2023-12-26 | 浪潮云信息技术股份公司 | 一种基于Spark SQL的OpenTsdb时序数据查询方法 |
CN112307066A (zh) * | 2020-11-03 | 2021-02-02 | 平安普惠企业管理有限公司 | 分布式数据聚合方法、系统、设备及存储介质 |
CN113448965A (zh) * | 2021-07-02 | 2021-09-28 | 中国工商银行股份有限公司 | 一种全表扫描的结构化查询语句的确定方法、装置和设备 |
CN113722337A (zh) * | 2021-11-03 | 2021-11-30 | 深圳市信润富联数字科技有限公司 | 业务数据确定方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110442602B (zh) | 2021-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110442602A (zh) | 数据查询方法、装置、服务器及存储介质 | |
US9165034B2 (en) | Heterogeneous data source management | |
US20210224412A1 (en) | User permission data query method and apparatus, electronic device and medium | |
CN104885078B (zh) | 用于大规模并行处理数据库集群中的两阶段查询优化的方法 | |
US9384227B1 (en) | Database system providing skew metrics across a key space | |
US20190102446A1 (en) | System and method for load, aggregate and batch calculation in one scan in a multidimensional database environment | |
US10223437B2 (en) | Adaptive data repartitioning and adaptive data replication | |
EP3654204A1 (en) | Low-latency database analysis using external data sources | |
KR20200134140A (ko) | 조회 처리 방법, 조회 처리 시스템, 서버 및 컴퓨터 판독 가능 매체 | |
US11422881B2 (en) | System and method for automatic root cause analysis and automatic generation of key metrics in a multidimensional database environment | |
EP3654196A1 (en) | Improved systems and methods for database analysis | |
US11836136B2 (en) | Distributed pseudo-random subset generation | |
US20220309067A1 (en) | Aggregation Operations In A Distributed Database | |
US20210089530A1 (en) | Machine Language Query Management for Low-Latency Database Analysis System | |
US20140379691A1 (en) | Database query processing with reduce function configuration | |
US11748264B1 (en) | Approximate unique count | |
US20230401210A1 (en) | Just-In-Time Injection In A Distributed Database | |
Abdelaziz et al. | Query optimizations over decentralized RDF graphs | |
Theeten et al. | Chive: Bandwidth optimized continuous querying in distributed clouds | |
US20220277003A1 (en) | Object Indexing | |
CN107665241A (zh) | 一种实时数据多维度去重方法和装置 | |
Papalkar et al. | Issues of concern in storage system of IoT based big data | |
US11200227B1 (en) | Lossless switching between search grammars | |
Chawathe | Data modeling for a NoSQL database service | |
Swami et al. | Storing and analyzing streaming data: A big data challenge |
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 |