CN115061990A - 日志存储方法、日志检索方法、装置、设备及存储介质 - Google Patents
日志存储方法、日志检索方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115061990A CN115061990A CN202210660343.5A CN202210660343A CN115061990A CN 115061990 A CN115061990 A CN 115061990A CN 202210660343 A CN202210660343 A CN 202210660343A CN 115061990 A CN115061990 A CN 115061990A
- Authority
- CN
- China
- Prior art keywords
- log
- information
- file
- corresponding relation
- subfile
- 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
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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
Abstract
本申请公开了一种日志存储方法、日志检索方法、装置、设备及存储介质,方法包括获取词汇信息与日志标识之间的第一对应关系,词汇信息为对日志记录进行分词得到,日志标识为日志记录的标识信息;根据第一对应关系,将日志记录持久化到目标存储空间,目标存储空间包括目标索引文件和日志文件,目标索引文件存储有第一对应关系,日志文件存储有日志记录。本申请通过在建立第一对应关系时,对日志记录进行分词,以能够将日志内容和词汇信息持久化至目标存储空间,从而作为后续全文检索的依据,使得日志工具支持全文检索。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种日志存储方法、日志检索方法、装置、设备及存储介质。
背景技术
在云原生技术框架下,通过常用容器方式部署服务。针对容器产生的日志,目前主要采用Elasticsearch工具或Loki工具进行存储和查询。但是,Elasticsearch工具基于文档的索引方式并不适合时序日志场景,而且其基于Java语言编写,需要将大量索引常驻于内存,导致其资源占用率非常高。而Loki工具基于标签的索引方式无法支持全文检索。
发明内容
本申请提供了一种日志存储方法、日志检索方法、装置、设备及存储介质,以解决当前针对日志工具存在无法支持全文检索的技术问题。
为了解决上述技术问题,第一方面,本申请提供了一种日志存储方法,包括:
获取词汇信息与日志标识之间的第一对应关系,词汇信息为对日志记录进行分词得到,日志标识为日志记录的标识信息;
根据第一对应关系,将日志记录持久化到目标存储空间,目标存储空间包括目标索引文件和日志文件,目标索引文件存储有第一对应关系,日志文件存储有日志记录。
本申请通过获取日志标识与日志记录分词得到的词汇信息之间的第一对应关系时,以能够将日志内容和词汇信息持久化至目标存储空间,从而作为后续全文检索的依据,使得日志工具支持全文检索。
在第一方面的一些实现方式中,获取词汇信息与日志标识之间的第一对应关系,包括:
建立日志标识与序列标识之间的第二对应关系,序列标识为日志流的标识信息,日志流包括多个日志记录;
对日志记录进行分词,得到多个词汇信息;
根据词汇信息和第二对应关系,生成词典倒排表,词典倒排表存储有第一对应关系。
在本实现中,通过对日志记录进行分词,并结合第二对应关系,建立词典倒排表,以得到日志流、日志记录和词汇信息之间的对应关系,从而作为全文检索时的索引关系链,实现全文检索。
在第一方面的一些实现方式中,建立日志标识与序列标识之间的第二对应关系,包括:
对日志流的第一标签信息进行哈希运算,得到日志流的序列标识;
将序列标识和日志标识添加至预设序列表,生成内存序列表,内存序列表存储有第二对应关系。
在本实现中,通过哈希运算,保证日志流的序列标识的唯一性,避免出现重复的序列标识而导致后续检索出错,提高检索准确度。
在第一方面的一些实现方式中,方法,还包括:
获取第二标签信息与日志标识之间的第三对应关系,第二标签信息为日志记录的标签信息,目标索引文件还存储有第三对应关系。
在本实现中,通过获取第三对应关系,以作为后续标签检索的依据,使得日志工具能够同时支持全文检索和标签检索。
在第一方面的一些实现方式中,根据第一对应关系,将日志记录持久化到目标存储空间,包括:
根据第一对应关系,将日志记录中的内容信息存储至日志文件,并生成日志文件的内容表,内容表存储有日志标识与日志文件的第一文件偏移量之间的第四对应关系;
根据词汇信息和日志标识,生成目标索引文件。
在本实现中,以日志标识和日志文件的第一文件偏移量建立第一对应关系,从而在后续日志检索时能够基于文件偏移量定位到日志标识对应的日志文件,提高日志检索时的定位准确度。
在第一方面的一些实现方式中,目标索引文件包括时序子文件和索引子文件,根据词汇信息和日志标识,生成目标索引文件,包括:
根据日志记录中的时间戳和日志标识,生成时序子文件;
建立词汇信息与时序子文件的第二文件偏移量之间的第五对应关系,得到索引子文件。
在本实现中,通过建立具有时序关系的时序子文件,实现以时序关系进行日志存储,从而能够基于时间进行日志检索。
在第一方面的一些实现方式中,根据日志记录中的时间戳和日志标识,生成时序子文件,包括:
建立日志记录中的时间戳与日志标识之间的第六对应关系,得到区块子文件;
建立区块子文件中的时间窗口与区块子文件的第三文件偏移量之间的第七对应关系,得到时序子文件。
在本实现中,由于目标存储空间通常有多个区块chunk,以chunk为存储单位进行日志存储,所以建立时序与区块之间的关系,从而能够精准定位到日志记录所在的区块子文件位置。
在第一方面的一些实现方式中,索引子文件还存储有日志记录的第二标签信息与时序子文件的第二文件偏移量之间的第六对应关系。
在本实现中,建立时序与标签的关系,以作为基于时序的标签检索的检索依据。
在第一方面的一些实现方式中,方法还包括:
获取日志流,并将日志流保存至预写日志系统。
在本实现中,通过预写日志系统保存日志流,避免断电或程序崩溃而导致数据丢失,保证数据可靠性。
第二方面,本申请还提供了一种日志检索方法,包括:
获取待检索信息,所述待检索信息包括第二标签信息或全文信息,全文信息包括词汇信息;
基于待检索信息,对目标存储空间进行日志检索,得到待检索信息对应的目标日志记录,目标存储空间包括目标索引文件和日志文件,目标索引文件存储有待检索信息与日志标识之间对应关系,日志文件存储有日志标识对应的内容信息。
本申请通过日志记录的第二标签信息或全文信息,以实现同时支持标签检索和全文检索。
在第二方面的一些实现方式中,基于待检索信息,对目标存储空间进行日志检索,得到待检索信息对应的目标日志记录,包括:
根据所述目标索引文件,查询与所述待检索信息对应的日志标识;
在所述日志文件的内容表中,查询与所述日志标识对应的日志文件的第一文件偏移量;
根据所述第一文件偏移量,定位到所述日志文件中与所述日志标识对应的目标日志记录。
在第二方面的一些实现方式中,所述目标索引文件包括时序子文件和索引子文件,根据所述目标索引文件,查询与所述待检索信息对应的日志标识,包括:
根据所述索引子文件,查询与所述待检索信息对应的时序子文件的第二文件偏移量;
根据所述时序子文件,查询与所述第二文件偏移量对应的日志标识。
在第二方面的一些实现方式中,所述根据所述索引子文件,查询与所述待检索信息对应的时序子文件的第二文件偏移量,包括:
在所述索引子文件中,查询与所述待检索信息对应的记录子文件的第四文件偏移量;
在所述记录子文件中,查询与所述第四文件偏移量对应的时序子文件的第二文件偏移量。
在第二方面的一些实现方式中,所述根据所述时序子文件,查询与所述第二文件偏移量对应的日志标识,包括:
在所述时序子文件中,查询与所述第二文件偏移量对应的区块子文件的时间窗口;
在所述区块子文件中,查询与时间窗口对应的时间戳和日志标识。
第三方面,本申请还提供了一种日志存储装置,包括:
第一获取模块,用于建立词汇信息与日志标识之间的第一对应关系,词汇信息为对日志记录进行分词得到,日志标识为日志记录的标识信息;
持久化模块,用于根据第一对应关系,将日志记录持久化到目标存储空间,目标存储空间包括目标索引文件和日志文件,目标索引文件存储有第一对应关系,日志文件存储有日志记录。
第四方面,本申请还提供了一种日志检索装置,包括:
第二获取模块,用于获取待检索信息,所述待检索信息包括第二标签信息或全文信息,全文信息包括词汇信息;
检索模块,用于基于待检索信息,对目标存储空间进行日志检索,得到待检索信息对应的目标日志记录,目标存储空间包括目标索引文件和日志文件,目标索引文件存储有待检索信息与日志标识之间对应关系,日志文件存储有日志标识对应的内容信息。
第五方面,本申请还提供了一种计算机设备,包括处理器和存储器,存储器用于存储计算机程序,计算机程序被处理器执行时实现如第一方面的日志存储方法,或第二方面的日志检索方法。
第六方面,本申请还提供了一种计算机可读存储介质,其存储有计算机程序,计算机程序被处理器执行时实现如第一方面的日志存储方法,或第二方面的日志检索方法。
第七方面,本申请还提供了一种计算机程序产品,当计算机程序产品在计算机设备上运行时,使得计算机设备执行时实现如第一方面的日志存储方法,或第二方面的日志检索方法。
需要说明的是,上述第三方面至第七方面的有益效果请参见上述第一方面或第二方面的相关描述,在此不再赘述。
附图说明
图1为本申请实施例示出的日志存储方法的流程示意图;
图2为本申请实施例示出的步骤S101的具体流程示意图;
图3为本申请实施例示出的步骤S102的具体流程示意图;
图4为本申请实施例示出的读操作和写操作的示意图;
图5为本申请实施例示出的日志文件的示意图;
图6为本申请实施例示出的区块子文件的示意图;
图7为本申请实施例示出的时序子文件的示意图;
图8为本申请实施例示出的记录子文件的示意图;
图9为本申请实施例示出的索引子文件的示意图;
图10为本申请实施例示出的日志检索方法的流程示意图;
图11为本申请实施例示出的日志存储装置的结构示意图;
图12为本申请实施例示出的日志检索装置的结构示意图;
图13为本申请实施例示出的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如相关技术记载,Elasticsearch工具基于文档的索引方式并不适合时序日志场景,而且其基于Java语言编写,需要将大量索引常驻于内存,导致其资源占用率非常高。而Loki工具基于标签的索引方式无法支持全文检索。
为此,本申请通过在建立第一对应关系时,对日志记录进行分词,以能够将日志内容和词汇信息持久化至目标存储空间,从而作为后续全文检索的依据,使得日志工具支持全文检索。
请参照图1,图1为本申请实施例提供的一种日志存储方法的流程示意图。本申请实施例的日志存储方法可应用于计算机设备,该计算机设备包括但不限于智能手机、笔记本电脑、平板电脑、桌上型计算机、物理服务器和云服务器等设备。如图1所示,本实施例的日志存储方法包括步骤S101至步骤S102,详述如下:
步骤S101,获取词汇信息与日志标识之间的第一对应关系,所述词汇信息为对日志记录进行分词得到,所述日志标识为所述日志记录的标识信息。
在本步骤中,日志记录为日志流中的日志信息,其中日志流(LogStream)为日志读写的基本单位,其能够便于对日志进行分类存储,同时以日志流的读写方式可以最大限度地减少读取与写入次数,提高日志处理效率。日志流中的每条日志记录包括但不限于一个时间戳(timestamp)和内容信息。
示例性地,日志流的第一标签信息为{app=nginx,instance="1.1.1.1"},该日志流中的一条日志记录为{"ts":"2021-12-30T17:50:33.2633687+08:00","line":"XXis an enterprise-level PaaS platform for large and super large enterprises",其中ts为时间戳,line为内容信息。
可选地,对于云原生技术日志存储引擎,日志流可以为kubernetes日志的日志流,kubernetes日志包括但不限于kubernetespod和kubernetesevent。
作为一种可选实施方式,如图4所示,本实施例以第一内存表的方式处理日志流(包括建立第一对应关系),其中第一内存表为计算机设备中处理日志流的内存结构(memtable),其允许写入和读取。可选地,当第一内存表写入的数据占用达到预设上限时,为避免数据处理阻塞,则自动转换为第二内存表(immumemtable),即若所述第一内存表达到内存空间上限值,则将所述日志流存储至第二内存表。
需要说明的是,第一对应关系的建立过程可以在本计算机设备上执行;也可以在其他计算机设备上执行后,将得到的第一对应关系对应的计算机文件移植到本计算机设备。可以理解的是,该计算机文件可以表现为第一内存表,也可以是对第一内存表进行数据转换后的其他表形式,例如,将第一内存表转换为数据库表,将数据库表移植到本计算机设备。
倒排表为以属性值确定记录位置的倒排索引(invertedindex)表,其每一项均包括一个属性值和该属性值的各记录地址。词典倒排表为以词汇信息作为属性值确定日志标识的倒排索引表。日志标识为表示日志记录唯一性的标识信息,例如日志ID(Identitydocument);词汇信息基于对日志内容进行分词得到。可选地,分词方式可以为通过任一分词工具(例如基于卷积神经网络构建的分词模型)对日志内容进行分词。
可选地,本实施例的日志存储方法基于GoLang语言编写,相对于Java语言,GoLang语言更加轻量,能够有效降低资源占用率。
在一种可能实施的方式中,获取日志流,将日志流直接写入到memtable。在另一种可能实施的方式种,如图4所示,由于memtable为暂时性存储,在计算机设备断电或程序崩溃时会使数据丢失,所以获取日志流,并基于计算机写操作,将所述日志流保存至预写日志系统(Wal),当程序重写启动时,再读取Wal的日志流重新写入至memtable,从而保证数据可靠性。
步骤S102,根据所述第一对应关系,将所述日志记录持久化到目标存储空间,所述目标存储空间包括目标索引文件和日志文件,所述目标索引文件存储有所述第一对应关系,所述日志文件存储有所述日志记录。
在本步骤中,目标存储空间为具有数据持久化能力的可读存储介质,例如磁盘(包括计算机硬盘和计算机软盘)等。持久化是将瞬时数据转换为持久数据的处理机制,以能够永久保持数据。
目标索引文件存储有词汇信息与日志标识之间的第一对应关系,以能够在后续日志检索时基于词汇信息组成的全文信息,根据该第一对应关系进行全文检索,从而确定待检索的词汇信息所对应的日志标识,再根据该日志标识到日志文件读取对应的日志内容。日志文件存储日志记录中的日志内容时,还记录有日志记录的日志标识与日志内容之间的对应关系,以便于后续准确读取到日志内容。
需要说明的是,本实施例通过在建立第一对应关系时,对日志记录进行分词,从而将日志记录持久化至目标存储空间时,目标存储空间也能够记录词汇信息,以作为后续全文检索的依据,使得日志工具支持全文检索。
在一些实施例中,在图1所示实施例的基础上,图2示出了步骤S101的具体流程示意图。如图2所示,上述步骤S101包括:
步骤S201,建立所述日志标识与序列标识之间的第二对应关系,所述序列标识为日志流的标识信息,所述日志流包括多个日志记录。
步骤S202,对所述日志记录进行分词,得到多个词汇信息。
步骤S203,根据所述词汇信息和所述第二对应关系,生成词典倒排表,所述词典倒排表存储有所述第一对应关系。
在本实施例中,上述步骤S101的可选实施方式中的第一内存表包括内存序列表(memseries)和词典倒排表(termposting),其中内存序列表作为第一内存表中的基础表,其记录日志标识与序列标识之间的第二对应关系,即记录每个日志记录与日志流之间的对应关系。
可选地,内存序列表的生成过程,包括:对所述日志流的第一标签信息进行哈希运算,得到所述日志流的序列标识;将所述序列标识和所述日志标识添加至预设序列表,生成内存序列表,所述内存序列表存储有所述第二对应关系。
在本可选实施例中,在一种可能实施的方式中,将日志流的第一标签信息进行哈希运算,以生成标识该日志流唯一性的序列标识(seriesid),查询预设序列表是否有该日志流的seriesid,若预设序列表不存在该日志流的seriesid,则将该seriesid添加至预设序列表,同时申请一块用于存储日志标识(logid)的内存块,并将logid添加至预设序列表,得到内存序列表;若预设序列表存在该日志流的seriesid,则申请一块用于存储日志标识(logid)的内存块,并将logid添加至预设序列表,得到内存序列表。
示例性地,内存序列表如下表1所示:
在另一种可能实施的方式中,还考虑日志的时间信息,即申请一块用于存储日志标识(logid)的内存块的同时,将每个日志记录编号为(timestamp,logid),以及添加至预设序列表,得到内存序列表。
示例性地,内存序列表如下表2所示:
示例性地,基于上表2,词典倒排表如下表3所示:
可选地,方法还包括:获取第二标签信息与所述序列标识之间的第三对应关系,所述第二标签信息为所述日志记录的标签信息,所述目标索引文件还存储有所述第三对应关系。
在本实施例中,第一内存表还包括标签倒排表(seriesposting),标签倒排表为以第二标签信息作为属性值确定日志标识的倒排索引表。第二标签信息为日志记录的关键词,其可以是时间关键词和日志名称关键词等。可选地,第二标签信息以键值对的方式进行表示,即labelname-value。示例性地,基于上
表2,标签倒排表如下表4所示:
在一些实施例中,在图1所示实施例的基础上,图3示出了步骤S102的具体流程示意图。如图3所示,步骤S102,包括:
步骤S301,根据所述第一对应关系,将所述日志记录中的内容信息存储至所述日志文件,并生成所述日志文件的内容表,内容表存储有所述日志标识与所述日志文件的第一文件偏移量之间的第四对应关系。
步骤S302,根据所述词汇信息和所述日志标识,生成所述目标索引文件。
在本实施例中,文件偏移量为从文件指定位置向前或向后移动的字节数,其用于从文件查询到目标数据。由于日志文件存储日志内容,而每个第二标签信息对应的日志记录中的日志内容有多个日志数据,为了准确定位到日志内容的相应日志数据,所以将日志标识与第一文件偏移量进行关联。
示例性地,日志文件(logs)如图5所示,log表示上述步骤S101示例中的日志内容line,TOC为内容表,ref为第一文件偏移量,如log_1_ref为第1个logs文件的第一文件偏移量。
可选地,目标索引文件包括但不限于索引(index)子文件、记录(posting)子文件、时序(series)子文件和区块(chunk)子文件。index子文件用于存储词汇信息的索引信息,记录子文件用于存储某个标签label或词汇term所关联的时序series的索引信息,series子文件用于每个时序series所包含的label和区块chunk的索引信息,chunk子文件用于存储每个日志的时间戳和日志标识。
在一些实施例中,在图3所示实施例的基础上,步骤S302,包括:根据所述日志记录中的时间戳和所述日志标识,生成所述时序子文件;建立所述词汇信息与所述时序子文件的第二文件偏移量之间的第五对应关系,得到所述索引子文件。
在本实施例中,对于时序子文件,在一种可能实施的方式中,建立时间戳和日志标识之间的对应关系,得到时序子文件,由于日志文件也存储有日志标识,所以时序子文件与日志文件存在关联关系,以便于后续进行日志检索的关系链。
在另一种可能实施的方式,建立所述日志记录中的时间戳与所述日志标识之间的第六对应关系,得到区块子文件;建立所述区块子文件中的时间窗口与所述区块子文件的第三文件偏移量之间的第七对应关系,得到所述时序子文件。区块子文件为chunk子文件,将磁盘等可读存储介质视为一个Block,一个Block即为一个独立的小型数据库,其保存了一段时间所有用于日志检索的信息,如标签和词汇信息等,chunk子文件为该Block中的一个存储结构,所有chunk子文件在磁盘上的大小不大于512M,所以需要多个chunk子文件存储时间戳和日志标识的索引信息。
示例性地,图6示出了chunk子文件的示意图,对于每个chunk子文件,其包括时间戳ts和日志标识logid之间的第六对应关系。图7示出了时序子文件的示意图,时序子文件存储每个时序series所对应的第二标签信息和chunk的索引信息,其中label_name与label_value作为第二标签信息的键值对,Mint和Maxt为chunk的时间窗口,分别标识日志的最小时间和最大时间,chunk_ref为chunk子文件的文件偏移量。
对于索引子文件,在一种可能实施的方式中,建立词汇信息与时序子文件的第二文件偏移量之间的第五对应关系,得到所述索引子文件。由于时序子文件与日志文件存在关联关系,将词汇信息与时序子文件进行关联,则能够得到词汇信息与日志文件之间的关联关系。
在另一种可能实施的方式中,所述索引子文件还存储有所述日志记录的第二标签信息与所述时序子文件的第二文件偏移量之间的第六对应关系。可选地,建立存储第二标签信息所关联的所有时序子文件的记录子文件,再建立第二标签信息或词汇信息与记录子文件的文件偏移量之间的对应关系,得到索引子文件。
示例性地,如图8示出的记录子文件的示意图,series_ref为时序子文件的文件偏移量,len<4b>表示标签label。如图9示出的索引子文件的示意图,term为词汇信息,多个词汇信息组成全文信息message。
请参照图10,图10为本申请实施例提供的一种日志检索方法的流程示意图。本申请实施例的日志检索方法可应用于计算机设备,该计算机设备包括但不限于智能手机、笔记本电脑、平板电脑、桌上型计算机、物理服务器和云服务器等设备。如图10所示,本实施例的日志检索方法包括步骤S1001至步骤S102,详述如下:
步骤S1001,获取待检索信息,所述待检索信息包括第二标签信息或全文信息,所述全文信息包括词汇信息。
步骤S1002,基于所述待检索信息,对目标存储空间进行日志检索,得到所述待检索信息对应的目标日志记录,所述目标存储空间包括目标索引文件和日志文件,所述目标索引文件存储有所述待检索信息与所述日志标识之间对应关系,所述日志文件存储有所述日志标识对应的内容信息。
在一些实施例中,在图10所示实施例的基础上,步骤S1002,包括:
根据所述目标索引文件,查询与所述待检索信息对应的日志标识;
在所述日志文件的内容表中,查询与所述日志标识对应的日志文件的第一文件偏移量;
根据所述第一文件偏移量,定位到所述日志文件中与所述日志标识对应的目标日志记录。
在一些实施例中,所述目标索引文件包括时序子文件和索引子文件,根据所述目标索引文件,查询与所述待检索信息对应的日志标识,包括:
根据所述索引子文件,查询与所述待检索信息对应的时序子文件的第二文件偏移量;
根据所述时序子文件,查询与所述第二文件偏移量对应的日志标识。
在一些实施例中,所述根据所述索引子文件,查询与所述待检索信息对应的时序子文件的第二文件偏移量,包括:
在所述索引子文件中,查询与所述待检索信息对应的记录子文件的第四文件偏移量;
在所述记录子文件中,查询与所述第四文件偏移量对应的时序子文件的第二文件偏移量。
在一些实施例中,所述根据所述时序子文件,查询与所述第二文件偏移量对应的日志标识,包括:
在所述时序子文件中,查询与所述第二文件偏移量对应的区块子文件的时间窗口;
在所述区块子文件中,查询与时间窗口对应的时间戳和日志标识。
可以理解的是,本实施例是基于上述图1至图9相应实施例的日志存储方法得到目标存储空间进行日志检索的方法,其具备日志存储方法的相应特征,具体可参见上述图1至图9的相应描述。需要说明的是,为提高检索效率,如图4所示,基于计算机读操作,将目标存储空间中的目标索引文件和日志文件缓存至计算机设备内存中的缓存器,并在该内存空间实现上述检索方法。
作为示例而非限定,如图5至图9,目标索引文件包括但不限于索引(index)子文件、记录(posting)子文件、时序(series)子文件和区块(chunk)子文件,日志文件为logs文件。基于日志第二标签信息(labelname和labelvalue)或者全文信息(message和term),在图9的index子文件中,查询到该第二标签信息或全文信息对应的posting_ref;再通过该posting_ref在图8的posting子文件中,查询到一个或多个series_ref;再通过series_ref在图7的series子文件中,查询到一个或多个chunk_ref;再通过chunk_ref在图6的chunk子文件中,查询到时间戳和日志标识(ts,logid);最后通过logid在图5的logs文件中定位到日志内容。
为了执行上述方法实施例对应的日志存储方法,以实现相应的功能和技术效果。参见图11,图11示出了本申请实施例提供的一种日志存储装置的结构框图。为了便于说明,仅示出了与本实施例相关的部分,本申请实施例提供的日志存储装置,包括:
第一获取模块1101,用于获取词汇信息与日志标识之间的第一对应关系,所述词汇信息为对日志记录进行分词得到,所述日志标识为所述日志记录的标识信息;
持久化模块1102,用于根据所述第一对应关系,将所述日志记录持久化到目标存储空间,所述目标存储空间包括目标索引文件和日志文件,所述目标索引文件存储有所述第一对应关系,所述日志文件存储有所述日志记录。
在一些实施例中,所述第一内存表还包括内存序列表,所述获取模块1101,包括:
建立子模块,用于建立所述日志标识与序列标识之间的第二对应关系,所述序列标识为日志流的标识信息,所述日志流包括多个日志记录;
分词子模块,用于对所述日志记录进行分词,得到多个词汇信息;
生成子模块,用于根据所述词汇信息和所述第二对应关系,生成词典倒排表,所述词典倒排表存储有所述第一对应关系。
在一些实施例中,所述建立子模块,包括:
运算单元,用于对所述日志流的第一标签信息进行哈希运算,得到所述日志流的序列标识;
添加单元,用于将所述序列标识和所述日志标识添加至预设序列表,生成内存序列表,所述内存序列表存储有所述第二对应关系。
在一些实施例中,所述建立模块日志存储装置,还包括:
建立模块,用于建立第二标签信息与序列标识之间的第三对应关系,所述第二标签信息为所述日志记录的标签信息,所述目标索引文件还存储有所述第三对应关系。
在一些实施例中,所述持久化模块1102,包括:
存储子模块,用于根据所述第一对应关系,将所述日志记录中的内容信息存储至所述日志文件,并生成所述日志文件的内容表,内容表存储有所述日志标识与所述日志文件的第一文件偏移量之间的第四对应关系;
第三建立子模块,用于根据所述词汇信息和所述日志标识,生成所述目标索引文件。
在一些实施例中,所述目标索引文件包括时序子文件和索引子文件,所述第三建立子模块,包括:
生成单元,用于根据所述日志记录中的时间戳和所述日志标识,生成所述时序子文件;
建立单元,用于建立所述词汇信息与所述时序子文件的第二文件偏移量之间的第五对应关系,得到所述索引子文件。
在一些实施例中,所述生成单元,包括:
第一建立子单元,用于建立所述日志记录中的时间戳与所述日志标识之间的第六对应关系,得到区块子文件;
第二建立子单元,用于建立所述区块子文件中的时间窗口与所述区块子文件的第三文件偏移量之间的第七对应关系,得到所述时序子文件。
在一些实施例中,所述索引子文件还存储有所述日志记录的第二标签信息与所述时序子文件的第二文件偏移量之间的第六对应关系。
上述的日志存储装置可实施上述方法实施例的日志存储方法。上述方法实施例中的可选项也适用于本实施例,这里不再详述。本申请实施例的其余内容可参照上述方法实施例的内容,在本实施例中,不再进行赘述。
为了执行上述方法实施例对应的日志检索方法,以实现相应的功能和技术效果。参见图12,图12示出了本申请实施例提供的一种日志检索装置的结构框图。为了便于说明,仅示出了与本实施例相关的部分,本申请实施例提供的日志检索装置,包括:
第二获取模块1201,用于获取检索信息,所述待检索信息包括第二标签信息或全文信息,所述全文信息包括词汇信息;
检索模块1202,用于基于所述待检索信息,对目标存储空间进行日志检索,得到所述待检索信息对应的目标日志记录,所述目标存储空间包括目标索引文件和日志文件,所述目标索引文件存储有所述检索信息与所述日志标识之间对应关系,所述日志文件存储有所述日志标识对应的内容信息。
在一些实施例中,在图12所示实施例的基础上,检索模块1202,包括:
第一查询子模块,用于在所述目标索引文件中,查询与所述待检索信息对应的日志标识;
第二查询子模块,用于在所述日志文件的内容表中,查询与所述日志标识对应的日志文件的第一文件偏移量;
定位子模块,用于根据所述第一文件偏移量,定位到所述日志文件中与所述日志标识对应的目标日志记录。
在一些实施例中,所述目标索引文件包括时序子文件和索引子文件,第一查询子模块,包括:
第一查询单元,用于在所述索引子文件中,查询与所述待检索信息对应的时序子文件的第二文件偏移量;
第二查询单元,用于在所述时序子文件中,查询与所述第二文件偏移量对应的日志标识。
在一些实施例中,所述第二查询单元,包括:
第一查询子单元,用于在所述时序子文件中,查询与所述第二文件偏移量对应的区块子文件的时间窗口;
第二查询z子单元,用于在所述区块子文件中,查询与时间窗口对应的时间戳和日志标识。
上述的日志检索装置可实施上述方法实施例的日志检索方法。上述方法实施例中的可选项也适用于本实施例,这里不再详述。
图13为本申请一实施例提供的计算机设备的结构示意图。如图13所示,该实施例的计算机设备13包括:至少一个处理器130(图13中仅示出一个)处理器、存储器131以及存储在所述存储器131中并可在所述至少一个处理器130上运行的计算机程序132,所述处理器130执行所述计算机程序132时实现上述任意方法实施例中的步骤。
所述计算机设备13可以是智能手机、平板电脑、桌上型计算机和云端服务器等计算设备。该计算机设备可包括但不仅限于处理器130、存储器131。本领域技术人员可以理解,图13仅仅是计算机设备13的举例,并不构成对计算机设备13的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器130可以是中央处理单元(Central Processing Unit,CPU),该处理器130还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器131在一些实施例中可以是所述计算机设备13的内部存储单元,例如计算机设备13的硬盘或内存。所述存储器131在另一些实施例中也可以是所述计算机设备13的外部存储设备,例如所述计算机设备13上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器131还可以既包括所述计算机设备13的内部存储单元也包括外部存储设备。所述存储器131用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器131还可以用于暂时地存储已经输出或者将要输出的数据。
另外,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机设备上运行时,使得计算机设备执行时实现上述各个方法实施例中的步骤。
在本申请所提供的几个实施例中,可以理解的是,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意的是,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围。特别指出,对于本领域技术人员来说,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (13)
1.一种日志存储方法,其特征在于,包括:
获取词汇信息与日志标识之间的第一对应关系,所述词汇信息为对日志记录进行分词得到,所述日志标识为所述日志记录的标识信息;
根据所述第一对应关系,将所述日志记录持久化到目标存储空间,所述目标存储空间包括目标索引文件和日志文件,所述目标索引文件存储有所述第一对应关系,所述日志文件存储有所述日志记录。
2.如权利要求1所述的日志存储方法,其特征在于,所述获取词汇信息与日志标识之间的第一对应关系,包括:
建立所述日志标识与序列标识之间的第二对应关系,所述序列标识为日志流的标识信息,所述日志流包括多个日志记录;
对所述日志记录进行分词,得到多个词汇信息;
根据所述词汇信息和所述第二对应关系,生成词典倒排表,所述词典倒排表存储有所述第一对应关系。
3.如权利要求2所述的日志存储方法,其特征在于,所述建立所述日志标识与序列标识之间的第二对应关系,包括:
对所述日志流的第一标签信息进行哈希运算,得到所述日志流的序列标识;
将所述序列标识和所述日志标识添加至预设序列表,生成内存序列表,所述内存序列表存储有所述第二对应关系。
4.如权利要求1所述的日志存储方法,其特征在于,所述方法,还包括:
获取第二标签信息与序列标识之间的第三对应关系,所述第二标签信息为所述日志记录的标签信息,所述序列标识为日志流的标识信息,所述目标索引文件还存储有所述第三对应关系。
5.如权利要求1所述的日志存储方法,其特征在于,所述根据所述第一对应关系,将所述日志记录持久化到目标存储空间,包括:
根据所述第一对应关系,将所述日志记录中的内容信息存储至所述日志文件,并生成所述日志文件的内容表,内容表存储有所述日志标识与所述日志文件的第一文件偏移量之间的第四对应关系;
根据所述词汇信息和所述日志标识,生成所述目标索引文件。
6.如权利要求5所述的日志存储方法,其特征在于,所述目标索引文件包括时序子文件和索引子文件,所述根据所述词汇信息和所述日志标识,生成所述目标索引文件,包括:
根据所述日志记录中的时间戳和所述日志标识,生成所述时序子文件;
建立所述词汇信息与所述时序子文件的第二文件偏移量之间的第五对应关系,得到所述索引子文件。
7.如权利要求6所述的日志存储方法,其特征在于,所述根据所述日志记录中的时间戳和所述日志标识,生成所述时序子文件,包括:
建立所述日志记录中的时间戳与所述日志标识之间的第六对应关系,得到区块子文件;
建立所述区块子文件中的时间窗口与所述区块子文件的第三文件偏移量之间的第七对应关系,得到所述时序子文件。
8.如权利要求6所述的日志存储方法,其特征在于,所述索引子文件还存储有所述日志记录的第二标签信息与所述时序子文件的第二文件偏移量之间的第六对应关系。
9.一种日志检索方法,其特征在于,包括:
获取待检索信息,所述待检索信息包括第二标签信息或全文信息,所述全文信息包括词汇信息;
基于所述待检索信息,对目标存储空间进行日志检索,得到所述待检索信息对应的目标日志记录,所述目标存储空间包括目标索引文件和日志文件,所述目标索引文件存储有所述待检索信息与所述日志标识之间对应关系,所述日志文件存储有所述日志标识对应的内容信息。
10.一种日志存储装置,其特征在于,包括:
第一获取模块,用于获取词汇信息与日志标识之间的第一对应关系,所述词汇信息为对日志记录进行分词得到,所述日志标识为所述日志记录的标识信息;
持久化模块,用于根据所述第一对应关系,将所述日志记录持久化到目标存储空间,所述目标存储空间包括目标索引文件和日志文件,所述目标索引文件存储有所述第一对应关系,所述日志文件存储有所述日志记录。
11.一种日志检索装置,其特征在于,包括:
第二获取模块,用于获取待检索信息,所述待检索信息包括第二标签信息或全文信息,所述全文信息包括词汇信息;
检索模块,用于基于所述待检索信息,对目标存储空间进行日志检索,得到所述待检索信息对应的目标日志记录,所述目标存储空间包括目标索引文件和日志文件,所述目标索引文件存储有所述待检索信息与所述日志标识之间对应关系,所述日志文件存储有所述日志标识对应的内容信息。
12.一种计算机设备,其特征在于,包括处理器和存储器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至8任一项所述的日志存储方法,或权利要求9所述的日志检索方法。
13.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的日志存储方法,或权利要求9所述的日志检索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210660343.5A CN115061990A (zh) | 2022-06-10 | 2022-06-10 | 日志存储方法、日志检索方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210660343.5A CN115061990A (zh) | 2022-06-10 | 2022-06-10 | 日志存储方法、日志检索方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115061990A true CN115061990A (zh) | 2022-09-16 |
Family
ID=83201122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210660343.5A Pending CN115061990A (zh) | 2022-06-10 | 2022-06-10 | 日志存储方法、日志检索方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115061990A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116010350A (zh) * | 2023-03-24 | 2023-04-25 | 深圳万物安全科技有限公司 | 二进制日志检索方法、系统、设备及存储介质 |
CN116089985A (zh) * | 2023-04-07 | 2023-05-09 | 北京优特捷信息技术有限公司 | 一种分布式日志的加密存储方法、装置、设备及介质 |
-
2022
- 2022-06-10 CN CN202210660343.5A patent/CN115061990A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116010350A (zh) * | 2023-03-24 | 2023-04-25 | 深圳万物安全科技有限公司 | 二进制日志检索方法、系统、设备及存储介质 |
CN116089985A (zh) * | 2023-04-07 | 2023-05-09 | 北京优特捷信息技术有限公司 | 一种分布式日志的加密存储方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115061990A (zh) | 日志存储方法、日志检索方法、装置、设备及存储介质 | |
CN110162526B (zh) | 一种块链式账本中数据记录的查询方法、装置及设备 | |
CN106980665B (zh) | 数据字典实现方法、装置及数据字典管理系统 | |
CN110532347B (zh) | 一种日志数据处理方法、装置、设备和存储介质 | |
US11068536B2 (en) | Method and apparatus for managing a document index | |
CN110347679B (zh) | 一种基于收据的数据存储方法、装置及设备 | |
CN112698868B (zh) | 一种应用于多系统的统一错误码方法和存储设备 | |
CN112416880A (zh) | 一种基于实时归并的海量小文件存储性能优化方法及装置 | |
CN104156373A (zh) | 编码格式检测方法及装置 | |
CN103034734A (zh) | 文件存储查询代理以及信息查找方法与系统 | |
CN113591434A (zh) | 一种ofd文档合并携带语义标引信息的方法 | |
CN110795920B (zh) | 一种文档生成方法及设备 | |
EP3343395B1 (en) | Data storage method and apparatus for mobile terminal | |
CN109542860B (zh) | 基于hdfs的业务数据管理方法、终端设备 | |
CN110597765A (zh) | 一种大零售呼叫中心异构数据源数据处理方法及装置 | |
CN110019295B (zh) | 数据库检索方法、装置、系统以及存储介质 | |
CN107977381B (zh) | 数据配置方法、索引管理方法、相关装置以及计算设备 | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
CN109543079B (zh) | 数据查询方法、装置、计算设备及存储介质 | |
CN111563123A (zh) | 一种hive仓库元数据实时同步方法 | |
US10095674B2 (en) | Maintaining state of document concurrently edited by two computing systems by determining locations of edits based on inverse transformations | |
CN112380174B (zh) | 含删除文件的xfs文件系统解析方法、终端设备及存储介质 | |
CN113486627B (zh) | 一种单号生成方法、装置及电子设备 | |
CN113535710B (zh) | 一种搜索方法、装置、终端设备及存储介质 | |
CN113377711B (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 |