CN111198898B - 大数据查询方法及大数据查询装置 - Google Patents
大数据查询方法及大数据查询装置 Download PDFInfo
- Publication number
- CN111198898B CN111198898B CN201811372571.2A CN201811372571A CN111198898B CN 111198898 B CN111198898 B CN 111198898B CN 201811372571 A CN201811372571 A CN 201811372571A CN 111198898 B CN111198898 B CN 111198898B
- Authority
- CN
- China
- Prior art keywords
- sql
- processing component
- statement
- query
- sentence
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012545 processing Methods 0.000 claims abstract description 140
- 238000006243 chemical reaction Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 description 9
- 230000014509 gene expression Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 229920001971 elastomer Polymers 0.000 description 1
- 239000000806 elastomer Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Abstract
本发明提供一种大数据查询方法及大数据查询装置,涉及大数据组件、大数据处理技术领域。该方法包括:根据所获取的结构化查询语言SQL语句的属性信息,决策SQL语句对应的处理组件;将SQL语句转换为SQL语句对应的处理组件可执行语法,获取转换后的SQL语句;采用SQL语句对应的处理组件的查询方法、以及根据转换后的SQL语句,在与处理组件对应的数据库中进行数据查询,获取查询结果。该方法通过对结构化查询语言SQL进行转换,使其适配多种大数据处理组件,再采用Elasticsearch‑SQL与Spark‑SQL并行处理的方法,进行大数据的查询,解决了部分组件不支持查询语法及查询结果不准确的问题,有效提高了大数据查询效率及准确性。
Description
技术领域
本发明涉及大数据组件、大数据处理技术领域,具体而言,涉及一种大数据查询方法及大数据查询装置。
背景技术
随着数据的爆炸性增长,大数据组件以它对大批量数据处理的优秀性能应用越来越广泛。采用SQL(Structured Query Language,结构化查询语言)可以快速解决数据查询问题,大数据组件是否开放SQL接口、及对SQL语法支持与否,将较大程度的影响数据查询效率。
现有技术中,通常采用Spark(基于内存计算的大数据并行计算框架)的SparkSQL(Spark内部集成的组件)处理SQL语句,Spark提供了SQL接口,可以将SQL语句执行转换成Spark任务进行处理;或是通过将SQL语句解析构造成自定义的查询类,再对查询类进行解析,解析后构造CURL(利用URL语法在命令行下工作的文件传输工具)调用Elasticsearch(数据搜索引擎)的查询接口查询。
采用Spark的SparkSQL处理SQL语句,因涉及到Spark作业处理流程,所以获取查询结果较慢,另外,SparkSQL对于SQL语法的支持虽然非常的多,但也有某些常用的功能无法支持,如offset。而调用Elasticsearc的查询接口进行查询,因Elasticsearc并不支持较为复杂的SQL语法的内部逻辑,如函数、窗口函数等操作,Elasticsearch底层不支持就无法通过转换SQL成CURL来实现逻辑,因此,缺少一种更为合理的大数据查询方法。
发明内容
本发明的目的在于,针对上述现有技术中的不足,提供一种大数据查询方法及大数据查询装置,解决了通过单一Elasticsearch-SQL组件或是Spark-SQL组件进行数据查询时,组件不支持查询语法及查询结果不准确的问题,有效提高了大数据查询效率及准确性。
为实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供一种大数据查询方法,包括:根据所获取的结构化查询语言SQL语句的属性信息,决策该SQL语句对应的处理组件;将SQL语句转换为SQL语句对应的处理组件可执行语法,获取转换后的SQL语句;采用SQL语句对应的处理组件的查询方法、以及根据转换后的SQL语句,在与处理组件对应的数据库中进行数据查询,获取查询结果。
进一步地,属性信息包括:SQL语句中包含的预定语法。
进一步地,根据所获取的结构化查询语言SQL语句的属性信息,决策SQL语句对应的处理组件,包括:
对获取的SQL语句进行分解,获取多条分解后的SQL语句;统计每条分解后的SQL语句所包含的预定语法的数量,当数量小于预设阈值时,确定分解后的SQL语句对应的处理组件为Elasticsearch-SQL组件。
进一步地,确定分解后的SQL语句对应的处理组件为Elasticsearch-SQL组件之后,还包括:
获取分解后的SQL语句中Elasticsearch-SQL处理组件不可识别的语法所对应的子语句,确定该子语句对应的处理组件为Spark-SQL组件。
进一步地,根据所获取的结构化查询语言SQL语句的属性信息,决策SQL语句对应的处理组件,包括:
根据所获取的结构化查询语言SQL语句的属性信息,决策SQL语句对应的预分配处理组件,其中,预分配处理组件为Elasticsearch-SQL处理组件或Spark-SQL组件;确定预分配处理组件内是否包含待查询字段,若存在,则将预分配处理组件作为最终处理组件;其中,Elasticsearch-SQL处理组件与Spark-SQL组件中至少一个包含待查询字段。
第二方面,本发明实施例还提供一种大数据查询装置,包括:决策模块、转换模块、处理模块;决策模块,用于根据所获取的结构化查询语言SQL语句的属性信息,决策SQL语句对应的处理组件;转换模块,用于将SQL语句转换为SQL语句对应的处理组件可执行语法,获取转换后的SQL语句;处理模块,用于采用SQL语句对应的处理组件的查询方法、以及根据转换后的SQL语句,在与处理组件对应的数据库中进行数据查询,获取查询结果。
进一步地,属性信息包括:SQL语句中包含的预定语法。
进一步地,决策模块,具体用于对获取的SQL语句进行分解,获取多条分解后的SQL语句;统计每条分解后的SQL语句所包含的预定语法的数量,当数量小于预设阈值时,确定分解后的SQL语句对应的处理组件为Elasticsearch-SQL组件。
进一步地,决策模块,还用于获取分解后的SQL语句中Elasticsearch-SQL处理组件不可识别的语法所对应的子语句,确定子语句对应的处理组件为Spark-SQL组件。
进一步地,决策模块,具体用于根据所获取的结构化查询语言SQL语句的属性信息,决策SQL语句对应的预分配处理组件,预分配处理组件为Elasticsearch-SQL处理组件或Spark-SQL组件;确定预分配处理组件内是否包含待查询字段,若存在,则将预分配处理组件作为最终处理组件;其中,Elasticsearch-SQL处理组件与Spark-SQL组件中至少一个包含所述待查询字段。
本发明的有益效果是:通过对结构化查询语言SQL进行转换,使其适配多种大数据处理组件,再采用Elasticsearch-SQL与Spark-SQL并行处理的方法,进行大数据的查询,解决了部分组件不支持查询语法及查询结果不准确的问题,有效提高了大数据查询效率及准确性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的大数据查询方法流程示意图;
图2为本申请另一实施例提供的大数据查询方法流程示意图;
图3为本申请又一实施例提供的大数据查询方法流程示意图;
图4为本申请实施例提供的大数据查询装置结构示意图;
图5为本申请另一实施例提供的大数据查询装置结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为了更好地理解本申请以下的各实施例,这里对部分名词解释如下:
SQL:Structured Query Language,结构化查询语言,一种用于数据库操作的语言。
Spark:UC Berkeley AMP lab开源的类Hadoop MapReduce的通用并行框架,启用了内存分布式数据集。
Spark-SQL:Spark内部集成的组件,可以执行SQL语句进行查询。
Elasticsearch:数据检索引擎,能够快速查询数据。
Elasticsearch-SQL:Elasticsearch的一个插件可以支持SQL查询数据检索引擎,能够快速查询数据。
HBase:分布式开源的列数数据存储数据库,支持大批量数据存储。
Parquet:面向分析型业务的列式存储格式。
ID:一条数据的唯一标示字段。
JSQLParser:一个开源的SQL语句解析组件能够将SQL分成不同的部分。
第一实施例
图1为本申请实施例提供的大数据查询方法流程示意图,如图1所示,该大数据查询方法,包括:
S101、根据所获取的SQL语句的属性信息,决策该SQL语句对应的处理组件。
可选地,本实施例中,待查询的数据可以分别存储在多个数据源中,例如:分别存储在Elasticsearch,HBase,parquet三部分数据源中。
在数据源中创建表的时候,表内的每个字段都会被标记好要存储的位置,当数据接入的时,数据会按照建表时的要求存储,在建表之后即使各个组件内的字段不一致,只要配置好配置文件就可以保证数据可以查询。
需要说明的是,Elasticsearch搜索引擎是一个提供了分布式的存储能力的近实时搜索引擎,因此Elasticsearch搜索引擎可以被当做nosql(非关系型数据库,NotOnlySQL)数据库使用。上述HBase,Elasticsearch及parquet负责存储数据。HBase、Elasticsearch及parquet内的数据用于查询检索。
具体地,通过对获取的结构化查询语言SQL语句进行解析,获取SQL语句相关的属性信息,根据不同的属性信息,及事先设定的决策策略,将该SQL语句中不同语法部分对应的子语句分配到相应的处理组件进行数据查询,从而避免了因随机分配导致组件不支持语句查询或是数据查询效率低下的问题。
S102、将SQL语句转换为SQL语句对应的处理组件可执行语法,获取转换后的SQL语句。
需要说明的是,根据步骤S101将SQL语句分配到相应的处理组件后,因各种数据库中的处理组件对应的SQL查询语句的语法是不同的,所以需要先对SQL语句进行预处理,使其能够适用于组件。
可选地,采用预设转换函数,将SQL语句中的语法转换为当前处理组件可执行的语法。ElasticSearch-SQL是支持SQL语法的,具体转换内容包括:
第一、ElasticSearch-SQL中的数据可能存储在多个索引中,而ElasticSearch-SQL只支持对索引名,对于多索引需要将select中的表名转换为多个索引查询。
第二、ElasticSearch-SQL中部分的语法只支持column(列数)=value(数值),对于value=column这种SQL需要进行转换。
第三、ElasticSearch-SQL中的某些表达式如!=(不等于)是不支持的,需要转换为<>(不等于)。
第四、部分的关键字为ElasticSearch-SQL内部保留的关键字,如zone(区域),需要进行屏蔽返回给用户让其进行更改。
另外,在将获取的SQL语句转换为处理组件可执行的语句后,还需将解析出的SQL语句多个部分中可能存在的表名、列名进行映射。以保证对于多个大数据存储组件的不同字段,即使各个组件内的字段,名称无法一一对应,只要通过配置表的方式将字段配置完毕,用户就可以进行数据查询,而不需关心各个组件内的字段的实际名称。
上述将接收的SQL语句转换为SQL语句对应的处理组件可执行的语句后,输出该转换后的SQL语句,以便于处理组件根据该转换后的SQL语句在数据库中进行数据查询。
S103、采用SQL语句对应的处理组件的查询方法、以及根据转换后的SQL语句,在与处理组件对应的数据库中进行数据查询,获取查询结果。
需要说明的是,在不同的数据库中进行数据查询时,其采用的数据查询方式是不同的,根据接收到的转换后的SQL语句可确定待查询的数据,采用相应的数据查询方式,在数据库中进行数据查询,获取查询结果。
本实施例提供的大数据查询方法通过对SQL语句进行转换,使其适配多种大数据处理组件,再采用Elasticsearch-SQL与Spark-SQL并行处理的方法,进行大数据的查询,解决了部分组件不支持查询语法及查询结果不准确的问题,有效提高了大数据查询效率及准确性。
可选地,属性信息包括:SQL语句中包含的预定语法。
需要说明的是,通常SQL语句中会包含多种语法,例如:分组(Group by)、聚合(Union)、消除(Except)和函数等。根据获取到的SQL语句中包含的语法信息,可以进行决策,从而将SQL语句分配到相应的处理组件进行处理。
图2为本申请另一实施例提供的大数据查询方法流程示意图,如图2所示,上述根据所获取的结构化查询语言SQL语句的属性信息,决策SQL语句对应的处理组件,包括:
S201、对获取的SQL语句进行分解,获取多条分解后的SQL语句。
可选地,本实施例采用SQL语句解析组件JSQLParser将SQL语句分成不同的部分。需要说明的是,JSQLParser组件可以用来对SQL语句进行解析和组装,将SQL语句进行Parser(剖析)生成抽象语法树,将SQL各部分(抽象语法树的叶节点)转换成Expression(表达式树),Expression的各个子类对应SQL中的各个部分。通过对Expression进行处理避免了直接转换String(字符串)出现的问题,例如某列的某个值中包含from字段,只通过from划分会造成问题。通过Expression的解析对于where字段后多层的and or(和/或)嵌套,如(((A or B)and C or D)and E or(F or G))类型能够正确的解析。JSQLParser也将SQL语句各个关键词用Java类的形式进行了对应解析,包括很多函数可以让我们得到各个部分的内容。
上述通过对SQL语句进行分解,可获得多条SQL语句,以便于将一个完整SQL语句拆分成多个部分进行处理,从而提高了处理效率。
S202、统计每条分解后的SQL语句所包含的预定语法的数量,当数量小于预设阈值时,确定分解后的SQL语句对应的处理组件为Elasticsearch-SQL组件。
需要说明的是,本实施例中。预定语法即SQL语句中可以包含的六个参数:selectcount(记录子查询数量)、limitcount(记录offset,limit关键字数量)、funccount(用于记录非聚合函数数量)、crosscount(用于记录union intersect minus except数量)、aggrcount(用于记录聚合函数数量)、joincount(用于判断联合查询数量)。对分解后的每条SQL语句中包含的上述参数的值进行统计,当除了aggrcount以外的其他五个参数,即selectcount、limitcount、funccount、crosscount、joincount大于1时,或者当aggrcount及joincount均大于0时,则将获取到的SQL语句分配至Spark-SQL组件进行数据查询;否则,则将获取到的SQL语句分配至Elasticsearch-SQL组件进行数据查询,以获取结果列表。
可选地,上述对预定语法数量进行统计可采用标记计数的方法,例如:给分解后的每条SQL语句中的预定语法都进行标记,对标记结果进行计数,求取统计结果。另外,也可对检测到的预定语法直接进行计数,求取统计结果。当然,不以上述举例为限,可以采用其他方式获取预定语法数量。
进一步地,确定分解后的SQL语句对应的处理组件为Elasticsearch-SQL组件之后,还包括:
获取分解后的SQL语句中Elasticsearch-SQL处理组件不可识别的语法所对应的子语句,确定该子语句对应的处理组件为Spark-SQL组件。
需要的说明的是,上述分配至Elasticsearch-SQL组件的SQL语句中会存在部分语法是Elasticsearch-SQL组件不支持的、也即不可识别的,无法利用该部分语法在Elasticsearch数据库中进行数据查询。因此,需从获取到的分解后的SQL语句中检测出Elasticsearch-SQL组件不支持的语法,并将该部分语法对应的SQL语句分配至Spark-SQL组件进行处理。
需要说明的是,Spark-SQL对应一个代理查询服务,上述SQL语句分配至Spark-SQL组件后,通过代理查询服务将SQL语句发送到对应的Spark集群,通过Spark集群执行Hadoop分布式存储系统数据源中的Parquent/Elasticsearch搜索引擎数据源等外部数据源的查询计算任务,通过SparkSQL搜索引擎的代理查询服务返回查询结果到数据查询系统,从而获取到结果列表。通过获取的多个结果列表进行组合,得到最终结果集。
通过上述处理方法,可将获取到的SQL语句合理的进行分配,实现多个组件的并行处理,很大程度上提高了数据查询速度,减少查询错误率,同时,能支持尽可能多的SQL语法,保证了数据准确性。
图3为本申请又一实施例提供的大数据查询方法流程示意图,如图3所示,上述根据所获取的结构化查询语言SQL语句的属性信息,决策SQL语句对应的处理组件,包括:
S301、根据所获取的SQL语句的属性信息,决策SQL语句对应的预分配处理组件。
需要说明的是,上述通过SQL语句的属性信息,可确定SQL语句中各部分对应的预分配处理组件,具体最终是否会分配至该预分配组件,还需通过进一步判定进行确定。
其中,预分配处理组件为Elasticsearch-SQL处理组件或Spark-SQL组件。
需要说明的是,关于Elasticsearch-SQL处理组件或Spark-SQL组件,前述过程中已作了具体介绍,此处不再一一赘述。
S302、确定预分配处理组件内是否包含待查询字段,若存在,则将预分配处理组件作为最终处理组件。
需要说明的是,因为映射关系的存在,字段作为列式存储类存储引擎中更为独立的个体存在。因为各组件内的字段不能保证完全相同,更不能保证是否存在,所以就需要通过配置的映射关系判断,查询的组件内是否含有待查询的字段。也即判断上述预分配处理组件Elasticsearch-SQL及Spark-SQL内是否包含与待查询字段,若包含,则将SQL中的相应部分分配至其,以进行数据查询。
其中,Elasticsearch-SQL处理组件与Spark-SQL组件中至少一个包含待查询字段。
需要说明的是,因Elasticsearch-SQL处理组件与Spark-SQL组件中至少一个会包含待查询字段,因此,若SQL中的相应部分预分配到的处理组件中未包含待查询字段,则将该部分SQL语句分配至另一包含待查询字段的组件中进行处理。
可选地,通过上述方法对SQL语句进行分析处理后,获取到结果集,若获取到的结果集与原始SQL语句中的待查询数据格式不一致,还需对该查询结果进行再次处理。首先结合SQL语句及结果集,对比判断结果列表是否需要处理,若需要处理,则将结果列表中的列名按照SQL语句中的列名结合映射关系进行匹配转换,将结果集转换成最终需要的结果格式返回给调用方。
本实施例提供的大数据查询方法,通过对结构化查询语言SQL进行转换,使其适配多种大数据处理组件,再采用Elasticsearch-SQL与Spark-SQL并行处理的方法,进行大数据的查询,解决了部分组件不支持查询语法及查询结果不准确的问题,有效提高了大数据查询效率及准确性。
第二实施例
图4为本申请实施例提供的大数据查询装置结构示意图,如图4所示,本实施例提供的大数据查询装置,包括:决策模块410、转换模块420、处理模块430。
决策模块410,用于根据所获取的结构化查询语言SQL语句的属性信息,决策SQL语句对应的处理组件;转换模块420,用于将SQL语句转换为SQL语句对应的处理组件可执行语法,获取转换后的SQL语句;处理模块430,用于采用SQL语句对应的处理组件的查询方法、以及根据转换后的SQL语句,在与处理组件对应的数据库中进行数据查询,获取查询结果。
进一步地,属性信息包括:SQL语句中包含的预定语法。
进一步地,决策模块410,具体用于对获取的SQL语句进行分解,获取多条分解后的SQL语句;统计每条分解后的SQL语句所包含的预定语法的数量,当数量小于预设阈值时,确定分解后的SQL语句对应的处理组件为Elasticsearch-SQL组件。
进一步地,决策模块410,还用于获取分解后的SQL语句中Elasticsearch-SQL处理组件不可识别的语法所对应的子语句,确定子语句对应的处理组件为Spark-SQL组件。
进一步地,决策模块410,具体用于根据所获取的结构化查询语言SQL语句的属性信息,决策SQL语句对应的预分配处理组件,预分配处理组件为Elasticsearch-SQL处理组件或Spark-SQL组件;确定预分配处理组件内是否包含待查询字段,若存在,则将预分配处理组件作为最终处理组件;其中,Elasticsearch-SQL处理组件与Spark-SQL组件中至少一个包含所述待查询字段。
上述装置可用于执行上述方法实施例提供的方法,具体实现方式和技术效果类似,这里不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图5为本申请另一实施例提供的大数据查询装置结构示意图,如图5所示,该装置包括:处理器501和存储器502,其中:
存储器502用于存储程序,处理器501调用存储器502存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (4)
1.一种大数据查询方法,其特征在于,包括:
根据所获取的结构化查询语言SQL语句的属性信息,决策所述SQL语句对应的处理组件;所述属性信息包括:所述SQL语句中包含的预定语法;
将所述SQL语句转换为所述SQL语句对应的处理组件可执行语法,获取转换后的SQL语句;
采用所述SQL语句对应的处理组件的查询方法、以及根据所述转换后的SQL语句,在与所述处理组件对应的数据库中进行数据查询,获取查询结果;
所述根据所获取的结构化查询语言SQL语句的属性信息,决策所述SQL语句对应的处理组件,包括:
对获取的所述SQL语句进行分解,获取多条分解后的SQL语句;
统计每条所述分解后的SQL语句所包含的预定语法的数量,当所述数量小于预设阈值时,确定所述分解后的SQL语句对应的处理组件为Elasticsearch-SQL组件;
获取所述分解后的SQL语句中所述Elasticsearch-SQL处理组件不可识别的语法所对应的子语句,确定所述子语句对应的处理组件为Spark-SQL组件。
2.根据权利要求1所述的大数据查询方法,其特征在于,所述根据所获取的结构化查询语言SQL语句的属性信息,决策所述SQL语句对应的处理组件,包括:
根据所获取的结构化查询语言SQL语句的属性信息,决策所述SQL语句对应的预分配处理组件,所述预分配处理组件为Elasticsearch-SQL处理组件或Spark-SQL组件;
确定所述预分配处理组件内是否包含待查询字段,若存在,则将所述预分配处理组件作为最终处理组件;
其中,所述Elasticsearch-SQL处理组件与所述Spark-SQL组件中至少一个包含所述待查询字段。
3.一种大数据查询装置,其特征在于,包括:决策模块、转换模块、处理模块;
所述决策模块,用于根据所获取的结构化查询语言SQL语句的属性信息,决策所述SQL语句对应的处理组件;所述属性信息包括:所述SQL语句中包含的预定语法;
所述转换模块,用于将所述SQL语句转换为所述SQL语句对应的处理组件可执行语法,获取转换后的SQL语句;
所述处理模块,用于采用所述SQL语句对应的处理组件的查询方法、以及根据所述转换后的SQL语句,在与所述处理组件对应的数据库中进行数据查询,获取查询结果;
所述决策模块,具体用于对获取的所述SQL语句进行分解,获取多条分解后的SQL语句;统计每条所述分解后的SQL语句所包含的预定语法的数量,当所述数量小于预设阈值时,确定所述分解后的SQL语句对应的处理组件为Elasticsearch-SQL组件;
所述决策模块,还用于获取所述分解后的SQL语句中所述Elasticsearch-SQL处理组件不可识别的语法所对应的子语句,确定所述子语句对应的处理组件为Spark-SQL组件。
4.根据权利要求3所述的大数据查询装置,其特征在于,
所述决策模块,具体用于根据所获取的结构化查询语言SQL语句的属性信息,决策所述SQL语句对应的预分配处理组件,所述预分配处理组件为Elasticsearch-SQL处理组件或Spark-SQL组件;确定所述预分配处理组件内是否包含待查询字段,若存在,则将所述预分配处理组件作为最终处理组件;其中,所述Elasticsearch-SQL处理组件与所述Spark-SQL组件中至少一个包含所述待查询字段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811372571.2A CN111198898B (zh) | 2018-11-16 | 2018-11-16 | 大数据查询方法及大数据查询装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811372571.2A CN111198898B (zh) | 2018-11-16 | 2018-11-16 | 大数据查询方法及大数据查询装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111198898A CN111198898A (zh) | 2020-05-26 |
CN111198898B true CN111198898B (zh) | 2023-10-27 |
Family
ID=70745530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811372571.2A Active CN111198898B (zh) | 2018-11-16 | 2018-11-16 | 大数据查询方法及大数据查询装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111198898B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100197B (zh) * | 2020-07-31 | 2022-10-28 | 紫光云(南京)数字技术有限公司 | 基于Elasticsearch的准实时日志数据分析与统计方法 |
CN111984678B (zh) * | 2020-08-24 | 2022-06-14 | 安徽新华博信息技术股份有限公司 | 一种基于Elasticsearch的SQL使用方法 |
CN113064914A (zh) * | 2021-04-22 | 2021-07-02 | 中国工商银行股份有限公司 | 数据提取方法及装置 |
CN113282610A (zh) * | 2021-06-17 | 2021-08-20 | 金蝶软件(中国)有限公司 | 一种数据查询方法及数据查询装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706810A (zh) * | 2009-11-23 | 2010-05-12 | 北京中创信测科技股份有限公司 | 一种数据库查询方法及装置 |
CN106649630A (zh) * | 2016-12-07 | 2017-05-10 | 乐视控股(北京)有限公司 | 数据查询方法及装置 |
CN106649426A (zh) * | 2016-08-05 | 2017-05-10 | 浪潮软件股份有限公司 | 一种数据分析方法和数据分析平台以及服务器 |
JP6159908B1 (ja) * | 2016-03-31 | 2017-07-05 | スマートインサイト株式会社 | 異種データソース混在環境におけるフィールド間の関係性の自動的発見のための方法、プログラム、および、システム |
CN108536728A (zh) * | 2018-02-24 | 2018-09-14 | 国家计算机网络与信息安全管理中心 | 一种数据查询方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7310637B2 (en) * | 2004-05-05 | 2007-12-18 | International Business Machines Corporation | Dynamic database access via standard query language and abstraction technology |
US8122066B2 (en) * | 2008-10-14 | 2012-02-21 | Hewlett-Packard Development Company, L.P. | Database query profiler |
US10489433B2 (en) * | 2012-08-02 | 2019-11-26 | Artificial Solutions Iberia SL | Natural language data analytics platform |
-
2018
- 2018-11-16 CN CN201811372571.2A patent/CN111198898B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706810A (zh) * | 2009-11-23 | 2010-05-12 | 北京中创信测科技股份有限公司 | 一种数据库查询方法及装置 |
JP6159908B1 (ja) * | 2016-03-31 | 2017-07-05 | スマートインサイト株式会社 | 異種データソース混在環境におけるフィールド間の関係性の自動的発見のための方法、プログラム、および、システム |
CN106649426A (zh) * | 2016-08-05 | 2017-05-10 | 浪潮软件股份有限公司 | 一种数据分析方法和数据分析平台以及服务器 |
CN106649630A (zh) * | 2016-12-07 | 2017-05-10 | 乐视控股(北京)有限公司 | 数据查询方法及装置 |
CN108536728A (zh) * | 2018-02-24 | 2018-09-14 | 国家计算机网络与信息安全管理中心 | 一种数据查询方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111198898A (zh) | 2020-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111198898B (zh) | 大数据查询方法及大数据查询装置 | |
CN101021874B (zh) | 一种对查询sql请求进行优化的方法及装置 | |
CN109614432B (zh) | 一种基于语法分析的获取数据血缘关系的系统及方法 | |
US20090319501A1 (en) | Translation of streaming queries into sql queries | |
US11580147B2 (en) | Conversational database analysis | |
CN112765282B (zh) | 一种数据联机分析处理方法、装置、设备及存储介质 | |
CN111008020B (zh) | 将逻辑表达式解析为通用查询语句的方法 | |
CN112579610A (zh) | 多数据源结构分析方法、系统、终端设备及存储介质 | |
WO2020139079A1 (en) | System and method for analyzing heterogeneous data by utilizing data virtualization components | |
CN108984155A (zh) | 数据处理流程设定方法和装置 | |
CN114625732A (zh) | 基于结构化查询语言sql的查询方法和系统 | |
CN112860730A (zh) | Sql语句的处理方法、装置、电子设备及可读存储介质 | |
KR102172138B1 (ko) | 분산 컴퓨팅 프레임워크 및 분산 컴퓨팅 방법 | |
CN113918605A (zh) | 数据查询方法、装置、设备以及计算机存储介质 | |
CN113297251A (zh) | 多源数据检索方法、装置、设备及存储介质 | |
RU2393536C2 (ru) | Способ унифицированной семантической обработки информации, обеспечивающий в рамках одной формальной модели представление, контроль семантической правильности, поиск и идентификацию описаний объектов | |
CN108804580B (zh) | 一种在联邦型rdf数据库中查询关键字的方法 | |
CN111125216A (zh) | 数据导入Phoenix的方法及装置 | |
CN116049232A (zh) | 一种子查询抽取方法、装置、电子设备和存储介质 | |
CN113934430A (zh) | 数据检索分析方法、装置、电子设备及存储介质 | |
CN111221860A (zh) | 基于大数据的混合查询优化方法及装置 | |
CN114547083A (zh) | 数据处理方法、装置及电子设备 | |
Bakken | Quarry: An open source tool for OPC UA SPARQL queries over hybrid architectures using query rewriting | |
CN114764406B (zh) | 一种数据库查询方法及相关装置 | |
CN111046130B (zh) | 结合ElasticSearch和FSM的关联检索方法 |
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 |