CN107273504A - 一种基于Kudu的数据查询方法和装置 - Google Patents
一种基于Kudu的数据查询方法和装置 Download PDFInfo
- Publication number
- CN107273504A CN107273504A CN201710465025.2A CN201710465025A CN107273504A CN 107273504 A CN107273504 A CN 107273504A CN 201710465025 A CN201710465025 A CN 201710465025A CN 107273504 A CN107273504 A CN 107273504A
- Authority
- CN
- China
- Prior art keywords
- kudu
- data
- current key
- key word
- sql statement
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000012545 processing Methods 0.000 claims description 51
- 238000006243 chemical reaction Methods 0.000 claims description 17
- 238000013501 data transformation Methods 0.000 claims description 15
- 238000012795 verification Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 7
- 230000001960 triggered effect Effects 0.000 claims description 3
- 235000013399 edible fruits Nutrition 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/242—Query formulation
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于Kudu的数据查询方法和装置,方法包括:接收对应待查询数据的SQL语句;解析所述SQL语句,以获取至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值;根据获取的所述至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,构建语法解析树;根据所述语法解析树查询所述Kudu中存储的待查询数据。通过本发明的技术方案,可实现通过SQL语句查询Kudu中存储的数据。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种基于Kudu的数据查询方法和装置。
背景技术
随着计算机应用技术的不断发展,数据中心需要存储的数据量不断增加,通常需要在数据中心部署Kudu分布式存储***来存储海量的数据。Kudu作为一种分布式存储***,包括一个主服务器节点和多个从服务器节点,其依赖于Hadoop(分布式***基础架构)。
目前,Hadoop包括多个组件,且各个组件具有不同的功能。当需要对Kudu中存储的待查询数据进行查询以实现对其进行删除及修改等处理时,则需要同时部署HDFS及Parquet等多个组件才能实现对Kudu中存储的数据进行查询,不能通过SQL语句查询Kudu中存储的数据。
发明内容
本发明实施例提供了一种基于Kudu的数据查询方法及装置,可实现通过SQL语句查询Kudu中存储的数据。
第一方面,本发明提供了一种基于Kudu的数据查询方法,包括:
接收对应待查询数据的SQL语句;
解析所述SQL语句,以获取至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值;
根据获取的所述至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,构建语法解析树;
根据所述语法解析树查询所述Kudu中存储的待查询数据。
优选地,
在所述解析所述SQL语句之前,包括:预先设置关键词对照列表,所述关键词对照列表存储有至少一个样本关键词;
则,所述解析所述SQL语句,以获取至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,包括:
根据所述关键词对照列表中存储的至少一个样本关键词识别所述SQL语句,以获取所述SQL语句携带的至少一个当前关键词和每一个所述当前关键词所分别对应的变量值。
优选地,
在所述根据获取的所述至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,构建语法解析树之前,还包括:
预先设置语法检验规则;
根据所述语法检验规则,检验获取的所述至少一个当前关键词以及各个所述当前关键词所分别对应的变量值,以确定所述SQL语句的语法是否合格;
如果是,则执行所述根据获取的所述至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,构建语法解析树;
否则,生成对应所述SQL语句的错误提示信息。
优选地,
在所述根据所述语法解析树查询所述Kudu中存储的待查询数据之前,还包括:
获取所述Kudu的主服务器节点的通信地址,并根据所述通信地址连接所述Kudu的所述主服务器节点;
则,所述根据所述语法解析树查询所述Kudu中存储的待查询数据,包括:根据所述语法解析树,向所述Kudu的所述主服务器节点发送数据处理指令,以使所述Kudu的所述主服务器节点根据所述数据处理指令对所述Kudu的至少一个从服务器节点中存储的所述待查询数据进行相应的业务处理。
优选地,
在所述根据所述语法解析树查询所述Kudu中存储的待查询数据之前,进一步包括:设置数据转化规则;
则所述根据所述语法解析树查询所述Kudu中存储的待查询数据,包括:
根据所述数据转化规则对所述语法解析树中的至少一个对象参数进行转化处理;
根据转化处理后的所述语法解析树查询所述Kudu中存储的待查询数据。
第二方面,本发明实施例提供了一种基于Kudu的数据查询装置,包括:
输入模块,用于接收对应待查询数据的SQL语句;
词法解析模块,用于解析所述SQL语句,以获取至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值;
语法处理模块,用于根据获取的所述至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,构建语法解析树;
查询处理模块,用于根据所述语法解析树查询所述Kudu中存储的待查询数据。
优选地,
还包括:关键词对照列表;其中,
所述关键词对照列表,用于存储至少一个样本关键词;
则,所述词法解析模块,用于根据所述关键词对照列表中存储的至少一个样本关键词识别所述SQL语句,以获取所述SQL语句携带的至少一个当前关键词和每一个所述当前关键词所分别对应的变量值。
优选地,
还包括:第一设置模块、语法校验模块和警示模块;其中,
所述第一设置模块,用于预先设置语法检验规则;
所述语法校验模块,用于根据所述语法检验规则,检验获取的所述至少一个当前关键词以及各个所述当前关键词所分别对应的变量值,以确定所述SQL语句的语法是否合格,如果是,则触发所述语法处理模块;否则,触发所述警示模块;
所述语法处理模块,用于在所述语法校验模块的触发下,根据获取的所述至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,构建语法解析树;
所述警示模块,用于在所述语法校验模块的触发下,生成对应所述SQL语句的错误提示信息。
优选地,
还包括:通信处理模块;其中,
所述通信处理模块,用于获取所述Kudu的主服务器节点的通信地址,并根据所述通信地址连接所述Kudu的所述主服务器节点;
所述查询处理模块,用于根据所述语法解析树,向所述Kudu的所述主服务器节点发送数据处理指令,以使所述Kudu的所述主服务器节点根据所述数据处理指令对所述Kudu的至少一个从服务器节点中存储的所述待查询数据进行相应的业务处理。
优选地,
还包括:第二设置模块;其中,
所述第二设置模块,用于设置数据转化规则;
则,所述查询处理模块,用于根据所述数据转化规则对所述语法解析树中的至少一个对象参数进行转化处理;根据转化处理后的所述语法解析树查询所述Kudu中存储的待查询数据。
本发明实施例提供了一种基于Kudu的数据查询方法和装置,该方法中,仅需要接收对应待查询数据的SQL语句,则可对接收的SQL语句进行解析以得到至少一个当前关键词,同时得到各个当前关键词所分别对应的变量值,后续则可根据各个当前关键词以及各个当前关键词所分别对应的变量值构建出可以被Kudu所识别的语法解析树,进而根据构建的语法解析树查询Kudu中存储的待查询数据。从而实现通过SQL语句查询Kudu中存储的数据。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种基于Kudu的数据查询方法的流程图;
图2是本发明一实施例提供的另一种基于Kudu的数据查询方法的流程图;
图3是本发明一实施例提供的一种基于Kudu的数据查询装置的结构示意图;
图4是本发明一实施例提供的另一种基于Kudu的数据查询装置的结构示意图
图5是本发明一实施例提供的又一种基于Kudu的数据查询装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种基于Kudu的数据查询方法,包括:
步骤101,接收对应待查询数据的SQL语句;
步骤102,解析所述SQL语句,以获取至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值;
步骤103,根据获取的所述至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,构建语法解析树;
步骤104,根据所述语法解析树查询所述Kudu中存储的待查询数据。
本发明上述实施例中,仅需要接收对应待查询数据的SQL语句,则可对接收的SQL语句进行解析以得到至少一个当前关键词,同时得到各个当前关键词所分别对应的变量值,后续则可根据各个当前关键词以及各个当前关键词所分别对应的变量值构建出可以被Kudu所识别的语法解析树,进而根据构建的语法解析树查询Kudu中存储的待查询数据。从而实现通过SQL语句查询Kudu中存储的数据。
为了确保能够识别出SQL语句中携带的指定关键词,本发明一个实施例中,在所述解析所述SQL语句之前,包括:预先设置关键词对照列表,所述关键词对照列表存储有至少一个样本关键词;
则,所述解析所述SQL语句,以获取至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,包括:
根据所述关键词对照列表中存储的至少一个样本关键词识别所述SQL语句,以获取所述SQL语句携带的至少一个当前关键词和每一个所述当前关键词所分别对应的变量值。
本发明上述实施例中,通过将各个指定关键词作为样本关键词存储在关键词对照列表中,比如查询类型、表格名称、字段名称等指定关键词均可作为样本关键词存储在关键词对照列表中,在针对接收的SQL语句进行解析时,则可根据关键词对照列表准确读取SQL语句中携带的各个当前关键词,以及各个当前关键词所分别对应的变量值。
为了防止用户输入的SQL语句因语法错误而形成错误的语法解析树,最终导致不能从Kudu中准确查询到相应的待查询数据,本发明一个实施例中,在所述根据获取的所述至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,构建语法解析树之前,还包括:
预先设置语法检验规则;
根据所述语法检验规则,检验获取的所述至少一个当前关键词以及各个所述当前关键词所分别对应的变量值,以确定所述SQL语句的语法是否合格;
如果是,则执行所述根据获取的所述至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,构建语法解析树;
否则,生成对应所述SQL语句的错误提示信息。
具体地,本发明上述实施例中可以通过检验至少一个当前关键词是否与关键词对照列表中存储的各个样本关键词一一对应,以及各个当前关键词是否分别对应的变量值是否为空来实现判断接收的SQL语句的语法是否合格,当且仅当在判断出接收的SQL语句的语法合格时,才根据各个当前关键词以及各个当前关键词所分别对应的变量值构建可以被Kudu所识别的语法解析树;相应的,当判断出接收的SQL语句语法不合格时,则可生成相应的错误提示信息,使得用户根据错误提示信息输入更为正确的SQL语句。
Kudu通常由一个主服务器节点和多个从服务器节点构成,数据可存储在Kudu的各个从服务器节点中,且各个从服务器节点均与Kudu的主服务器相连,使得主服务器节点能够与外部进行信息交互,以实现通过Kudu的主服务器节点对各个从服务器节点中存储的数据进行管理。
因此,本发明一个实施例中,在所述根据所述语法解析树查询所述Kudu中存储的待查询数据之前,还包括:
获取所述Kudu的主服务器节点的通信地址,并根据所述通信地址连接所述Kudu的所述主服务器节点;
则,所述根据所述语法解析树查询所述Kudu中存储的待查询数据,包括:根据所述语法解析树,向所述Kudu的所述主服务器节点发送数据处理指令,以使所述Kudu的所述主服务器节点根据所述数据处理指令对所述Kudu的至少一个从服务器节点中存储的所述待查询数据进行相应的业务处理。
为了确保语法解析树的数据结构以及语法解析树种的各个数据对象(包括各个当前关键词以及各个当前关键词所分别对应的变量值)能够被Kudu所识别,本发明一个实施例中,在所述根据所述语法解析树查询所述Kudu中存储的待查询数据之前,进一步包括:设置数据转化规则;
则所述根据所述语法解析树查询所述Kudu中存储的待查询数据,包括:
根据所述数据转化规则对所述语法解析树中的至少一个对象参数进行转化处理;
根据转化处理后的所述语法解析树查询所述Kudu中存储的待查询数据。
为了更加清楚的说明本发明的技术方案中,下面以Kudu包括主服务器节点A和从服务器节点B1、B2,待查询数据包括数据表c1的第5列,且数据表c1存储在从服务器节点B1中为例,如图2所示,具体可以通过如下各个步骤实现Kudu中存储的待查询数据:
步骤201,获取Kudu的主服务器节点A的通信地址,并根据获取的通信地址连接Kudu的主服务器节点A。
这里,通信地址可以是主服务器节点A的IP(Internet Protocol,网络之间互连的协议)地址,在获取到主服务器节点A的IP地址之后,即可通过获取的IP地址与主服务器节点进行通信,比如通过主服务器节点A访问粗出在Kudu的从服务器节点B1和B2中的数据。
步骤202,设置关键词对照列表、语法检验规则以及数据转化规则。
这里,用户可以结合实际业务需求,将一个或多个指定关键词作为样本关键词存储到关键词对照列表中。指定关键词包括但不限于:查询类型、表格名称、字段名或列编号等。
步骤203,接收用户结合实际业务需求输入的对应待查询数据的SQL语句。
步骤204,根据关键词对照列表中存储的至少一个样本关键词识别SQL语句,以获取SQL语句携带的至少一个当前关键词和每一个当前关键词所分别对应的变量值。
应当理解的是,获取的关键词包括但不限于查询类型、表格名称、字段名或列编号中的任意一个或多个,本发明实施例仅以获取的至少一个当前关键词包括:查询类型、表格名称和列编号为例。
本发明实施例中,在针对SQL语句进行解析时,还可以根据SQL语句的语法规则同时得到查询类型、表格名称和列编号所分别对应的变量值。这里以查询类型所对应的变量值是drop、表格名称对应的变量值是c1、列编号对应的变量值依次是5为例。
步骤205,根据设置的语法检验规则,检验获取的至少一个当前关键词以及各个当前关键词所分别对应的变量值,以确定SQL语句的语法是否合格,如果是,则执行步骤206;否则,执行步骤209。
本发明实施例中,语法检验规则可以结合实际业务需求合理设置,包括但不限于检验获取的各个当前关键词是否与关键词对照列表中的各个样本关键词一一对应,每一个关键词分别对应的变量值是否为空,当且仅当获取的各个当前关键词与关键词对照列表中的各个样本关键词一一对应,且每一个关键词分别对应的变量值均不为空时,则可判断出SQL语句的语法合格。
步骤206,根据至少一个当前关键词以及每一个当前关键词所分别对应的变量值,构建语法解析树。
本发明实施例中,针对SQL语句进行解析时,获取到的各个当前关键词以及各个当前关键词可以以文本形式存在,文本形式存在的数据无法被Kudu所识别,这里通过利用获取的各个当前关键词和各个关键词所分别对应的变量值构建语法解析树,实现对以文本形式存在的各个当前关键词以及各个当前关键词所分别对应的变量值的数据结构进行转化,转化后形成的语法解析树所对应的数据结构能够被Kudu所识别。
具体地,语法解析树可以包括多个节点,每一个节点可以是一个当前关键词,当前关键词所对应的变量值存储在当前关键词所在节点下。
步骤207,根据预先设置的数据转化规则,转化语法解析树下的各个数据对象。
应当理解的是,这里的数据对象可以是一个当前关键词,也可以是一个变量值。
举例来说,语法解析树种包括一个节点为查询类型,且该节点下存储的变量值为drop,分布式存储***Kudu中,通过参数X表征查询类型,且SQL语句中通过变量值drop表征“删除”,而Kudu中通过参数值n表征“删除”,可见,并不能识别前述两个参数,因此,可预先设置相应的数据转化规则,以将语法解析树中的节点“查询类型”替换为节点“X”,且在节点X下存储参数值n,从而确保语法解析树的数据结构以及语法解析树中的各个参数及参数值均能被Kudu所识别。
步骤208,根据转化后的语法解析树,向Kudu的主服务器节点A发送数据处理指令。
这里,主服务器节点A则可对转化后的语法解析树进行识别,并执行根据转化后的语法解析树访问从服务器节点B1存储的数据表c1,并针对数据表c1中对应列编号为5的数据列进行删除处理,从而实现通过SQL语句查询Kudu中存储的待查询数据。
步骤209,生成对应SQL语句的错误提示信息。
这里,用户则可根据生成的错误提示信息了解到输入的SQL语句存在语法错误,可修改或编辑更为准确的SQL语句。方便后续过程中根据更为准确的SQL语句准确查询Kudu中存储的待查询数据。
如图3所示,本发明实施例提供了一种基于Kudu的数据查询装置,包括:
输入模块301,用于接收对应待查询数据的SQL语句;
词法解析模块302,用于解析所述SQL语句,以获取至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值;
语法处理模块303,用于根据获取的所述至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,构建语法解析树;
查询处理模块304,用于根据所述语法解析树查询所述Kudu中存储的待查询数据。
如图4所示,本发明一个实施例中,所述装置还包括:关键词对照列表401;其中,
所述关键词对照列表401,用于存储至少一个样本关键词;
则,所述词法解析模块302,用于根据所述关键词对照列表中存储的至少一个样本关键词识别所述SQL语句,以获取所述SQL语句携带的至少一个当前关键词和每一个所述当前关键词所分别对应的变量值。
如图4所示,本发明一个实施例中,所述装置还包括:第一设置模块402、语法校验模块403和警示模块404;其中,
所述第一设置模块402,用于预先设置语法检验规则;
所述语法校验模块403,用于根据所述语法检验规则,检验获取的所述至少一个当前关键词以及各个所述当前关键词所分别对应的变量值,以确定所述SQL语句的语法是否合格,如果是,则触发所述语法处理模块303;否则,触发所述警示模块404;
所述语法处理模块303,用于在所述语法校验模块的触发下,根据获取的所述至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,构建语法解析树;
所述警示模块404,用于在所述语法校验模块的触发下,生成对应所述SQL语句的错误提示信息。
如图5所示,本发明一个实施例中,所述装置还包括:通信处理模块501;其中,
所述通信处理模块501,用于获取所述Kudu的主服务器节点的通信地址,并根据所述通信地址连接所述Kudu的所述主服务器节点;
所述查询处理模块304,用于根据所述语法解析树,向所述Kudu的所述主服务器节点发送数据处理指令,以使所述Kudu的所述主服务器节点根据所述数据处理指令对所述Kudu的至少一个从服务器节点中存储的所述待查询数据进行相应的业务处理。
本发明一个实施例中,所述装置还包括:第二设置模块(附图中未示出);其中,
所述第二设置模块,用于设置数据转化规则;
则,所述查询处理模块,用于根据所述数据转化规则对所述语法解析树中的至少一个对象参数进行转化处理;根据转化处理后的所述语法解析树查询所述Kudu中存储的待查询数据。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行权利要求1至3中任一项所述的方法。
本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;
所述处理器和所述存储器通过所述总线连接;
所述存储器,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行权利要求1至3中任一项所述的方法。
综上所述,本发明各个实施例至少具有如下有益效果:
1、本发明一实施例中,仅需要接收对应待查询数据的SQL语句,则可对接收的SQL语句进行解析以得到至少一个当前关键词,同时得到各个当前关键词所分别对应的变量值,后续则可根据各个当前关键词以及各个当前关键词所分别对应的变量值构建出可以被Kudu所识别的语法解析树,进而根据构建的语法解析树查询Kudu中存储的待查询数据。从而实现通过SQL语句查询Kudu中存储的数据。
2、本发明一实施例中,通过将各个指定关键词作为样本关键词存储在关键词对照列表中,比如查询类型、表格名称、字段名称等指定关键词均可作为样本关键词存储在关键词对照列表中,在针对接收的SQL语句进行解析时,则可根据关键词对照列表准确读取SQL语句中携带的各个当前关键词,以及各个当前关键词所分别对应的变量值。
3、本发明一个实施例中,通过检验至少一个当前关键词是否与关键词对照列表中存储的各个样本关键词一一对应,以及各个当前关键词是否分别对应的变量值是否为空来实现判断接收的SQL语句的语法是否合格,当且仅当在判断出接收的SQL语句的语法合格时,才根据各个当前关键词以及各个当前关键词所分别对应的变量值构建可以被Kudu所识别的语法解析树,防止用户输入的SQL语句因语法错误而形成错误的语法解析树,最终导致不能从Kudu中准确查询到相应的待查询数据。相应的,当判断出接收的SQL语句语法不合格时,则可生成相应的错误提示信息,使得用户根据错误提示信息输入更为正确的SQL语句。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种基于Kudu的数据查询方法,其特征在于,包括:
接收对应待查询数据的SQL语句;
解析所述SQL语句,以获取至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值;
根据获取的所述至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,构建语法解析树;
根据所述语法解析树查询所述Kudu中存储的待查询数据。
2.根据权利要求1所述的数据查询方法,其特征在于,
在所述解析所述SQL语句之前,包括:预先设置关键词对照列表,所述关键词对照列表存储有至少一个样本关键词;
则,所述解析所述SQL语句,以获取至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,包括:
根据所述关键词对照列表中存储的至少一个样本关键词识别所述SQL语句,以获取所述SQL语句携带的至少一个当前关键词和每一个所述当前关键词所分别对应的变量值。
3.根据权利要求2所述的数据查询方法,其特征在于,
在所述根据获取的所述至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,构建语法解析树之前,还包括:
预先设置语法检验规则;
根据所述语法检验规则,检验获取的所述至少一个当前关键词以及各个所述当前关键词所分别对应的变量值,以确定所述SQL语句的语法是否合格;
如果是,则执行所述根据获取的所述至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,构建语法解析树;
否则,生成对应所述SQL语句的错误提示信息。
4.根据权利要求1所述的方法,其特征在于,
在所述根据所述语法解析树查询所述Kudu中存储的待查询数据之前,还包括:
获取所述Kudu的主服务器节点的通信地址,并根据所述通信地址连接所述Kudu的所述主服务器节点;
则,所述根据所述语法解析树查询所述Kudu中存储的待查询数据,包括:根据所述语法解析树,向所述Kudu的所述主服务器节点发送数据处理指令,以使所述Kudu的所述主服务器节点根据所述数据处理指令对所述Kudu的至少一个从服务器节点中存储的所述待查询数据进行相应的业务处理。
5.根据权利要求1至4中任一所述的数据查询方法,其特征在于,
在所述根据所述语法解析树查询所述Kudu中存储的待查询数据之前,进一步包括:设置数据转化规则;
则所述根据所述语法解析树查询所述Kudu中存储的待查询数据,包括:
根据所述数据转化规则对所述语法解析树中的至少一个对象参数进行转化处理;
根据转化处理后的所述语法解析树查询所述Kudu中存储的待查询数据。
6.一种基于Kudu的数据查询装置,其特征在于,包括:
输入模块,用于接收对应待查询数据的SQL语句;
词法解析模块,用于解析所述SQL语句,以获取至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值;
语法处理模块,用于根据获取的所述至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,构建语法解析树;
查询处理模块,用于根据所述语法解析树查询所述Kudu中存储的待查询数据。
7.根据权利要求6所述的装置,其特征在于,
还包括:关键词对照列表;其中,
所述关键词对照列表,用于存储至少一个样本关键词;
则,所述词法解析模块,用于根据所述关键词对照列表中存储的至少一个样本关键词识别所述SQL语句,以获取所述SQL语句携带的至少一个当前关键词和每一个所述当前关键词所分别对应的变量值。
8.根据权利要求7所述的装置,其特征在于,
还包括:第一设置模块、语法校验模块和警示模块;其中,
所述第一设置模块,用于预先设置语法检验规则;
所述语法校验模块,用于根据所述语法检验规则,检验获取的所述至少一个当前关键词以及各个所述当前关键词所分别对应的变量值,以确定所述SQL语句的语法是否合格,如果是,则触发所述语法处理模块;否则,触发所述警示模块;
所述语法处理模块,用于在所述语法校验模块的触发下,根据获取的所述至少一个当前关键词以及每一个所述当前关键词所分别对应的变量值,构建语法解析树;
所述警示模块,用于在所述语法校验模块的触发下,生成对应所述SQL语句的错误提示信息。
9.根据权利要求6所述的装置,其特征在于,
还包括:通信处理模块;其中,
所述通信处理模块,用于获取所述Kudu的主服务器节点的通信地址,并根据所述通信地址连接所述Kudu的所述主服务器节点;
所述查询处理模块,用于根据所述语法解析树,向所述Kudu的所述主服务器节点发送数据处理指令,以使所述Kudu的所述主服务器节点根据所述数据处理指令对所述Kudu的至少一个从服务器节点中存储的所述待查询数据进行相应的业务处理。
10.根据权利要求6至9中任一所述的装置,其特征在于,
还包括:第二设置模块;其中,
所述第二设置模块,用于设置数据转化规则;
则,所述查询处理模块,用于根据所述数据转化规则对所述语法解析树中的至少一个对象参数进行转化处理;根据转化处理后的所述语法解析树查询所述Kudu中存储的待查询数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710465025.2A CN107273504A (zh) | 2017-06-19 | 2017-06-19 | 一种基于Kudu的数据查询方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710465025.2A CN107273504A (zh) | 2017-06-19 | 2017-06-19 | 一种基于Kudu的数据查询方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107273504A true CN107273504A (zh) | 2017-10-20 |
Family
ID=60067877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710465025.2A Pending CN107273504A (zh) | 2017-06-19 | 2017-06-19 | 一种基于Kudu的数据查询方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107273504A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109684331A (zh) * | 2018-12-20 | 2019-04-26 | 浪潮软件股份有限公司 | 一种基于Kudu的对象存储元数据管理装置及方法 |
CN110795456A (zh) * | 2019-10-28 | 2020-02-14 | 北京百度网讯科技有限公司 | 图谱的查询方法、装置、计算机设备以及存储介质 |
CN110795455A (zh) * | 2019-09-06 | 2020-02-14 | 中国平安财产保险股份有限公司 | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 |
CN110851678A (zh) * | 2018-07-24 | 2020-02-28 | 北京京东金融科技控股有限公司 | 一种爬取数据的方法和装置 |
CN111123888A (zh) * | 2019-12-19 | 2020-05-08 | 江苏中天科技软件技术有限公司 | 一种工控协议测试方法、***及电子设备和存储介质 |
CN111562885A (zh) * | 2020-04-30 | 2020-08-21 | 苏州亿歌网络科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
JP2021522570A (ja) * | 2018-04-19 | 2021-08-30 | リスク マネジメント ソリューションズ, インコーポレイテッド | 少ない待ち時間の検索問合せ応答を提供するためのデータ記憶システム |
CN113986707A (zh) * | 2021-11-03 | 2022-01-28 | 北京科杰科技有限公司 | 一种基于大数据kudu分区监控和监控慢SQL的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761080A (zh) * | 2013-12-25 | 2014-04-30 | 中国农业大学 | 一种基于SQL的MapReduce作业生成方法及*** |
CN105302842A (zh) * | 2014-07-31 | 2016-02-03 | 北大方正集团有限公司 | 一种数据处理方法及装置 |
CN105335366A (zh) * | 2014-05-30 | 2016-02-17 | 北大方正信息产业集团有限公司 | 一种sql语句处理方法、装置和服务器 |
CN105989150A (zh) * | 2015-03-02 | 2016-10-05 | ***通信集团四川有限公司 | 一种基于大数据环境的数据查询方法及装置 |
CN106682147A (zh) * | 2016-12-22 | 2017-05-17 | 北京锐安科技有限公司 | 一种基于海量数据的查询方法及装置 |
-
2017
- 2017-06-19 CN CN201710465025.2A patent/CN107273504A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761080A (zh) * | 2013-12-25 | 2014-04-30 | 中国农业大学 | 一种基于SQL的MapReduce作业生成方法及*** |
CN105335366A (zh) * | 2014-05-30 | 2016-02-17 | 北大方正信息产业集团有限公司 | 一种sql语句处理方法、装置和服务器 |
CN105302842A (zh) * | 2014-07-31 | 2016-02-03 | 北大方正集团有限公司 | 一种数据处理方法及装置 |
CN105989150A (zh) * | 2015-03-02 | 2016-10-05 | ***通信集团四川有限公司 | 一种基于大数据环境的数据查询方法及装置 |
CN106682147A (zh) * | 2016-12-22 | 2017-05-17 | 北京锐安科技有限公司 | 一种基于海量数据的查询方法及装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021522570A (ja) * | 2018-04-19 | 2021-08-30 | リスク マネジメント ソリューションズ, インコーポレイテッド | 少ない待ち時間の検索問合せ応答を提供するためのデータ記憶システム |
JP2022088603A (ja) * | 2018-04-19 | 2022-06-14 | リスク マネジメント ソリューションズ, インコーポレイテッド | 少ない待ち時間の検索問合せ応答を提供するためのデータ記憶システム |
JP7053885B2 (ja) | 2018-04-19 | 2022-04-12 | リスク マネジメント ソリューションズ, インコーポレイテッド | 少ない待ち時間の検索問合せ応答を提供するためのデータ記憶システム |
CN110851678A (zh) * | 2018-07-24 | 2020-02-28 | 北京京东金融科技控股有限公司 | 一种爬取数据的方法和装置 |
CN110851678B (zh) * | 2018-07-24 | 2024-02-02 | 京东科技控股股份有限公司 | 一种爬取数据的方法和装置 |
CN109684331A (zh) * | 2018-12-20 | 2019-04-26 | 浪潮软件股份有限公司 | 一种基于Kudu的对象存储元数据管理装置及方法 |
CN110795455A (zh) * | 2019-09-06 | 2020-02-14 | 中国平安财产保险股份有限公司 | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 |
CN110795455B (zh) * | 2019-09-06 | 2023-11-21 | 中国平安财产保险股份有限公司 | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 |
CN110795456A (zh) * | 2019-10-28 | 2020-02-14 | 北京百度网讯科技有限公司 | 图谱的查询方法、装置、计算机设备以及存储介质 |
CN110795456B (zh) * | 2019-10-28 | 2022-06-28 | 北京百度网讯科技有限公司 | 图谱的查询方法、装置、计算机设备以及存储介质 |
CN111123888A (zh) * | 2019-12-19 | 2020-05-08 | 江苏中天科技软件技术有限公司 | 一种工控协议测试方法、***及电子设备和存储介质 |
CN111562885A (zh) * | 2020-04-30 | 2020-08-21 | 苏州亿歌网络科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN113986707A (zh) * | 2021-11-03 | 2022-01-28 | 北京科杰科技有限公司 | 一种基于大数据kudu分区监控和监控慢SQL的方法 |
CN113986707B (zh) * | 2021-11-03 | 2022-06-14 | 北京科杰科技有限公司 | 一种基于大数据kudu分区监控和监控慢SQL的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107273504A (zh) | 一种基于Kudu的数据查询方法和装置 | |
CN100472480C (zh) | 分组处理方法和装置 | |
CN107292170B (zh) | Sql注入攻击的检测方法及装置、*** | |
CN109800258A (zh) | 数据文件部署方法、装置、计算机设备及存储介质 | |
CN109582289B (zh) | 规则引擎中规则流的处理方法、***、存储介质和处理器 | |
CN107480252A (zh) | 一种数据查询方法、客户端、服务端及*** | |
CN112367211B (zh) | 一种设备命令行生成配置模板方法、装置及存储介质 | |
CN105868249A (zh) | 数据查询控制方法及装置 | |
CN109582670B (zh) | 一种车辆维修方案的推荐方法及相关设备 | |
US8489631B2 (en) | Distributing a query | |
CN106708965A (zh) | 一种数据的处理方法和装置 | |
CN112997170A (zh) | 用于将用于自动化目的的数据模型变换成目标本体的方法 | |
CN115291967A (zh) | 航天数据分析方法、装置和电子设备 | |
CN113986968A (zh) | 一种基于电力标准规范数据化的方案智能校对方法 | |
CN115934097A (zh) | 生成可执行语句的方法、装置、存储介质及电子装置 | |
CN106909435B (zh) | 一种网络安全设备命令行的解析方法和装置 | |
CN105357118A (zh) | 一种基于规则的流量分类方法和*** | |
CN115048913B (zh) | 一种命令处理方法、装置和电子设备 | |
CN103457957B (zh) | 一种具有自适应功能的网络渗透测试***及方法 | |
CN113240499B (zh) | 一种基于***切换的订单处理方法和装置 | |
CN113672776B (zh) | 一种故障分析方法及装置 | |
CN112311679B (zh) | 状态检测方法、装置、电子设备及可读存储介质 | |
CN114416776A (zh) | 一种数据自定义查询统计方法 | |
CN106991166A (zh) | 一种大数据处理方法及装置 | |
CN103793390A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171020 |
|
RJ01 | Rejection of invention patent application after publication |