CN108345648B - 一种基于列式存储的获取日志信息的方法及装置 - Google Patents
一种基于列式存储的获取日志信息的方法及装置 Download PDFInfo
- Publication number
- CN108345648B CN108345648B CN201810050152.0A CN201810050152A CN108345648B CN 108345648 B CN108345648 B CN 108345648B CN 201810050152 A CN201810050152 A CN 201810050152A CN 108345648 B CN108345648 B CN 108345648B
- Authority
- CN
- China
- Prior art keywords
- data
- memory cache
- query statement
- block
- address
- 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
Images
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/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
-
- 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/2452—Query translation
- G06F16/24528—Standardisation; Simplification
-
- 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
Abstract
本发明实施例提供一种基于列式存储的获取日志信息的方法及装置,所述方法包括:解析数据查询语句,以获取解析结果,所述解析结果包括数据地址、数据调用接口,以及逻辑运算标识;其中,所述数据查询语句对应待查询的数据是基于列式存储的;将所述数据地址、所述数据调用接口,以及所述逻辑运算标识转换为目标查询语句;根据所述目标查询语句读取所述数据,以获取日志信息。所述装置执行上述方法。本发明实施例提供的基于列式存储的获取日志信息的方法及装置,通过将数据查询语句转换为目标查询语句,并根据目标查询语句读取数据,以获取日志信息,能够简化数据查询语句,并节省内存资源,进而提高数据查询效率。
Description
技术领域
本发明实施例涉及数据处理技术领域,具体涉及一种基于列式存储的获取日志信息的方法及装置。
背景技术
随着大数据技术的发展,通过数据查询语句获取日志信息的技术方案也得到广泛使用。
为了适应例如防火墙这种低内存高性能要求的场景,由于其内存指标比较低下,一般只有几十兆,现有技术采用列式存储的方式存储数据(即每列存储有相对应的数据),但是,对于基于列式存储的数据查询语句比较复杂,执行过程中会占用较多的内存资源,导致数据查询效率低下。
因此,如何避免上述缺陷,简化数据查询语句,并节省内存资源,进而提高数据查询效率,成为亟须解决的问题。
发明内容
针对现有技术存在的问题,本发明实施例提供一种基于列式存储的获取日志信息的方法及装置。
第一方面,本发明实施例提供一种基于列式存储的获取日志信息的方法,所述方法包括:
解析数据查询语句,以获取解析结果,所述解析结果包括数据地址、数据调用接口,以及逻辑运算标识;其中,所述数据查询语句对应待查询的数据是基于列式存储的;
将所述数据地址、所述数据调用接口,以及所述逻辑运算标识转换为目标查询语句;
根据所述目标查询语句读取所述数据,以获取日志信息。
第二方面,本发明实施例提供一种基于列式存储的获取日志信息的装置,所述装置包括:
解析单元,用于解析数据查询语句,以获取解析结果,所述解析结果包括数据地址、数据调用接口,以及逻辑运算标识;其中,所述数据查询语句对应待查询的数据是基于列式存储的;
转换单元,用于将所述数据地址、所述数据调用接口,以及所述逻辑运算标识转换为目标查询语句;
获取单元,用于根据所述目标查询语句读取所述数据,以获取日志信息。
第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器和总线,其中,
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下方法:
解析数据查询语句,以获取解析结果,所述解析结果包括数据地址、数据调用接口,以及逻辑运算标识;其中,所述数据查询语句对应待查询的数据是基于列式存储的;
将所述数据地址、所述数据调用接口,以及所述逻辑运算标识转换为目标查询语句;
根据所述目标查询语句读取所述数据,以获取日志信息。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,包括:
所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如下方法:
解析数据查询语句,以获取解析结果,所述解析结果包括数据地址、数据调用接口,以及逻辑运算标识;其中,所述数据查询语句对应待查询的数据是基于列式存储的;
将所述数据地址、所述数据调用接口,以及所述逻辑运算标识转换为目标查询语句;
根据所述目标查询语句读取所述数据,以获取日志信息。
本发明实施例提供的基于列式存储的获取日志信息的方法及装置,通过将数据查询语句转换为目标查询语句,并根据目标查询语句读取数据,以获取日志信息,能够简化数据查询语句,并节省内存资源,进而提高数据查询效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例基于列式存储的获取日志信息的方法流程示意图;
图2为本发明实施例异步读取数据获取日志信息的流程图;
图3为本发明实施例基于列式存储的获取日志信息的装置结构示意图;
图4为本发明实施例提供的电子设备实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例基于列式存储的获取日志信息的方法流程示意图,如图1所示,本发明实施例提供的一种基于列式存储的获取日志信息的方法,包括以下步骤:
S1:解析数据查询语句,以获取解析结果,所述解析结果包括数据地址、数据调用接口,以及逻辑运算标识;其中,所述数据查询语句对应待查询的数据是基于列式存储的。
具体的,装置解析数据查询语句,以获取解析结果,所述解析结果包括数据地址、数据调用接口,以及逻辑运算标识;其中,所述数据查询语句对应待查询的数据是基于列式存储的。举例说明如下:解析结果包括了源、目的地址(对应于数据地址),源、目的接口(对应于数据调用接口),其中数据地址的地址类型可以包括网际协议版本4(InternetProtocol Version 4,以下简称“IPv4”)和网际协议版本6(Internet Protocol Version6,以下简称“IPv6”),用户想要查询特定源、目的地址和接口名(当然也可以指定源或目的接口),那么用户可以输入如下数据查询语句:(addr.dst eq 192.168.1.1or addr.src eq127.0.0.1)and interface neq′ge1′。解析出interface既包括了interface.src也包括了interface.dst,泛指所有接口,用户输入的数据地址使用addr作为开头,以src和dst区分源数据地址和目的数据地址,不需要区分IPv4或IPv6,数据地址包括源数据地址“127.0.0.1”、目的数据地址“192.168.1.1”;数据调用接口包括“ge1”,还可以进一步扩展为对应于源数据地址的源数据调用接口interface.src为“ge1”、对应于目的数据地址的目的数据调用接口interface.dst为“ge1”;逻辑运算标识包括上述举例中的“eq”、“or”、“and”、“neq”等。
S2:将所述数据地址、所述数据调用接口,以及所述逻辑运算标识转换为目标查询语句。
具体的,装置将所述数据地址、所述数据调用接口,以及所述逻辑运算标识转换为目标查询语句。目标查询语句可以包括多种语言的查询语句,这里以C语言查询语句为例进行说明:参照上述数据查询语句的举例,转换后的C语言查询语句为:(((key->addr4.dst==3232235777)||(key->addr4.src==2130706433))&&((key->user.src!=$ge1$)&&(key->user.dst!=$ge1$)))。由于输入的是IPv4地址,被自动转换为addr4,以区分Ipv6地址,“3232235777”对应于“192.168.1.1”,是十进制数字(即N进制数字,N=10);同理“2130706433”对应于“127.0.0.1,也是十进制数字,接口被扩展为源和目的,由于接口使用的是不等于,所以扩展逻辑是源接口(对应源数据调用接口)不等于ge1并且目的接口(对应目的数据调用接口)不等于ge1。逻辑运算标识“eq”、“or”、“and”、“neq”分别对应的逻辑运算符号为“==”、“||”、“&&”、“!=”;包括有指定字符的数据调用接口是“$ge1$”(即指定字符为“$”)。
进一步地,用户输入的数据查询语句逻辑可能比较复杂,并存在冗余,目标查询语句还可以对数据查询语句进行简化,例如如下数据查询语句:not(addr.src neq192.168.1.1and addr.dst eq 192.168.1.1)or addr.src neq 192.168.1.1,这里开头的not表示逻辑非,转换后的C语言查询语句为key->addr4.dst!=3232235777。可以看到addr.src逻辑是冗余的,所以被优化掉了,对应的列文件的IO读取也就没有必要了,从而提升了查询性能。这里只有addr4.dst列会被预读取到内存缓存中。
S3:根据所述目标查询语句读取所述数据,以获取日志信息。
具体的,装置根据所述目标查询语句读取所述数据,以获取日志信息。可以根据目标查询语句异步读取数据,以获取日志信息,具体方法可以如下:
使用第一块内存缓存读取所述数据,同时第二块内存缓存对预先读取到的数据进行数据匹配计算;
若第一块内存缓存已满,且第二块内存缓存中的数据匹配计算尚未结束,则使第一块内存缓存处于等待状态;
待第二块内存缓存完成数据匹配计算时,将已满的第一块内存缓存与完成数据匹配计算的第二块内存缓存进行交换,以使完成数据匹配计算的第二块内存缓存清空缓存,并继续读取所述数据,同时第一块内存缓存对已读取的数据进行数据匹配计算;
若第二块内存缓存已满,且第一块内存缓存中的数据匹配计算尚未结束,则使第二块内存缓存处于等待状态;
待第一块内存缓存完成数据匹配计算时,将已满的第二块内存缓存与完成数据匹配计算的第一块内存缓存进行交换,以使完成数据匹配计算的第一块内存缓存清空缓存,并继续使用第一块内存缓存读取所述数据,直到完成全部数据的异步读取,并获取所述日志信息。图2为本发明实施例异步读取数据获取日志信息的流程图,如图2所示,传统的文件或数据库匹配,先要读取磁盘中的数据到内存,然后在内存中进行匹配查询,数据读取和计算是同步串行的,而CPU的计算单元和存储单元实际上是独立的。为了提升查询性能,需要数据读取采用AIO异步IO技术,通过两块内存缓存循环交换数据,在上一次读取的数据在内存缓存里进行匹配计算的同时,下一次要匹配的数据也同时正在被预读取,从而实现磁盘数据读取与匹配计算并行化。
由于正常的记录列有很多,而查询的列通常很少,参与匹配的IO列只是少数列,依靠高IO压缩比获得很高的查询性能。例如:以SATA3硬盘为例,其500M/s的读取速度,一条日志大概有60个字段,日志的平均长度约为每条1K,这样如果查询条件为源IP(addr.src)、目的IP(addr.dst)和目的端口(port.dst)三个字段的组合,即标准的三元组为条件来查询,源IP、目的IP都是4字节,目的端口2字节,一共10字节,查询性能为500M除以10等于50M(5000万)条/秒的查询性能,等同于每秒可以过滤5000万条乘以每条1K,即每秒查询过滤50G的数据。对于匹配命中的数据,需要额外的一次磁盘读取,把对应匹配命中列相同行的条目读取出来以获得完整的查询日志信息。由于一次查询显示的数据通常都是很有限的条目(一般为20或50条),所以这样的IO操作无所谓使用何种方式,不涉及性能问题。
本发明实施例提供的基于列式存储的获取日志信息的方法,通过将数据查询语句转换为目标查询语句,并根据目标查询语句读取数据,以获取日志信息,能够简化数据查询语句,并节省内存资源,进而提高数据查询效率。
在上述实施例的基础上,所述目标查询语句包括C语言查询语句;相应的,所述将所述数据地址、所述数据调用接口,以及所述逻辑运算标识转换为目标查询语句,包括:
获取所述数据地址的地址类型。
具体的,装置获取所述数据地址的地址类型。可参照上述实施例,不再赘述。
将所述数据地址转换为包括有所述地址类型的对应于所述C语言查询语句的N进制数字;N为正整数。
具体的,装置将所述数据地址转换为包括有所述地址类型的对应于所述C语言查询语句的N进制数字;N为正整数。可参照上述实施例,不再赘述。
将所述数据调用接口转换为对应于所述C语言查询语句的包括有指定字符的数据调用接口。
具体的,装置将所述数据调用接口转换为对应于所述C语言查询语句的包括有指定字符的数据调用接口。可参照上述实施例,不再赘述。
将所述逻辑运算标识转换为对应于所述C语言查询语句的逻辑运算符号。
具体的,装置将所述逻辑运算标识转换为对应于所述C语言查询语句的逻辑运算符号。可参照上述实施例,不再赘述。
本发明实施例提供的基于列式存储的获取日志信息的方法,能够有效地将数据查询语句转换为目标查询语句。
在上述实施例的基础上,所述数据地址包括源数据地址和目的数据地址;相应的,所述将所述数据调用接口转换为对应于所述C语言查询语句的包括有指定字符的数据调用接口,包括:
将所述数据调用接口扩展为对应于所述源数据地址的源数据调用接口,以及对应于所述目的数据地址的目的数据调用接口。
具体的,装置将所述数据调用接口扩展为对应于所述源数据地址的源数据调用接口,以及对应于所述目的数据地址的目的数据调用接口。可参照上述实施例,不再赘述。
分别将所述源数据调用接口,以及所述目的数据调用接口转换为对应于所述C语言查询语句的包括有指定字符的数据调用接口。
具体的,装置分别将所述源数据调用接口,以及所述目的数据调用接口转换为对应于所述C语言查询语句的包括有指定字符的数据调用接口。可参照上述实施例,不再赘述。
本发明实施例提供的基于列式存储的获取日志信息的方法,进一步能够有效地扩展并转换数据调用接口。
在上述实施例的基础上,所述地址类型包括网际协议版本IPv4和网际协议版本IPv6。
具体的,装置中的所述地址类型包括网际协议版本IPv4和网际协议版本IPv6。可参照上述实施例,不再赘述。
本发明实施例提供的基于列式存储的获取日志信息的方法,通过将地址类型选为IPv4和IPv6,更好地区分出数据地址类型。
在上述实施例的基础上,所述根据所述目标查询语句读取所述数据,以获取日志信息,包括:
根据所述目标查询语句异步读取所述数据,以获取日志信息。
具体的,装置根据所述目标查询语句异步读取所述数据,以获取日志信息。可参照上述实施例,不再赘述。
本发明实施例提供的基于列式存储的获取日志信息的方法,通过异步读取所述数据,以获取日志信息,能够提高数据查询效率。
在上述实施例的基础上,所述根据所述目标查询语句异步读取所述数据,以获取日志信息,包括:
使用第一块内存缓存读取所述数据,同时第二块内存缓存对预先读取到的数据进行数据匹配计算。
具体的,装置使用第一块内存缓存读取所述数据,同时第二块内存缓存对预先读取到的数据进行数据匹配计算。可参照上述实施例,不再赘述。
若第一块内存缓存已满,且第二块内存缓存中的数据匹配计算尚未结束,则使第一块内存缓存处于等待状态。
具体的,装置若判断获知第一块内存缓存已满,且第二块内存缓存中的数据匹配计算尚未结束,则使第一块内存缓存处于等待状态。可参照上述实施例,不再赘述。
待第二块内存缓存完成数据匹配计算时,将已满的第一块内存缓存与完成数据匹配计算的第二块内存缓存进行交换,以使完成数据匹配计算的第二块内存缓存清空缓存,并继续读取所述数据,同时第一块内存缓存对已读取的数据进行数据匹配计算。
具体的,装置待第二块内存缓存完成数据匹配计算时,将已满的第一块内存缓存与完成数据匹配计算的第二块内存缓存进行交换,以使完成数据匹配计算的第二块内存缓存清空缓存,并继续读取所述数据,同时第一块内存缓存对已读取的数据进行数据匹配计算。可参照上述实施例,不再赘述。
若第二块内存缓存已满,且第一块内存缓存中的数据匹配计算尚未结束,则使第二块内存缓存处于等待状态。
具体的,装置若判断获知第二块内存缓存已满,且第一块内存缓存中的数据匹配计算尚未结束,则使第二块内存缓存处于等待状态。可参照上述实施例,不再赘述。
待第一块内存缓存完成数据匹配计算时,将已满的第二块内存缓存与完成数据匹配计算的第一块内存缓存进行交换,以使完成数据匹配计算的第一块内存缓存清空缓存,并继续使用第一块内存缓存读取所述数据,直到完成全部数据的异步读取,并获取所述日志信息。
具体的,装置待第一块内存缓存完成数据匹配计算时,将已满的第二块内存缓存与完成数据匹配计算的第一块内存缓存进行交换,以使完成数据匹配计算的第一块内存缓存清空缓存,并继续使用第一块内存缓存读取所述数据,直到完成全部数据的异步读取,并获取所述日志信息。可参照上述实施例,不再赘述。
本发明实施例提供的基于列式存储的获取日志信息的方法,通过两块内存缓存异步读取、计算数据,以获取日志信息,进一步能够提高数据查询效率。
图3为本发明实施例基于列式存储的获取日志信息的装置结构示意图,如图3所示,本发明实施例提供了一种基于列式存储的获取日志信息的装置,包括解析单元1、转换单元2和获取单元3,其中:
解析单元1用于解析数据查询语句,以获取解析结果,所述解析结果包括数据地址、数据调用接口,以及逻辑运算标识;其中,所述数据查询语句对应待查询的数据是基于列式存储的;转换单元2用于将所述数据地址、所述数据调用接口,以及所述逻辑运算标识转换为目标查询语句;获取单元3用于根据所述目标查询语句读取所述数据,以获取日志信息。
具体的,解析单元1用于解析数据查询语句,以获取解析结果,所述解析结果包括数据地址、数据调用接口,以及逻辑运算标识;其中,所述数据查询语句对应待查询的数据是基于列式存储的;转换单元2用于将所述数据地址、所述数据调用接口,以及所述逻辑运算标识转换为目标查询语句;获取单元3用于根据所述目标查询语句读取所述数据,以获取日志信息。
本发明实施例提供的基于列式存储的获取日志信息的装置,通过将数据查询语句转换为目标查询语句,并根据目标查询语句读取数据,以获取日志信息,能够简化数据查询语句,并节省内存资源,进而提高数据查询效率。
在上述实施例的基础上,所述目标查询语句包括C语言查询语句;相应的,所述转换单元2具体用于:
获取所述数据地址的地址类型;将所述数据地址转换为包括有所述地址类型的对应于所述C语言查询语句的N进制数字;N为正整数;将所述数据调用接口转换为对应于所述C语言查询语句的包括有指定字符的数据调用接口;将所述逻辑运算标识转换为对应于所述C语言查询语句的逻辑运算符号。
具体的,所述转换单元2具体用于:
获取所述数据地址的地址类型;将所述数据地址转换为包括有所述地址类型的对应于所述C语言查询语句的N进制数字;N为正整数;将所述数据调用接口转换为对应于所述C语言查询语句的包括有指定字符的数据调用接口;将所述逻辑运算标识转换为对应于所述C语言查询语句的逻辑运算符号。
本发明实施例提供的基于列式存储的获取日志信息的装置,能够有效地将数据查询语句转换为目标查询语句。
在上述实施例的基础上,所述数据地址包括源数据地址和目的数据地址;相应的,所述转换单元2还具体用于:
将所述数据调用接口扩展为对应于所述源数据地址的源数据调用接口,以及对应于所述目的数据地址的目的数据调用接口;分别将所述源数据调用接口,以及所述目的数据调用接口转换为对应于所述C语言查询语句的包括有指定字符的数据调用接口。
具体的,所述转换单元2还具体用于:
将所述数据调用接口扩展为对应于所述源数据地址的源数据调用接口,以及对应于所述目的数据地址的目的数据调用接口;分别将所述源数据调用接口,以及所述目的数据调用接口转换为对应于所述C语言查询语句的包括有指定字符的数据调用接口。
本发明实施例提供的基于列式存储的获取日志信息的装置,进一步能够有效地扩展并转换数据调用接口。
在上述实施例的基础上,所述地址类型包括网际协议版本IPv4和网际协议版本IPv6。
具体的,装置中的所述地址类型包括网际协议版本IPv4和网际协议版本IPv6。
本发明实施例提供的基于列式存储的获取日志信息的装置,通过将地址类型选为IPv4和IPv6,更好地区分出数据地址类型。
在上述实施例的基础上,所述获取单元3具体用于:
根据所述目标查询语句异步读取所述数据,以获取日志信息。
具体的,所述获取单元3具体用于:
根据所述目标查询语句异步读取所述数据,以获取日志信息。
本发明实施例提供的基于列式存储的获取日志信息的装置,通过异步读取所述数据,以获取日志信息,能够提高数据查询效率。
在上述实施例的基础上,所述获取单元3还具体用于:
使用第一块内存缓存读取所述数据,同时第二块内存缓存对预先读取到的数据进行数据匹配计算;若第一块内存缓存已满,且第二块内存缓存中的数据匹配计算尚未结束,则使第一块内存缓存处于等待状态;待第二块内存缓存完成数据匹配计算时,将已满的第一块内存缓存与完成数据匹配计算的第二块内存缓存进行交换,以使完成数据匹配计算的第二块内存缓存清空缓存,并继续读取所述数据,同时第一块内存缓存对已读取的数据进行数据匹配计算;若第二块内存缓存已满,且第一块内存缓存中的数据匹配计算尚未结束,则使第二块内存缓存处于等待状态;待第一块内存缓存完成数据匹配计算时,将已满的第二块内存缓存与完成数据匹配计算的第一块内存缓存进行交换,以使完成数据匹配计算的第一块内存缓存清空缓存,并继续使用第一块内存缓存读取所述数据,直到完成全部数据的异步读取,并获取所述日志信息。
具体的,所述获取单元3还具体用于:
使用第一块内存缓存读取所述数据,同时第二块内存缓存对预先读取到的数据进行数据匹配计算;若第一块内存缓存已满,且第二块内存缓存中的数据匹配计算尚未结束,则使第一块内存缓存处于等待状态;待第二块内存缓存完成数据匹配计算时,将已满的第一块内存缓存与完成数据匹配计算的第二块内存缓存进行交换,以使完成数据匹配计算的第二块内存缓存清空缓存,并继续读取所述数据,同时第一块内存缓存对已读取的数据进行数据匹配计算;若第二块内存缓存已满,且第一块内存缓存中的数据匹配计算尚未结束,则使第二块内存缓存处于等待状态;待第一块内存缓存完成数据匹配计算时,将已满的第二块内存缓存与完成数据匹配计算的第一块内存缓存进行交换,以使完成数据匹配计算的第一块内存缓存清空缓存,并继续使用第一块内存缓存读取所述数据,直到完成全部数据的异步读取,并获取所述日志信息。
本发明实施例提供的基于列式存储的获取日志信息的装置,通过两块内存缓存异步读取、计算数据,以获取日志信息,进一步能够提高数据查询效率。
本发明实施例提供的基于列式存储的获取日志信息的装置具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图4为本发明实施例提供的电子设备实体结构示意图,如图4所示,所述电子设备包括:处理器(processor)401、存储器(memory)402和总线403;
其中,所述处理器401、存储器402通过总线403完成相互间的通信;
所述处理器401用于调用所述存储器402中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:解析数据查询语句,以获取解析结果,所述解析结果包括数据地址、数据调用接口,以及逻辑运算标识;其中,所述数据查询语句对应待查询的数据是基于列式存储的;将所述数据地址、所述数据调用接口,以及所述逻辑运算标识转换为目标查询语句;根据所述目标查询语句读取所述数据,以获取日志信息。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:解析数据查询语句,以获取解析结果,所述解析结果包括数据地址、数据调用接口,以及逻辑运算标识;其中,所述数据查询语句对应待查询的数据是基于列式存储的;将所述数据地址、所述数据调用接口,以及所述逻辑运算标识转换为目标查询语句;根据所述目标查询语句读取所述数据,以获取日志信息。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:解析数据查询语句,以获取解析结果,所述解析结果包括数据地址、数据调用接口,以及逻辑运算标识;其中,所述数据查询语句对应待查询的数据是基于列式存储的;将所述数据地址、所述数据调用接口,以及所述逻辑运算标识转换为目标查询语句;根据所述目标查询语句读取所述数据,以获取日志信息。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的实施例各实施例技术方案的范围。
Claims (10)
1.一种基于列式存储的获取日志信息的方法,其特征在于,包括:
解析数据查询语句,以获取解析结果,所述解析结果包括数据地址、数据调用接口,以及逻辑运算标识;其中,所述数据查询语句对应待查询的数据是基于列式存储的;
将所述数据地址、所述数据调用接口,以及所述逻辑运算标识转换为目标查询语句;
根据所述目标查询语句读取所述数据,以获取日志信息;
其中,所述根据所述目标查询语句读取所述数据,以获取日志信息,包括:
根据所述目标查询语句异步读取所述数据,以获取日志信息;
所述根据所述目标查询语句异步读取所述数据,以获取日志信息,包括:使用第一块内存缓存读取所述数据,同时第二块内存缓存对预先读取到的数据进行数据匹配计算;
若第一块内存缓存已满,且第二块内存缓存中的数据匹配计算尚未结束,则使第一块内存缓存处于等待状态;
待第二块内存缓存完成数据匹配计算时,将已满的第一块内存缓存与完成数据匹配计算的第二块内存缓存进行交换,以使完成数据匹配计算的第二块内存缓存清空缓存,并继续读取所述数据,同时第一块内存缓存对已读取的数据进行数据匹配计算;
若第二块内存缓存已满,且第一块内存缓存中的数据匹配计算尚未结束,则使第二块内存缓存处于等待状态;
待第一块内存缓存完成数据匹配计算时,将已满的第二块内存缓存与完成数据匹配计算的第一块内存缓存进行交换,以使完成数据匹配计算的第一块内存缓存清空缓存,并继续使用第一块内存缓存读取所述数据,直到完成全部数据的异步读取,并获取所述日志信息。
2.根据权利要求1所述的方法,其特征在于,所述目标查询语句包括C语言查询语句;相应的,所述将所述数据地址、所述数据调用接口,以及所述逻辑运算标识转换为目标查询语句,包括:
获取所述数据地址的地址类型;
将所述数据地址转换为包括有所述地址类型的对应于所述C语言查询语句的N进制数字;N为正整数;
将所述数据调用接口转换为对应于所述C语言查询语句的包括有指定字符的数据调用接口;
将所述逻辑运算标识转换为对应于所述C语言查询语句的逻辑运算符号。
3.根据权利要求2所述的方法,其特征在于,所述数据地址包括源数据地址和目的数据地址;相应的,所述将所述数据调用接口转换为对应于所述C语言查询语句的包括有指定字符的数据调用接口,包括:
将所述数据调用接口扩展为对应于所述源数据地址的源数据调用接口,以及对应于所述目的数据地址的目的数据调用接口;
分别将所述源数据调用接口,以及所述目的数据调用接口转换为对应于所述C语言查询语句的包括有指定字符的数据调用接口。
4.根据权利要求2所述的方法,其特征在于,所述地址类型包括网际协议版本IPv4和网际协议版本IPv6。
5.一种基于列式存储的获取日志信息的装置,其特征在于,包括:
解析单元,用于解析数据查询语句,以获取解析结果,所述解析结果包括数据地址、数据调用接口,以及逻辑运算标识;其中,所述数据查询语句对应待查询的数据是基于列式存储的;
转换单元,用于将所述数据地址、所述数据调用接口,以及所述逻辑运算标识转换为目标查询语句;
获取单元,用于根据所述目标查询语句读取所述数据,以获取日志信息;
其中,所述获取单元具体用于:
根据所述目标查询语句异步读取所述数据,以获取日志信息;
所述获取单元还具体用于:
使用第一块内存缓存读取所述数据,同时第二块内存缓存对预先读取到的数据进行数据匹配计算;
若第一块内存缓存已满,且第二块内存缓存中的数据匹配计算尚未结束,则使第一块内存缓存处于等待状态;
待第二块内存缓存完成数据匹配计算时,将已满的第一块内存缓存与完成数据匹配计算的第二块内存缓存进行交换,以使完成数据匹配计算的第二块内存缓存清空缓存,并继续读取所述数据,同时第一块内存缓存对已读取的数据进行数据匹配计算;
若第二块内存缓存已满,且第一块内存缓存中的数据匹配计算尚未结束,则使第二块内存缓存处于等待状态;
待第一块内存缓存完成数据匹配计算时,将已满的第二块内存缓存与完成数据匹配计算的第一块内存缓存进行交换,以使完成数据匹配计算的第一块内存缓存清空缓存,并继续使用第一块内存缓存读取所述数据,直到完成全部数据的异步读取,并获取所述日志信息。
6.根据权利要求5所述的装置,其特征在于,所述目标查询语句包括C语言查询语句;相应的,所述转换单元具体用于:
获取所述数据地址的地址类型;
将所述数据地址转换为包括有所述地址类型的对应于所述C语言查询语句的N进制数字;N为正整数;
将所述数据调用接口转换为对应于所述C语言查询语句的包括有指定字符的数据调用接口;
将所述逻辑运算标识转换为对应于所述C语言查询语句的逻辑运算符号。
7.根据权利要求6所述的装置,其特征在于,所述数据地址包括源数据地址和目的数据地址;相应的,所述转换单元还具体用于:
将所述数据调用接口扩展为对应于所述源数据地址的源数据调用接口,以及对应于所述目的数据地址的目的数据调用接口;
分别将所述源数据调用接口,以及所述目的数据调用接口转换为对应于所述C语言查询语句的包括有指定字符的数据调用接口。
8.根据权利要求6所述的装置,其特征在于,所述地址类型包括网际协议版本IPv4和网际协议版本IPv6。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,其中:
所述处理器和所述存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-4任一项所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1-4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810050152.0A CN108345648B (zh) | 2018-01-18 | 2018-01-18 | 一种基于列式存储的获取日志信息的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810050152.0A CN108345648B (zh) | 2018-01-18 | 2018-01-18 | 一种基于列式存储的获取日志信息的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108345648A CN108345648A (zh) | 2018-07-31 |
CN108345648B true CN108345648B (zh) | 2021-01-26 |
Family
ID=62961034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810050152.0A Active CN108345648B (zh) | 2018-01-18 | 2018-01-18 | 一种基于列式存储的获取日志信息的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108345648B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189726B (zh) * | 2018-08-08 | 2020-12-22 | 奇安信科技集团股份有限公司 | 一种读写日志的处理方法及装置 |
CN109918392B (zh) * | 2018-12-15 | 2023-08-11 | 中国平安人寿保险股份有限公司 | 结构化查询语言定位方法、装置、服务器及存储介质 |
CN114064740B (zh) * | 2022-01-17 | 2022-05-13 | 通联支付网络服务股份有限公司 | 用于查询数据的方法、设备和介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102136005A (zh) * | 2011-03-29 | 2011-07-27 | 北京航空航天大学 | 数据查询方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7146352B2 (en) * | 2003-06-23 | 2006-12-05 | Microsoft Corporation | Query optimizer system and method |
KR20100009947A (ko) * | 2008-07-21 | 2010-01-29 | 삼성전자주식회사 | 가상 현실 서비스 간의 상호 연동을 위한 장치 및 방법 |
CN101984439A (zh) * | 2010-12-09 | 2011-03-09 | 上海市共进通信技术有限公司 | 基于子查询实现数据源xml查询系统优化的方法 |
CN102521406B (zh) * | 2011-12-26 | 2014-06-25 | 中国科学院计算技术研究所 | 海量结构化数据复杂查询任务的分布式查询方法和系统 |
CN103412924B (zh) * | 2013-08-12 | 2017-10-31 | 东软集团股份有限公司 | 日志多语言查询方法和系统 |
CN103678556B (zh) * | 2013-12-06 | 2017-10-10 | 华为技术有限公司 | 列式数据库处理的方法和处理设备 |
-
2018
- 2018-01-18 CN CN201810050152.0A patent/CN108345648B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102136005A (zh) * | 2011-03-29 | 2011-07-27 | 北京航空航天大学 | 数据查询方法和装置 |
Non-Patent Citations (1)
Title |
---|
"基于HBase+ElasticSearch的海量交通数据实时存取方案设计";董长青 等;《大数据》;20170228;第(2017)卷(第1期);第80-89页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108345648A (zh) | 2018-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6626211B2 (ja) | ショートリンクを処理する方法及び装置並びにショートリンクサーバ | |
US9589004B2 (en) | Data storage method and apparatus | |
CN108345648B (zh) | 一种基于列式存储的获取日志信息的方法及装置 | |
CN109446529A (zh) | 一种基于确定有穷自动机的敏感词检测方法和系统 | |
CN111737564A (zh) | 一种信息查询方法、装置、设备及介质 | |
CN111625552A (zh) | 数据收集方法、装置、设备和可读存储介质 | |
CN110825745B (zh) | 页面的生成方法及装置 | |
CN111881094A (zh) | 日志中关键信息提取方法、装置、终端及存储介质 | |
CN110928900B (zh) | 多表数据的查询方法、装置、终端以及计算机存储介质 | |
CN114676678A (zh) | 结构化查询语言数据的解析方法、装置和电子设备 | |
CN112883088B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN106557974B (zh) | 一种imix协议数据的处理方法及系统 | |
CN107038022B (zh) | 一种反序列化方法及装置 | |
CN111061927B (zh) | 数据处理方法、装置及电子设备 | |
CN114584482B (zh) | 基于内存存储检测数据的方法、装置以及网卡 | |
CN114237806B (zh) | 一种页面信息的显示方法、装置、电子设备及存储介质 | |
WO2021237704A1 (zh) | 数据同步方法及相关装置 | |
CN110515979B (zh) | 数据查询方法、装置、设备和存储介质 | |
CN114186958A (zh) | 将列表数据导出为电子表格的方法、计算设备及存储介质 | |
CN109657184B (zh) | 富文本处理方法、装置、服务器及计算机可读介质 | |
CN112988300A (zh) | 页面中文本的显示方法及装置、存储介质、电子设备 | |
CN113836157A (zh) | 获取数据库增量数据的方法和装置 | |
CN110209885B (zh) | 一种图查询方法及系统 | |
CN112667682A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN112307050B (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 | ||
CB02 | Change of applicant information |
Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088 Applicant after: Qianxin Technology Group Co.,Ltd. Address before: 100015 15, 17 floor 1701-26, 3 building, 10 Jiuxianqiao Road, Chaoyang District, Beijing. Applicant before: Beijing Qi'anxin Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |