CN113934430A - 数据检索分析方法、装置、电子设备及存储介质 - Google Patents
数据检索分析方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113934430A CN113934430A CN202111220018.9A CN202111220018A CN113934430A CN 113934430 A CN113934430 A CN 113934430A CN 202111220018 A CN202111220018 A CN 202111220018A CN 113934430 A CN113934430 A CN 113934430A
- Authority
- CN
- China
- Prior art keywords
- statement
- data
- analysis
- retrieval
- storage medium
- 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
- 238000004458 analytical method Methods 0.000 title claims abstract description 185
- 238000012545 processing Methods 0.000 claims abstract description 96
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000006870 function Effects 0.000 claims description 59
- 238000007405 data analysis Methods 0.000 claims description 29
- 238000004364 calculation method Methods 0.000 claims description 19
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 230000002776 aggregation Effects 0.000 claims description 8
- 238000004220 aggregation Methods 0.000 claims description 8
- 238000012827 research and development Methods 0.000 abstract description 15
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- 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
- G06F16/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种数据检索分析方法、装置、电子设备及存储介质。方法包括:接收自定义的检索分析请求;检索分析请求包括根据自定义的检索分析语言输入的数据检索语句,数据检索语句用于确定数据查询语句,并根据数据查询语句获得原始数据;对检索分析请求进行解析,获得解析语句;将解析语句转换成适用于目标存储介质的数据处理语句;目标存储介质为多种存储介质中的任意一种;根据数据处理语句对目标存储介质进行检索分析获得检索分析结果。本申请通过对检索分析语言进行解析和转换,实现对目标存储介质下存储的数据进行检索分析的目的,研发人员只需要掌握这种自定义的检索分析语言便能够实现对不同存储介质下的数据的操作,提高了研发效率。
Description
技术领域
本申请涉及数据检索技术领域,具体而言,涉及一种数据检索分析方法、装置、电子设备及存储介质。
背景技术
在实际项目中,数据产生的速度很快,且数据量较大,考虑到不同时期数据的不同使用需求和存储成本,通常会采用不同类型的存储介质进行存储。
由于每种存储介质又都有各自的数据操作语言,因此,需要研发人员针对每种存储介质对应的数据操作语言进行学习,从而完成系统功能中对数据的操作,这将导致研发效率降低。
发明内容
本申请实施例的目的在于提供一种数据检索分析方法、装置、电子设备及存储介质,用以提高研发效率。
第一方面,本申请实施例提供一种数据检索分析方法,包括:接收自定义的检索分析请求;所述检索分析请求包括根据自定义的检索分析语言输入的数据检索语句,所述数据检索语句用于确定数据查询语句并根据所述数据查询语句获得原始数据;对所述检索分析请求进行解析,获得解析语句;将所述解析语句转换成适用于目标存储介质的数据处理语句;其中,所述目标存储介质为多种存储介质中的任意一种;根据所述数据处理语句对目标存储介质进行检索分析,获得检索分析结果。
本申请实施例通过接收自定义的检索分析语言,并对检索分析语句进行解析和转换,从而实现对目标存储介质下存储的数据进行检索分析的目的,由此可知,研发人员只需要掌握这种自定义的检索分析语言便能够实现对不同存储介质下的数据的操作,大大提高了研发效率。
在任一实施例中,所述检索分析请求还包括根据自定义的检索分析语言输入的数据分析计算语句,所述数据分析计算语句用于对所述原始数据进行分析;所述数据处理语句包括所述数据检索语句对应的第一子处理语句和所述数据分析计算语句对应的第二子处理语句;所述根据所述数据处理语句对目标存储介质进行检索分析,获得检索分析结果,包括:根据所述第一子处理语句从所述目标存储介质中获取所述原始数据;根据所述第二子处理语句对所述原始数据进行分析,获得所述检索分析结果。
本申请实施例通过第一子处理语句对目标存储介质中的原始数据进行查询,通过第二子处理语句实现对原始数据的分析,从而实现对目标存储介质中数据的查询及分析,不需要研发人员针对每种存储介质都进行学习,提高了研发效率。
在任一实施例中,对所述检索分析请求进行解析,获得解析语句,包括:利用语法分析器将所述检索分析语言解析为抽象语法树;所述抽象语法树中的叶子节点为单位语句;遍历所述抽象语法树,根据所述叶子节点的类型获得所述解析语句。
本申请实施例通过利用抽象语法树对检索分析语言进行解析,从而可以将一个比较复杂的检索分析语言解析成至少一个简单的解析语句,以便于后续将其转换为适用于目标存储介质的语言。
在任一实施例中,所述解析语句包含多条解析子句;将所述解析语句转换成适用于目标存储介质的数据处理语句,包括:对每一解析子句进行转换,获得适用于所述目标存储介质的处理子句;根据解析子句的顺序对所述处理子句进行拼装,获得所述数据处理语句。
本申请实施例通过将解析子句进行转换,并按照解析子句顺序对转换后的处理子句进行拼装,获得数据处理语句,该数据处理语句能够适用于目标存储介质,且数据处理语句能够准确反映出检索分析语言对应的操作。
在任一实施例中,所述数据查询语句包括全文检索、结构化检索、IP掩码检索、组合过滤检索、字段投影检索、数据排序、数据的聚合和数据统计中的至少一种。
在任一实施例中,所述数据分析计算语句包括函数和命令;所述函数包括求和函数、平均值函数、最大值函数、最小值函数去重计数函数、唯一值总数函数、众数函数、中位数函数、TopN函数、方差函数、标准差函数和统计函数中的至少一种。
在任一实施例中,在接收自定义的检索分析语言之前,所述方法还包括:与所述目标存储介质建立连接;其中,所述目标存储介质包括MySQL数据库、Oracle数据库、elasticsearch数据库、HBASE数据库、hive数据库、kingbase数据库、postgre数据库、Solr数据库、Lucene数据库中的任意一个。
第二方面,本申请实施例提供一种数据检索分析装置,包括:接收模块,用于接收自定义的检索分析语言;所述检索分析语言包括数据检索语句,所述数据检索语句用于确定数据查询语句,并根据所述数据查询语句获得原始数据;解析模块,用于对所述检索分析语句进行解析,获得解析语句;转换模块,用于将所述解析语句转换成适用于目标存储介质的数据处理语句;处理模块,用于根据所述数据处理语句对目标存储介质进行检索分析,获得检索分析结果。
第三方面,本申请实施例提供一种电子设备,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的方法。
第四方面,本申请实施例提供一种非暂态计算机可读存储介质,包括:
所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的方法。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种数据检索分析方法流程示意图;
图2为本申请实施例提供的一种数据检索分析装置结构示意图;
图3为本申请实施例提供的一种电子设备结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
可以理解的是,本申请实施例提供的数据检索分析方法可以应用于终端设备(也可以称为电子设备)以及服务器;其中终端设备具体可以为智能手机、平板电脑、计算机、个人数字助理(Personal Digital Assitant,PDA)等;服务器具体可以为应用服务器,也可以为Web服务器。为了便于描述,下述实施例采用终端设备作为执行主体。
图1为本申请实施例提供的一种数据检索分析方法流程示意图,如图1所示,该方法包括:
步骤101:接收自定义的检索分析语言;所述检索分析语言包括数据检索语句,所述数据检索语句用于确定数据查询语句,并根据所述数据查询语句获得原始数据;
步骤102:对所述检索分析请求进行解析,获得解析语句;
步骤103:将所述解析语句转换成适用于目标存储介质的数据处理语句;其中,所述目标存储介质为多种存储介质中的任意一种;
步骤104:根据所述数据处理语句对目标存储介质进行检索分析,获得检索分析结果。
在步骤101中,检索分析请求为用户(例如研发人员)按照预先定义的检索分析语言的语法格式输入的语句,或者服务器也可以向研发人员提供撰写助手,研发人员只需要根据服务器提供的撰写助手输入要检索分析的关键信息,服务器根据关键信息生成对应的检索分析语言。
检索分析语言(Search Process Language,SPL)是自定义的一种数据检索及分析语言,检索分析请求包括数据检索语句,该数据检索语句用于确定数据查询语句。其中,数据查询语句是指对目标存储介质进行数据查询的语句,例如,全文检索、条件检索等。通过指定的数据查询语句对目标存储介质进行原始数据的查询。所谓原始数据是指存储介质中实际存储的数据,未经过分析的数据。
在步骤102中,服务器在获得检索分析请求后,对检索分析请求进行解析,将检索分析请求中的数据检索语句进行解析,解析的目的是将数据检索语句解析成一个一个最小单元的条件查询语句,即获得数据检索语句对应的解析语句。可以理解的是,解析后获得的解析语句可以为一个,也可以为多个,具体数量根据数据检索语句确定。假设数据检索语句较为简单,只有一个检索条件,那么解析后获得的解析语句为一个;如果数据检索语句比较复杂,那么解析后获得的解析语句则为多个。
在步骤103中,目标存储介质可以是多种存储介质中的一种,本申请实施例提供将解析语句转换为多种存储介质的转换方法,也可以理解为是预先在服务器中创建由自定义的检索分析语言中每个解析语句到各种存储介质的转换模板。在获取到检索分析请求后,将检索分析语句解析为对应的解析语句,然后使用目标存储介质对应的转换模板将解析语句换成为目标存储介质能够识别的数据处理语句。应当说明的是,目标存储介质与服务器是预先连接的,因此,服务器预先能够获得目标存储介质。
在步骤104中,服务器在获得数据处理语句后,调用目标存储介质提供的数据操作的应用程序接口API,利用数据处理语句对目标存储介质进行检索分析,获得检索分析结果。其中,检索分析结果为从目标存储介质中检索获得的原始数据。
本申请实施例通过接收自定义的检索分析语言,并对检索分析语言进行解析和转换,从而实现对目标存储介质下存储的数据进行检索分析的目的,由此可知,研发人员只需要掌握这种自定义的检索分析语言便能够实现对不同存储介质下的数据的操作,大大提高了研发效率。
在上述实施例的基础上,所述检索分析请求还包括根据自定义的检索分析语言输入的数据分析计算语句,所述数据分析计算语句用于对所述原始数据进行分析;所述数据处理语句包括所述数据检索语句对应的第一子处理语句和所述数据分析计算语句对应的第二子处理语句;
所述根据所述数据处理语句对目标存储介质进行检索分析,获得检索分析结果,包括:
根据所述第一子处理语句从所述目标存储介质中获取所述原始数据;
根据所述第二子处理语句对所述原始数据进行分析,获得所述检索分析结果。
在具体的实施过程中,数据分析计算语句使用函数和命令来完成对原始数据的分析计算,使用“管道”来连接各个分析计算子句,传递前序数据检索分析结果。可以理解的是,在实际的检索分析语言中,“管道”可以使用“|”来表示。因此,检索分析请求中包括数据检索语句和数据分析计算语句,其对应的检索式可以为:数据检索语句|数据分析计算语句。
在对检索请求进行解析时,需要对数据检索语句和数据分析计算语句进行解析,从而获得多个解析语句。多个解析语句中包括至少一个所述检索语句对应的解析语句和至少一个数据分析计算语句对应的解析语句。
同样的,在对多个解析语句进行转换后,获得的数据处理语句中包括多个子句,即包括数据检索语句对应的第一子处理语句和数据分析计算语句对应的第二子处理语句。
由于数据检索语句是用于检索获得目标存储介质中的原始数据;数据分析计算语句是用于对原始数据进行分析的。因此,服务器通过调用API,利用第一子处理语句从目标存储介质中获取原始数据,并利用第二子处理语句对原始数据进行分析,从而获得检索分析结果。可以理解的是,此处的检索分析结果不再是原始数据,而是对原始数据进行分析后的结果。具体的分析方法根据数据分析计算语句确定。
本申请实施例通过第一子处理语句对目标存储介质中的原始数据进行查询,通过第二子处理语句实现对原始数据的分析,从而实现对目标存储介质中数据的查询及分析,不需要研发人员针对每种存储介质都进行学习,提高了研发效率。
在上述实施例的基础上,在接收自定义的检索分析请求之前,所述方法还包括:与所述目标存储介质建立连接;其中,所述目标存储介质包括MySQL数据库、Oracle数据库、elasticsearch数据库、HBASE数据库、hive数据库、kingbase数据库、postgre数据库、Solr数据库、Lucene数据库中的任意一个。
应当说明的是,目标存储介质还可以是其他数据库,只要预先配置好自定义的检索分析语言与该数据库之间的转换关系即可。
在上述实施例的基础上,本申请实施例中所述的数据查询语句包括全文检索、结构化检索、IP掩码检索、组合过滤检索、字段投影检索、数据排序、数据的聚合和数据统计中的至少一种。
下面对以上几种数据查询语句进行介绍,可以理解的是,除了上述列出的数据查询语句外,还可以包括其他的数据查询语句。
(1)全文检索
语法:value。
语句示例:北京。
语句含义:表示查询所有字段的所有值中,值包含"北"、"京""北京"的数据。
(2)结构化检索
语法:field_name opr field_value。
field_name:字段名称;可以是字母,数字,下划线,首位必须是字母。
field_value:字段值;可以是数字、中文、字符串、ip类型。
opr:关系连接符;支持>、<、=、>=、<=、!=、in。
语句示例:field_name=北京。
语句含义:表示查询field_name字段的所有值中,值包含"北"、"京"、"北京"的数据。
语句示例:field_name="北京"。
语句含义:表示查询field_name字段的所有值中,值是"北京"的数据。
(3)IP掩码检索
语法:field_name=IP/IP掩码位。
field_name:字段名称;可以是字母,数字,下划线,首位必须是字母。
IP:IP地址(支持IPV4和IPV6地址)。
IP掩码位:支持0-32。
语句示例:field_name=10.10.10.1/25。
语句含义:表示查询field_name字段的所有值中,值是"10.10.10.1"至"10.10.10.127"的数据。
(4)组合过滤检索
语法:全文检索语句/结构化检索语句OPR全文检索语句/结构化检索语句。
OPR支持:AND、OR。
OR:表示结果集只要满足运算符OR两边任意一边的条件。
AND:表示结果集需要满足运算符AND两边的条件。
语句示例:field="恶意代码"OR field="信息危害"。
field="恶意代码"AND field="信息危害"AND 183.204.13.12
(5)字段投影检索
语法:FIELDS field。
FIELDS是限定结果集展示数据列的关键字。
多个字段使用逗号分隔:FIELDS field,field2。
语句示例:FIELDS field1,field2。
语句含义:表示对检索结果的field1,field2字段进行投影。
(6)数据排序
语法:SORT field_name[ASC/DESC]。
排序关键字:SORT排序方式关键字:升序ASC,降序DESC。
语句示例:SORT field1 ASC,field2,field3 DESC。
语句含义:表示查询条件下的结果集中按field1升序、field2升序、field3降序排列。
(7)数据的聚合和数据的统计
数据分析计算语句包含函数和命令,其中函数包括求和函数、平均值函数、最大值函数、最小值函数、去重计数函数、唯一值总数函数、众数函数、中位数函数、TopN函数、方差函数、标准差函数和统计函数中的至少一种。
数据分析计算语句(统计和聚合)的语法如下:
stats(stats-function(field)[AS fieldAlias])...[BY field-list]
Complete:
stats(<stats-agg-term>...|<sparkline-agg-term>...)
[<by-clause>]
Optional arguments
stats-agg-term
as-clause
语法:as<结果别名>
说明:分析结果的结果列的别名。如果未as指定任何别名,则该列返回聚合统计命令名称。
by-clause
语法:BY<字段列表>
说明:要分组的一个或多个字段的名称。对于字段列表,不能使用通配符来指定多个名称相似的字段。需分别指定每个字段。该BY子句为BY子句字段中的每个不同值返回一列。如果没有指定任何子句,则该stats命令仅返回一列,这是整个传入结果集的汇总。
数据统计语句示例:xx|stats count(S_PORT)as port_count。
表示对xx筛选条件下的数据统计S_PORT出现的次数。其中,xx为数据检索语句;stats count(S_PORT)as port_count为数据分析计算语句。
数据聚合统计语句示例:xx|stats count(S_PORT)as port_count by S_IP。
表示对xx筛选条件下的数据以S_IP进行分组,统计S_PORT出现的次数。其中,xx为数据检索语句;stats count(S_PORT)as port_count by S_IP为数据分析计算语句。
在上述实施例的基础上,所述对所述检索分析请求进行解析,获得解析语句,包括:
利用语法分析器将所述检索分析语言解析为抽象语法树;所述抽象语法树中的叶子节点为单位语句;
遍历所述抽象语法树,根据所述叶子节点的类型获得所述解析语句。
在具体的实施过程中,抽象语法树(Abstract Syntax Tree,AST),是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。之所以说语法是"抽象"的,是因为这里的语法并不会表示出真实语法中出现的每个细节。
服务器在接收到检索请求后,将检索请求中的检索分析语言发送给语言处理引擎,语言处理引擎内部使用编译好的抽象语法树来解析语句,将检索分析语言解析为一颗抽象的语法树,树的叶子节点为一个一个最小单位的语句。遍历整棵抽象语法树,根据叶子节点的类型来识别出具体的语句并记录到定义好的语句队列。
下面结合具体的示例进行描述:
场景1:检索请求中含有数据检索语句
检索要求:查询北京市2021年8月20日至今包含“恶意代码”的数据,那么数据检索语句为:恶意代码AND city="北京市"AND time>="2021-08-20"。该语句经过语言处理引擎内部的语法分析器分析后,会形成三个条件语句(“恶意代码”、“city=北京市”、“time>=2021-08-21”),然后将解析完的三个子句按顺序记录到语句队列,等待下一步的目标数据库语言转换。
场景2:检索请求中含有数据检索语句和数据分析计算语句
检索要求:分析北京市2021年8月20日至今包含“恶意代码”的前10个访问源IP的数据,那么SPL语句为:恶意代码AND city="北京市"AND time>="2021-08-20"|statscount(source_ip)as source_ip_count by source_ip|sort source_ip_count desc。该语句经过语言处理引擎内部的语法分析器分析后,会形成三个条件语句(“恶意代码”、“city=北京市”、“time>=2021-08-21”)和两个数据分析语句(“stats count(source_ip)as source_ip_count by source_ip”、“sort source_ip_count desc”)。然后将解析完的五个子句按顺序记录到语句队列,等待下一步的目标数据库语言转换。
本申请实施例通过利用抽象语法树对检索分析语言进行解析,从而可以将一个比较复杂的检索分析语言解析成至少一个简单的解析语句,以便于后续将其转换为适用于目标存储介质的语言。
在上述实施例的基础上,所述解析语句包含多条解析子句;将所述解析语句转换成适用于目标存储介质的数据处理语句,包括:
对每一解析子句进行转换,获得适用于所述目标存储介质的处理子句;
根据解析子句的顺序对所述处理子句进行拼装,获得所述数据处理语句。
在具体的实施过程中,服务器在获取到解析子句后,利用目标存储介质对应的转换模板对每一解析子句进行转换,获得每一解析子句对应的处理子句。例如:可以将自定义的检索分析语言中的结构化检索语句转化为mysql数据库的where子句、将自定义的检索分析语言中的字段投影语句转化为elasticsearch的source查询语句。在转换完成后,按照解析子句顺序,将处理子句进行拼装,获得处理语句。
仍以上述实施例中的场景2为例:假设目标存储介质为elasticsearch数据库,那么可以将“恶意代码”转换为:
在将上述各个解析子句转换成对应的处理子句后,按照解析子句顺序将处理子句进行拼装,获得的数据处理语句为:{
本申请实施例通过将解析子句进行转换,并按照解析子句顺序对转换后的处理子句进行拼装,获得数据处理语句,该数据处理语句能够适用于目标存储介质,且数据处理语句能够准确反映出检索分析语言对应的操作。
图2为本申请实施例提供的数据检索分析装置结构示意图,该装置可以是电子设备上的模块、程序段或代码。应理解,该装置与上述图1方法实施例对应,能够执行图1方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。所述装置包括:接收模块201、解析模块202、转换模块203和处理模块204,其中:
接收模块201用于接收检索分析请求;所述检索分析请求包括根据自定义的检索分析语言输入的数据检索语句,所述数据检索语句用于确定数据查询语句,并根据所述数据查询语句获得原始数据;
解析模块202用于对所述检索分析请求进行解析,获得解析语句;
转换模块203用于将所述解析语句转换成适用于目标存储介质的数据处理语句;
处理模块204用于根据所述数据处理语句对目标存储介质进行检索分析,获得检索分析结果。
在上述实施例的基础上,所述检索分析请求还包括根据自定义的检索分析语言输入的数据分析计算语句,所述数据分析计算语句用于对所述原始数据进行分析;所述数据处理语句包括所述数据检索语句对应的第一子处理语句和所述数据分析计算语句对应的第二子处理语句;
处理模块204具体用于:
根据所述第一子处理语句从所述目标存储介质中获取所述原始数据;
根据所述第二子处理语句对所述原始数据进行分析,获得所述检索分析结果。
在上述实施例的基础上,解析模块202具体用于:
利用语法分析器将所述检索分析语言解析为抽象语法树;所述抽象语法树中的叶子节点为单位语句;
遍历所述抽象语法树,根据所述叶子节点的类型获得所述解析语句。
在上述实施例的基础上,所述解析语句包括多条解析子句;转换模块203具体用于:
对每一解析子句进行转换,获得适用于所述目标存储介质的处理子句;
根据解析子句的顺序对所述处理子句进行拼装,获得所述数据处理语句。
在上述实施例的基础上,所述数据查询语句包括全文检索、结构化检索、IP掩码检索、组合过滤检索、字段投影检索、数据排序、数据的聚合和数据统计中的至少一种。
在上述实施例的基础上,所述数据分析计算语句包括函数和命令;所述函数包括求和函数、平均值函数、最大值函数、最小值函数、去重计数函数、唯一值总数函数、众数函数、中位数函数、TopN函数、方差函数、标准差函数和统计函数中的至少一种。
在上述实施例的基础上,该装置还包括连接模块,用于:
与所述目标存储介质建立连接;其中,所述目标存储介质包括MySQL数据库、Oracle数据库、elasticsearch数据库、HBASE数据库、hive数据库、kingbase数据库、postgre数据库、Solr数据库、Lucene数据库数据库中的任意一个。
综上,本申请实施例通过自定义数据检索分析语言(包含数据的全文检索、结构化检索、IP掩码检索、组合过滤检索、字段投影检索、数据的聚合、统计等),使大数据研发人员在日常研发中,针对存储在不同存储介质的海量数据,通过使用该数据检索分析语言,来实现用统一的方式操作不同存储介质下存储的数据,使大数据研发人员不需要针对每一种存储介质都去学习数据操作语言,从而减少学习成本,提升研发效率的目的。
图3为本申请实施例提供的电子设备实体结构示意图,如图3所示,所述电子设备,包括:处理器(processor)301、存储器(memory)302和总线303;其中,
所述处理器301和存储器302通过所述总线303完成相互间的通信;
所述处理器301用于调用所述存储器302中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:接收检索分析请求;所述检索分析请求包括根据自定义的检索分析语言输入的数据检索语句,所述数据检索语句用于确定数据查询语句,并根据所述数据查询语句获得原始数据;对所述检索分析请求进行解析,获得解析语句;将所述解析语句转换成适用于目标存储介质的数据处理语句;其中,所述目标存储介质为多种存储介质中的任意一种;根据所述数据处理语句对目标存储介质进行检索分析,获得检索分析结果。
处理器301可以是一种集成电路芯片,具有信号处理能力。上述处理器301可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本申请实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器302可以包括但不限于随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)等。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:接收检索分析请求;所述检索分析请求包括根据自定义的检索分析语言输入的数据检索语句,所述数据检索语句用于确定数据查询语句,并根据所述数据查询语句获得原始数据;对所述检索分析请求进行解析,获得解析语句;将所述解析语句转换成适用于目标存储介质的数据处理语句;其中,所述目标存储介质为多种存储介质中的任意一种;根据所述数据处理语句对目标存储介质进行检索分析,获得检索分析结果。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:接收检索分析请求;所述检索分析请求包括根据自定义的检索分析语言输入的数据检索语句,所述数据检索语句用于确定数据查询语句,并根据所述数据查询语句获得原始数据;对所述检索分析请求进行解析,获得解析语句;将所述解析语句转换成适用于目标存储介质的数据处理语句;其中,所述目标存储介质为多种存储介质中的任意一种;根据所述数据处理语句对目标存储介质进行检索分析,获得检索分析结果。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种数据检索分析方法,其特征在于,包括:
接收检索分析请求;所述检索分析请求包括根据自定义的检索分析语言输入的数据检索语句,所述数据检索语句用于确定数据查询语句,并根据所述数据查询语句获得原始数据;
对所述检索分析请求进行解析,获得解析语句;
将所述解析语句转换成适用于目标存储介质的数据处理语句;其中,所述目标存储介质为多种存储介质中的任意一种;
根据所述数据处理语句对目标存储介质进行检索分析,获得检索分析结果。
2.根据权利要求1所述的方法,其特征在于,所述检索分析请求还包括根据自定义的检索分析语言输入的数据分析计算语句,所述数据分析计算语句用于对所述原始数据进行分析;所述数据处理语句包括所述数据检索语句对应的第一子处理语句和所述数据分析计算语句对应的第二子处理语句;
所述根据所述数据处理语句对目标存储介质进行检索分析,获得检索分析结果,包括:
根据所述第一子处理语句从所述目标存储介质中获取所述原始数据;
根据所述第二子处理语句对所述原始数据进行分析,获得所述检索分析结果。
3.根据权利要求1所述的方法,其特征在于,所述对所述检索分析请求进行解析,获得解析语句,包括:
利用语法分析器将所述检索分析语言解析为抽象语法树;所述抽象语法树中的叶子节点为单位语句;
遍历所述抽象语法树,根据所述叶子节点的类型获得所述解析语句。
4.根据权利要求1所述的方法,其特征在于,所述解析语句包括多条解析子句;所述解析语句转换成适用于目标存储介质的数据处理语句,包括:
对每一解析子句进行转换,获得适用于所述目标存储介质的处理子句;
根据解析子句的顺序对所述处理子句进行拼装,获得所述目标存储介质的数据处理语句。
5.根据权利要求1所述的方法,其特征在于,所述数据查询语句包括全文检索、结构化检索、IP掩码检索、组合过滤检索、字段投影检索、数据排序、数据的聚合和数据统计中的至少一种。
6.根据权利要求2所述的方法,其特征在于,所述数据分析计算语句包括函数和命令;所述函数包括求和函数、平均值函数、最大值函数、最小值函数、去重计数函数、唯一值总数函数、众数函数、中位数函数、TopN函数、方差函数、标准差函数和统计函数中的至少一种。
7.根据权利要求1-6任一项所述的方法,其特征在于,在接收自定义的检索分析请求之前,所述方法还包括:
与所述目标存储介质建立连接;其中,所述目标存储介质包括MySQL数据库、Oracle数据库、elasticsearch数据库、HBASE数据库、hive数据库、kingbase数据库、postgre数据库、Solr数据库、Lucene数据库中的任意一个。
8.一种数据检索分析装置,其特征在于,包括:
接收模块,用于接收检索分析请求;所述检索分析请求包括根据自定义的检索分析语言输入的数据检索语句,所述数据检索语句用于确定数据查询语句,并根据所述数据查询语句获得原始数据;
解析模块,用于对所述检索分析请求进行解析,获得解析语句;
转换模块,用于将所述解析语句转换成适用于目标存储介质的数据处理语句;
处理模块,用于根据所述数据处理语句对目标存储介质进行检索分析,获得检索分析结果。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-7任一项所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令被计算机运行时,使所述计算机执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111220018.9A CN113934430A (zh) | 2021-10-20 | 2021-10-20 | 数据检索分析方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111220018.9A CN113934430A (zh) | 2021-10-20 | 2021-10-20 | 数据检索分析方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113934430A true CN113934430A (zh) | 2022-01-14 |
Family
ID=79280561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111220018.9A Pending CN113934430A (zh) | 2021-10-20 | 2021-10-20 | 数据检索分析方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113934430A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115954108A (zh) * | 2023-03-10 | 2023-04-11 | 成都数之联科技股份有限公司 | 一种数据分析异步处理方法及系统及装置及介质 |
-
2021
- 2021-10-20 CN CN202111220018.9A patent/CN113934430A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115954108A (zh) * | 2023-03-10 | 2023-04-11 | 成都数之联科技股份有限公司 | 一种数据分析异步处理方法及系统及装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109522341B (zh) | 实现基于sql的流式数据处理引擎的方法、装置、设备 | |
CN108694221B (zh) | 数据实时分析方法、模块、设备和装置 | |
US9311058B2 (en) | Jabba language | |
CN109241080B (zh) | 一种fql查询语言的构建使用方法及其系统 | |
CN112860727B (zh) | 基于大数据查询引擎的数据查询方法、装置、设备及介质 | |
CN111198898B (zh) | 大数据查询方法及大数据查询装置 | |
CN112541002A (zh) | 程序语言转换方法、装置、电子设备及存储介质 | |
CN111708805A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN113297251A (zh) | 多源数据检索方法、装置、设备及存储介质 | |
CN111400436A (zh) | 一种基于用户意图识别的搜索方法以及装置 | |
CN115357625A (zh) | 结构化数据比对方法、装置、电子设备及存储介质 | |
CN110727651A (zh) | 一种日志处理方法、装置、终端设备及计算机可读存储介质 | |
CN111552792A (zh) | 一种信息查询方法、装置、电子设备及存储介质 | |
CN113934430A (zh) | 数据检索分析方法、装置、电子设备及存储介质 | |
CN111159213A (zh) | 一种数据查询方法、装置、系统和存储介质 | |
CN117435189A (zh) | 金融系统接口的测试用例分析方法、装置、设备及介质 | |
CN107633094B (zh) | 一种集群环境中数据检索的方法和装置 | |
CN115658072A (zh) | 数据血缘解析方法、装置、设备及计算机可读存储介质 | |
CN115470861A (zh) | 数据处理方法、装置和电子设备 | |
CN114969125A (zh) | 一种通用数据查询和统计方法及系统 | |
CN114416776A (zh) | 一种数据自定义查询统计方法 | |
CN111143398B (zh) | 基于扩展sql函数的超大集合查询方法及装置 | |
CN114020769A (zh) | 一种数据血缘分析方法、装置和存储介质 | |
CN113342818A (zh) | 数据查询方法、系统、存储介质及电子设备 | |
CN114764406A (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 |