CN108228613B - 数据的读取方法及装置 - Google Patents

数据的读取方法及装置 Download PDF

Info

Publication number
CN108228613B
CN108228613B CN201611155181.0A CN201611155181A CN108228613B CN 108228613 B CN108228613 B CN 108228613B CN 201611155181 A CN201611155181 A CN 201611155181A CN 108228613 B CN108228613 B CN 108228613B
Authority
CN
China
Prior art keywords
file
read
reading
log
log file
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
Application number
CN201611155181.0A
Other languages
English (en)
Other versions
CN108228613A (zh
Inventor
王晓涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201611155181.0A priority Critical patent/CN108228613B/zh
Publication of CN108228613A publication Critical patent/CN108228613A/zh
Application granted granted Critical
Publication of CN108228613B publication Critical patent/CN108228613B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据的读取方法及装置,涉及信息技术领域,主要目的在于解决现有技术中Flume系统在执行数据转发过程中,针对同一个数据,若在写入过程中,同时执行读取,则会产生异常的问题。本发明的技术方案包括:获取文件属性列表中日志文件内容的最新读取结束标记;根据标识信息获取当前待读取数据的结尾字符,并判断当前待读取数据的结尾字符是否与预设结束字符一致;其中,当前待读取数据为读取结束标识对应的文件内容;若确定当前待读取数据的结尾字符与预设结束字符一致,则读取当前待读取数据,并继续获取后续待读取数据的结尾字符,直到确定后续待读取数据的结尾字符与预设结束字符不一致为止。

Description

数据的读取方法及装置
技术领域
本发明涉及信息技术领域,特别是涉及一种数据的读取方法及装置。
背景技术
随着互联网技术的快速发展,用户对基于互联网传输数据的应用越来越重视;例如,在服务器端部署两种类型的服务器,一种为接收服务器,用于接收客户端发送的超文本传送协议(HTTP-Hypertext transfer protocol,HTTP)请求,并将接收到HTTP请求按照一定规则转发至计算服务器;另一种为计算服务器,用于对接收服务器发送的数据进行处理分析。
现有技术中,接收服务器与计算服务器分布在不同的服务器上,其中,接收服务器通过接收站点接收数据发送端发送的数据,并将接收到的数据写入日志文件中,通过Flume系统读取日志文件,并将日志文件中的数据转发至计算服务器。Flume系统在将接收到的日志进行转发时,利用Flume Source组件完成对日志数据的收集,并将其采集的数据传输至Flume Channel组件进行缓存,由Flume Sink组件将Flume Channel组件中缓存的日志读取出来,并提交至计算服务器,实现对日志数据的转发。
发明人在实现上述发明过程中,Flume Source组件在读取日志时,需要对存储日志的指定文件进行监控,当确定指定文件存在更新时读取更新后的日志;但是,若FlumeSource组件读取的是接收服务器正在记录的日志文件,则可能会发生读取异常,即FlumeSource组件只能读取指定文件下已记录完整、完毕的日志文件;此外,在Flume Source组件在每次读取日志文件时,均需要从头开始读取日志文件,增大了Flume系统处理数据的工作量,从而降低了数据处理的效率。
发明内容
有鉴于此,本发明提供的一种数据的读取方法及装置,主要目的在于解决现有技术中Flume系统在执行数据转发过程中,针对同一个数据,若在写入过程中,同时执行读取,则会产生异常,此外,在Flume Source组件在每次读取日志文件时,均需要从头开始读取日志文件,增大了Flume系统处理数据的工作量,从而降低了数据处理的效率的问题。
为了解决上述问题,本发明主要提供如下技术方案:
一方面,本发明提供了一种数据的读取方法,所述方法应用于Flume系统,包括:
获取文件属性列表中日志文件内容的最新读取结束标记;所述文件属性列表中记录有日志文件的标识信息与日志文件的最新读取结束标识的映射关系;
根据所述标识信息获取当前待读取数据的结尾字符,并判断所述当前待读取数据的结尾字符是否与预设结束字符一致;其中,所述当前待读取数据为所述读取结束标识对应的文件内容;
若确定所述当前待读取数据的结尾字符与所述预设结束字符一致,则读取所述当前待读取数据,并继续获取后续待读取数据的结尾字符,直到确定后续待读取数据的结尾字符与所述预设结束字符不一致为止。
可选的,所述方法还包括:
若确定所述当前待读取数据的结尾字符与所述预设结束字符不一致,则暂停读取所述当前待读取数据,直到确定所述当前待读取数据的结尾字符与所述预设结束字符一致后,读取所述当前待读取数据。
可选的,若所述读取结束标识为文件内容最大行号,在获取文件属性列表中日志文件内容的最新读取结束标记之前,所述方法还包括:
获取配置文件中目标文件夹的存储路径;所述目标文件夹中包含多个日志文件;
根据所述存储路径查找所述目标文件夹,并获取所述目标文件夹下所有日志文件的文件属性;其中,所述文件属性包括日志文件的名称、日志文件的最后修改时间及文件内容最大行号;
将所述日志文件对应的日志文件的名称、日志文件的最后修改时间及文件内容最大行号记录于所述文件属性列表中。
可选的,在将所述日志文件对应的日志文件的名称、日志文件的最后修改时间及文件内容最大行号记录于所述文件属性列表中之后,所述方法还包括:
对所述目标文件夹下的所有日志文件进行监控,并确定所述目标日志文件夹是否存在更新;
若确定所述目标日志文件夹存在更新,则确定更新的内容是新增日志文件还是日志文件的修改;
若确定更新的内容为新增日志文件,则在所述文件属性列表中增加所述新增日志文件对应的日志文件的名称、新增日志文件的创建时间及文件内容最大行号;
若确定更新的内容为日志文件的修改,则获取更新后的日志文件的名称,并对所述文件属性列表中,与日志文件的名称所对应的文件内容最大行号及日志文件的最后修改时间进行更新。
可选的,获取文件属性列表中日志文件内容的最新读取结束标记包括:
获取所述文件属性列表中记录的日志文件的最后修改时间,并获取当前时间;
将所述日志文件的最后修改时间与所述当前时间进行比对;
若确定所述日志文件的最后修改时间大于所述当前时间,则获取与所述日志文件的最后修改时间对应的所述文件内容最大行号。
可选的,在判断所述当前待读取数据的结尾字符是否与预设结束字符一致之前,所述方法还包括:
对所述预设结束字符进行配置;
所述判断所述当前待读取数据的结尾字符是否与预设结束字符一致包括:
获取所述预设结束字符;
将所述当前待读取数据的结尾字符与所述预设结束字符进行比对,根据比对结果确定所述当前待读取数据的结尾字符与所述预设结束字符是否一致。
可选的,读取所述当前待读取数据包括:
读取一行文件内容,并将所述一行文件内容封装成一个当前待读取数据。
可选的,在读取所述当前待读取数据之后,所述方法还包括:
当确定读取终止时,获取读取终止时待读取数据的文件内容行号,并基于所述文件内容行号对所述文件属性列表中的文件内容最大行号进行更新;
将读取的待读取数据发送至预置缓存空间进行暂存。
可选的,所述方法还包括:
将所述文件属性列表另存于预置文件中;
监控所述文件属性列表是否存在更新;
若确定所述文件属性列表存在更新,则对另存于所述预置文件中的文件属性列表进行同步更新。
另一方面,本发明还提供一种数据的读取装置,所述装置应用于Flume系统,包括:
第一获取单元,用于获取文件属性列表中日志文件内容的最新读取结束标记;所述文件属性列表中记录有日志文件的标识信息与日志文件的最新读取结束标识的映射关系;
第二获取单元,用于根据所述第一获取单元内获取的所述标识信息获取当前待读取数据的结尾字符;
判断单元,用于判断所述第二获取单元获取的所述当前待读取数据的结尾字符是否与预设结束字符一致;其中,所述当前待读取数据为所述读取结束标识对应的文件内容;
读取单元,用于当所述判断单元确定所述当前待读取数据的结尾字符与所述预设结束字符一致时,读取所述当前待读取数据;
第一处理单元,用于在所述读取单元读取所述当前待读取数据后,继续获取后续待读取数据的结尾字符,直到确定后续待读取数据的结尾字符与所述预设结束字符不一致为止。
可选的,所述装置还包括:
第二处理单元,用于当所述判断确定所述当前待读取数据的结尾字符与所述预设结束字符不一致时,暂停读取所述当前待读取数据,直到确定所述当前待读取数据的结尾字符与所述预设结束字符一致后,读取所述当前待读取数据。
可选的,若所述读取结束标识为文件内容最大行号,所述装置还包括:
第三获取单元,用于在所述第一获取单元获取文件属性列表中日志文件内容的最新读取结束标记之前,获取配置文件中目标文件夹的存储路径;所述目标文件夹中包含多个日志文件;
查找单元,用于根据所述第三获取单元获取的所述存储路径查找所述目标文件夹;
第四获取单元,用于获取所述查找单元查找的所述目标文件夹下所有日志文件的文件属性;其中,所述文件属性包括日志文件的名称、日志文件的最后修改时间及文件内容最大行号;
记录单元,用于将所述第四获取单元获取的所述日志文件对应的日志文件的名称、日志文件的最后修改时间及文件内容最大行号记录于所述文件属性列表中。
可选的,所述装置还包括:
监控单元,用于在所述记录单元将所述日志文件对应的日志文件的名称、日志文件的最后修改时间及文件内容最大行号记录于所述文件属性列表中之后,对所述目标文件夹下的所有日志文件进行监控;
第一确定单元,用于确定所述监控单元监控的所述目标日志文件夹是否存在更新;
第二确定单元,用于当所述第一确定单元确定所述目标日志文件夹存在更新时,确定更新的内容是新增日志文件还是日志文件的修改;
添加单元,用于当所述第二确定单元确定更新的内容为新增日志文件时,在所述文件属性列表中增加所述新增日志文件对应的日志文件的名称、新增日志文件的创建时间及文件内容最大行号;
第五获取单元,用于当所述第二确定单元确定更新的内容为日志文件的修改时,获取更新后的日志文件的名称;
第一更新单元,用于对所述文件属性列表中,与日志文件的名称所对应的文件内容最大行号及日志文件的最后修改时间进行更新。
可选的,所述第一获取单元包括:
第一获取模块,用于获取所述文件属性列表中记录的日志文件的最后修改时间,并获取当前时间;
比对模块,用于将所述第一获取模块获取的所述日志文件的最后修改时间与所述当前时间进行比对;
第二获取模块,用于当所述比对模块确定所述日志文件的最后修改时间大于所述当前时间时,获取与所述日志文件的最后修改时间对应的所述文件内容最大行号。
可选的,所述装置还包括:
配置单元,用于在所述判断单元判断所述当前待读取数据的结尾字符是否与预设结束字符一致之前,对所述预设结束字符进行配置;
所述判断单元包括:
第三获取模块,用于获取所述预设结束字符;
比对模块,用于将所述当前待读取数据的结尾字符与所述第三获取模块获取的所述预设结束字符进行比对;
确定模块,用于根据所述比对模块的比对结果确定所述当前待读取数据的结尾字符与所述预设结束字符是否一致。
可选的,所述读取单元包括:
读取模块,用于读取一行文件内容;
封装模块,用于将所述一行文件内容封装成一个当前待读取数据。
可选的,所述装置还包括:
第六获取单元,用于在所述读取单元读取所述当前待读取数据之后,当确定读取终止时,获取读取终止时待读取数据的文件内容行号;
第二更新单元,用于基于所述第六获取单元获取的所述文件内容行号对所述文件属性列表中的文件内容最大行号进行更新;
存储单元,用于将读取的待读取数据发送至预置缓存空间进行暂存。
可选的,所述装置还包括:
另存单元,用于将所述文件属性列表另存于预置文件中;
监控单元,用于监控所述文件属性列表是否存在更新;
第三更新单元,用于当确定所述文件属性列表存在更新时,对另存于所述预置文件中的文件属性列表进行同步更新。
借由上述技术方案,本发明提供的技术方案至少具有下列优点:
本发明提供的数据的读取方法及装置,在Flume系统读取数据时,获取文件属性列表中日志文件内容的最新读取结束标记;文件属性列表中记录有日志文件的标识信息与日志文件的最新读取结束标识的映射关系;根据标识信息获取当前待读取数据的结尾字符,并判断当前待读取数据的结尾字符是否与预设结束字符一致;其中,当前待读取数据为读取结束标识对应的文件内容;若确定当前待读取数据的结尾字符与预设结束字符一致,则读取当前待读取数据,并继续获取后续待读取数据的结尾字符,直到确定后续待读取数据的结尾字符与预设结束字符不一致为止,本发明实施例中,在Flume系统读取数据的过程中,对其读取的数据进行监控,若确定当前待读取数据的结尾字符与预设结束字符一致,则确定当前待读取数据为记录完整的数据,执行读取;若确定当前待读取数据的结尾字符与预设结束字符不一致,则确定当前待读取数据为正在写入的数据,则停止对该类数据的读取,能够有效防止在Flume系统读取数据过程中出现异常,同时,在读取数据过程中,从文件属性列表中日志文件内容的最新读取结束标记处开始读取数据,降低了Flume系统处理数据的工作量,从而提高了数据处理的效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种数据的读取方法的流程图;
图2示出了本发明实施例提供的一种目标文件夹的存储路径的示意图;
图3示出了本发明实施例提供的一种数据的读取装置的组成框图;
图4示出了本发明实施例提供的另一种数据的读取装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供一种数据的读取方法,该方法应用于Flume系统中,如图1所示,所述方法包括:
101、获取文件属性列表中日志文件内容的最新读取结束标记。
在本发明实施例中,通过使用Flume系统执行数据的转发,Flume系统可以位于接收服务器中,也可以独立于接收服务器,但与接收服务器有数据交互关系,后续实施例中,以Flume系统位于接收服务器为例进行说明;但是,需要说明的是,该种说明方式并非意在限定Flume系统只能位于接收服务器中,具体的,本发明实施例对此不作限定。
当Flume系统转发接收服务器中的日志数据至计算服务器时,首先获取文件属性列表中记录的最新读取结束标记文件内容最大行号,所述文件属性列表中记录有日志文件的标识信息与日志文件的最新读取结束标识的映射关系;其目的在于,日志文件中存储的数据较多,若在执行数据转发过程中,Flume系统均要从日志文件的起始处对已转发的数据进行过滤,则会降低Flume系统的转发效率。本发明实施例中,在执行数据转发时,Flume系统首先定位到最新读取结束标记,以提高本次转发数据的效率。在实际应用过程中,最新读取结束标记可包含但不局限于文件内容的最大行号,为了便于说明,后续实施例中会以最新读取结束标记为文件内容的最大行号进行说明,但是应当明确的是,该种说明方式并非意在限定最新读取结束标记仅能为文件内容的最大行号。
为了便于对文件内容最大行号进行更好的理解,以下将以示例的形式进行详细说明,示例性的,如表1所示,表1示出了本发明实施例提供的一种文件属性列表,在如下所示的文件属性列表中记录有日志文件名称(fileName)与文件内容最大行号(maxRowNo)之间的对应关系,当哪个日志文件存在更新时,Flume系统会基于日志文件名称(fileName)获取其对应的文件内容最大行号(maxRowNo),根据maxRowNo进行本次转发数据位置的定位。需要说明的是,表1仅为示例性的举例,本发明实施例对文件属性列表中记录的文件内容最大行号、及其与日志文件名称的对应关系等具体内容不作限定。
表1
fileName maxRowNo
2016080100.log 10001
2016080101.log 15000
2016080102.log 12000
2016080103.log 20000
…… ……
由表1可以看出,一个文件属性列表中可以记录有多个日志文件及文件内容最大行号的映射关系,每个日志文件都有一个标识信息,便于根据该标识信息从文件属性列表中查找对应的文件内容最大行号,本发明实施例以日志文件的文件名称作为日志文件的标识信息为例进行的说明,本发明实施例对日志文件的标识信息不作限定。
102、根据所述标识信息获取当前待读取数据的结尾字符,并判断所述当前待读取数据的结尾字符是否与预设结束字符一致;其中,所述当前待读取数据为所述读取结束标识对应的文件内容。
Flume系统根据获取到文件内容最大行号进行本次转发数据的定位,定位到上次转发数据的结束行,执行本次转发数据的起始点为上次转发数据结束行的相邻下一行。请继续参照表1,假设,Flume系统当前转发的日志文件名称为2016080100.log,由上述文件属性列表可知,该日志文件对应的文件内容最大行号为10001,即上次Flume系统转发数据的结束行为第10001行,那么在Flume系统执行本次数据转发时,从第10001行的相邻下一行处,即第10002行处开始转发数据。
在转发数据时,为确保读取数据的正确性,需要对当前待读取数据进行识别,确定当前待读取数据是否为正在写入的数据,其具体过程包括:获取当前待读取数据的结尾字符,并判断当前待读取数据的结尾字符是否与预设结束字符一致;其中,所述当前待读取数据为所述文件内容最大行号的相邻下一行所对应的文件内容,每个待读取数据对应日志文件中的一行文件内容。
在实际应用中,日志文件中记录的每个数据为一行,并且每行数据内容通常为一个访问请求信息,例如,访问请求信息中必包含一个访问网址的统一资源定位符(UniformResource Locator,URL),在该URL中可能携带有一些参数信息,接收服务器会以日志的形式记录该条访问信息。例如,若接收服务器接收到的URL为:http://abc.com&id=user-001&time=0.8,则服务器会将该条访问信息记录(写入)于日志文件中,写入成功后的标识为在日志文件中使用结束字符进行标识,例如,结束字符为“回车符”或者“换行符”等等,接收服务器用结束字符来区分写入不同的数据。若一条数据中未出现结束字符,说明该条数据服务器正在写入。具体的,本发明实施例对接收服务器记录数据的结束字符的具体形式,及接收服务器接收到的具体数据内容等不作限定。
103、若确定所述当前待读取数据的结尾字符与所述预设结束字符一致,则读取所述当前待读取数据,并继续获取后续待读取数据的结尾字符,直到确定后续待读取数据的结尾字符与所述预设结束字符不一致为止。
若确定所述当前待读取数据的结尾字符与所述预设结束字符一致,说明接收服务器已记录了一条完整的数据内容(使用结束字符间隔);若确定所述当前待读取数据的结尾字符与所述预设结束字符不一致,说明当前待读取数据为接收服务器正在写入的文件,当前记录的数据不完整,Flume系统无需读取不完整的数据,可以等接收服务器记录完完整的数据后,再执行读取。
在本步骤中,明确规定在Flume系统读取接收服务器中的待读取数据时,只会读取完整的数据,即该读取的数据为数据的结尾字符与所述预设结束字符一致,读取完毕后,继续读取后续待读取数据,直到后续待读取数据的结尾字符与预设结束字符不一致为止,本发明实施例所述的后续待读取数据为当前待读取数据后的所有待读取的数据。
本发明实施例提供的数据的读取方法,在Flume系统读取数据时,获取文件属性列表中日志文件内容的最新读取结束标记;文件属性列表中记录有日志文件的标识信息与日志文件的最新读取结束标识的映射关系;根据标识信息获取当前待读取数据的结尾字符,并判断当前待读取数据的结尾字符是否与预设结束字符一致;其中,当前待读取数据为读取结束标识对应的文件内容;若确定当前待读取数据的结尾字符与预设结束字符一致,则读取当前待读取数据,并继续获取后续待读取数据的结尾字符,直到确定后续待读取数据的结尾字符与预设结束字符不一致为止,本发明实施例中,在Flume系统读取数据的过程中,对其读取的数据进行监控,若确定当前待读取数据的结尾字符与预设结束字符一致,则确定当前待读取数据为记录完整的数据,执行读取;若确定当前待读取数据的结尾字符与预设结束字符不一致,则确定当前待读取数据为正在写入的数据,则停止对该类数据的读取,能够有效防止在Flume系统读取数据过程中出现异常,同时,在读取数据过程中,从文件属性列表中日志文件内容的最新读取结束标记处开始读取数据,降低了Flume系统处理数据的工作量,从而提高了数据处理的效率。
进一步的,图1所示方法为确定所述当前待读取数据的结尾字符与所述预设结束字符一致的情况进行的说明,即读取的日志文件中的当前待读取数据不存在同时写入与读取的情况,但是,在实际应用中,可能会存在当前待读取数据为同时写入与读取,即确定所述当前待读取数据的结尾字符与所述预设结束字符不一致的情况,当监测到该种情况发生时,为避免读取数据的异常,需要暂停读取所述当前待读取数据,直到确定所述当前待读取数据的结尾字符与所述预设结束字符一致后,读取所述当前待读取数据,仅能够避免读取异常的发生,又能够确保读取当前待读取数据的实时性。
进一步的,作为对上述实施例的细化和扩展,在步骤101执行获取文件属性列表中记录的文件内容最大行号之前,生成文件属性列表,以便Flume系统根据该文件属性列表获取文件内容最大行号。在生成文件属性列表时,可以采用但不局限于以下的方式实现,例如:获取配置文件中目标文件夹的存储路径,所述目标文件夹中包含多个日志文件;根据存储路径查找到响应的目标文件夹,并获取该目标文件夹下所有的日志文件的文件属性,本发明实施例所述的文件属性包含日志文件的名称、日志文件的最后修改时间及文件内容最大行号;将日志文件对应的日志文件的名称、日志文件的最后修改时间及文件内容最大行号记录于文件属性列表中,生成文件属性列表。
示例性的,如表2所示,表2示出了本发明实施例提供的另一文件属性列表,在该文件属性列表中包含日志文件的名称(fileName)、日志文件的最后修改时间(latestModifyTime)及文件内容最大行号(maxRowNo),具体的本发明实施例对文件属性列表中记录的具体内容不作限定。
表2
fileName latestModifyTime maxRowNo
2016080100.log 2016-08-01 00:59:59 10001
2016080101.log 2016-08-01 01:59:59 15000
2016080102.log 2016-08-01 02:59:59 12000
2016080103.log 2016-08-01 03:59:59 20000
2016080104.log 2016-08-01 04:00:00 0
…… …… ……
在实际应用中,接收服务器可以为一台计算机设备,其记录目标文件夹的存储路径可以为该台计算机设备中的任意存储空间,图2示出了本发明实施例提供的一种目标文件夹的存储路径的示意图,如图2所示,目标文件夹的在接收服务器中的存储路径为:D:\files\目标文件夹,在该目标文件夹下包含N个日志文件,其中,N为大于4的整数。具体的,本发明实施例对目标文件夹下存储的日志文件的个数、展示形式等不作限定。
进一步的,为了确保Flume系统获取到的文件属性列表最近的内容,在生成文件属性列表后,对目标文件夹下的所有日志文件进行监控,并确定目标日志文件夹是否存在更新,若确定所述目标日志文件夹存在更新,则确定更新的内容是新增日志文件还是日志文件的修改;则确定更新的内容是否为新增日志文件;若确定更新的内容为新增日志文件,则在所述文件属性列表中增加所述新增日志文件对应的日志文件的名称、新增日志文件的创建时间及文件内容最大行号;若确定更新的内容为日志文件的修改,则获取更新后的日志文件的名称,并对所述文件属性列表中,与日志文件的名称所对应的文件内容最大行号及日志文件的最后修改时间进行更新。
在实际应用中,由于接收服务器接收到的访问请求数据较多,接收服务器可以配置每隔一个小时生成一次日志文件,或者,配置为每个半小时生成一次日志文件。接收服务器在配置生成日志文件的时间间隔时,要参考具体访问接收服务器的流量,例如,在时间段22:00-07:00,客户端访问服务器的数量可能较少,那么在该时间段内,可以设置每次生成日志文件的时间间隔为4小时;在时间段07:00-21:59,客户端访问服务器的数量较多,那么在该时间段内,可以设置每次生成日志文件的时间间隔为30分钟等等,以上仅为示例性的具体,关于设置接收服务器生成日志文件的时间间隔的具体设定本发明实施例对此不作限定。
在接收服务器生成日志文件的时间间隔内(例如一个小时),会在目标文件夹内形成一个新增日志文件,Flume系统监控到目标文件夹内新增一个日志文件,获取该新增日志文件的文件属性信息:日志文件的名称、新增日志文件的创建时间及文件内容最大行号,将其记录于文件属性列表中。示例性的,请继续参阅表2,表2中所示的日志文件的名称为2016080104.l og,为接收服务器新增的日志文件,且在当前时刻该新增日志文件内未写入任何的数据,因此,在文件属性列表记录该日志文件的信息时,将该新增日志文件的最后修改时间确定为该新增日志文件的创建时间2016-08-01 04:00:00,由于该新增日志文件中未写入任何数据,其对应的文件内容最大行号为0。需要说明的是,本发明实施例对目标文件夹内新增日志文件的文件名称、生成时间及日志文件的最后修改时间等内容不作限定。
进一步的,由上述实施例可知文件属性列表中记录的是多个日志文件的相关文件属性信息,因此,确定日志文件的文件内容最大行数时,可能会出现多个日志文件中,一部分日志文件存在更新的情况,而另一部分日志文件未存在更新的情况,对于未存在更新的日志文件而言,若Flume系统读取未存在更新的日志文件,会降低Flume系统读取数据的速度。为了解决上述问题,本发明实施例中,在Flume系统获取文件属性列表中记录的文件内容最大行号时,首先获取所述文件属性列表中记录的日志文件的最后修改时间,并获取当前时间;将所述日志文件的最后修改时间与所述当前时间进行比对;若确定所述日志文件的最后修改时间大于所述当前时间,则获取与所述日志文件的最后修改时间对应的所述文件内容最大行号。对于Flume系统而言只需要获取当读取数据的当前时刻存在更新的数据即可,无需去对文件属性列表中的每个日志文件中的文件内容全部进行读取,并对已读取过的数据进行过滤,该种方式能够提高Flume系统读取更新日志文件数据的速度。
示例性1,假设,Flume系统启动时的时间为2016-10-20,10:00,文件属性列表中各个日志文件的最后修改时间为2016-10-20,04:00,那么说明在启动Flume系统之前,日志文件中全无更新内容,因此,无需对文件属性列表中的任何日志文件进行读取。示例2,假设,同样的Flume系统启动时的时间为2016-10-20,10:00,文件属性列表中包含4个日志文件,其中,3个日志文件的最后修改时间为2016-10-20,02:00,另一个日志文件的最后修改时间为2016-10-20,10:10,Flume系统在读取日志文件时只读取日志文件的最后修改时间为2016-10-20,10:10的日志文件即可,在读取待读取数据时,采用图1所示的方法进行读取。
进一步的,在判断所述当前待读取数据的结尾字符是否与预设结束字符一致之前,对所述预设结束字符进行配置;在本发明实施例中,预设结束符可以包含但不局限于以下内容,例如:回车键、空格键、tab键、@字符、*字符等等,具体的,本发明实施例对此不作限定。所述判断所述当前待读取数据的结尾字符是否与预设结束字符一致包括:获取所述预设结束字符;将所述当前待读取数据的结尾字符与所述预设结束字符进行比对,根据比对结果确定所述当前待读取数据的结尾字符与所述预设结束字符是否一致。
进一步的,Flume系统中包含三个组件,分别为:Flume Source、Flume Channel及Flume Sink,其中,Flume Source负责将接收服务器中日志文件中的数据转发至FlumeChannel进行暂时存储(缓存);Flume Channel负责接收Flume Source转发的数据,并进行存储;Flume Sink从Flume Channel中获取缓存的数据,并转发至计算服务器,以便计算服务器对Flume Sink转发的数据进行分析处理。在本发明实施例中Flume Source在读取到接收服务器中日志文件中的一行文件内容后,将该行文件内容进行封装,封装为一个当前待读取数据event,并将封装后的当前待读取数据event转发至Flume Channel;有关数据封装的实现过程,请参考现有技术的相关详细描述,本发明实施例对数据封装的详细实现过程不再进行一一赘述。
进一步的,在读取当前待读取数据之后,会继续读取日志文件中的后续数据,直到后续待读取数据的结尾字符与所述预设结束字符不一致时,终止数据的读取,并获取读取终止时待读取数据的文件内容行号,并基于所述文件内容行号对所述文件属性列表中的文件内容最大行号进行更新;将读取的待读取数据发送至预置缓存空间进行暂存,所述预置缓存空间为上述实施例所述的Flume Channel。
进一步的,为了确定程序异常退出时,文件属性列表未及时更新的情况发生,本发明实施例中,在生成文件属性列表后,将其另存于预置文件中,并实时监控文件属性列表是否存在更新,当确定文件属性列表存在更新时,对另存于预置文件中的文件属性列表进行同步更新,以确保在下次启动Flume系统时,从更新后的文件属性列表记录的文件属性信息(文件内容最大行号)开始读取数据,又能够确保文件属性列表的丢失。
进一步的,作为对上述图1所示方法的实现,本发明另一实施例还提供了一种数据的读取装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。
本发明实施例提供一种数据的读取装置,所述装置应用于Flume系统,如图3所示,所述装置包括:
第一获取单元21,用于获取文件属性列表中日志文件内容的最新读取结束标记;所述文件属性列表中记录有日志文件的标识信息与日志文件的最新读取结束标识的映射关系;
第二获取单元22,用于根据所述第一获取单元21内获取的所述标识信息获取当前待读取数据的结尾字符;
判断单元23,用于判断所述第二获取单元22获取的所述当前待读取数据的结尾字符是否与预设结束字符一致;其中,所述当前待读取数据为所述读取结束标识对应的文件内容;
读取单元24,用于当所述判断单元23确定所述当前待读取数据的结尾字符与所述预设结束字符一致时,读取所述当前待读取数据;
第一处理单元25,用于在所述读取单元24读取所述当前待读取数据后,继续获取后续待读取数据的结尾字符,直到确定后续待读取数据的结尾字符与所述预设结束字符不一致为止。
进一步的,如图4所示,所述装置还包括:
第二处理单元26,用于当所述判断单元23确定所述当前待读取数据的结尾字符与所述预设结束字符不一致时,暂停读取所述当前待读取数据,直到确定所述当前待读取数据的结尾字符与所述预设结束字符一致后,读取所述当前待读取数据。
进一步的,如图4所示,若所述读取结束标识为文件内容最大行号,所述装置还包括:
第三获取单元27,用于在所述第一获取单元21获取文件属性列表中日志文件内容的最新读取结束标记之前,获取配置文件中目标文件夹的存储路径;所述目标文件夹中包含多个日志文件;
查找单元28,用于根据所述第三获取单元27获取的所述存储路径查找所述目标文件夹;
第四获取单元29,用于获取所述查找单元28查找的所述目标文件夹下所有日志文件的文件属性;其中,所述文件属性包括日志文件的名称、日志文件的最后修改时间及文件内容最大行号;
记录单元2010,用于将所述第四获取单元29获取的所述日志文件对应的日志文件的名称、日志文件的最后修改时间及文件内容最大行号记录于所述文件属性列表中。
进一步的,如图4所示,所述装置还包括:
监控单元2011,用于在所述记录单元2010将所述日志文件对应的日志文件的名称、日志文件的最后修改时间及文件内容最大行号记录于所述文件属性列表中之后,对所述目标文件夹下的所有日志文件进行监控;
第一确定单元2012,用于确定所述监控单元2011监控的所述目标日志文件夹是否存在更新;
第二确定单元2013,用于当所述第一确定单元2012确定所述目标日志文件夹存在更新时,确定更新的内容是新增日志文件还是日志文件的修改;
添加单元2014,用于当所述第二确定单元2013确定更新的内容为新增日志文件时,在所述文件属性列表中增加所述新增日志文件对应的日志文件的名称、新增日志文件的创建时间及文件内容最大行号;
第五获取单元2015,用于当所述第二确定单元2013确定更新的内容为日志文件的修改时,获取更新后的日志文件的名称;
第一更新单元2016,用于对所述文件属性列表中,与日志文件的名称所对应的文件内容最大行号及日志文件的最后修改时间进行更新。
进一步的,如图4所示,所述第一获取单元21包括:
第一获取模块211,用于获取所述文件属性列表中记录的日志文件的最后修改时间,并获取当前时间;
比对模块212,用于将所述第一获取模块211获取的所述日志文件的最后修改时间与所述当前时间进行比对;
第二获取模块213,用于当所述比对模块212确定所述日志文件的最后修改时间大于所述当前时间时,获取与所述日志文件的最后修改时间对应的所述文件内容最大行号。
进一步的,如图4所示,所述装置还包括:
配置单元2017,用于在所述判断单元23判断所述当前待读取数据的结尾字符是否与预设结束字符一致之前,对所述预设结束字符进行配置;
所述判断单元23包括:
第三获取模块231,用于获取所述预设结束字符;
比对模块232,用于将所述当前待读取数据的结尾字符与所述第三获取模块获取的所述预设结束字符进行比对;
确定模块233,用于根据所述比对模块的比对结果确定所述当前待读取数据的结尾字符与所述预设结束字符是否一致。
进一步的,如图4所示,所述读取单元24包括:
读取模块241,用于读取一行文件内容;
封装模块242,用于将所述一行文件内容封装成一个当前待读取数据。
进一步的,如图4所示,所述装置还包括:
第六获取单元2018,用于在所述读取单元23读取所述当前待读取数据之后,当确定读取终止时,获取读取终止时待读取数据的文件内容行号;
第二更新单元2019,用于基于所述第六获取单元2018获取的所述文件内容行号对所述文件属性列表中的文件内容最大行号进行更新;
存储单元2020,用于将读取的待读取数据发送至预置缓存空间进行暂存。
进一步的,如图4所示,所述装置还包括:
另存单元2021,用于将所述文件属性列表另存于预置文件中;
监控单元2022,用于监控所述文件属性列表是否存在更新;
第三更新单元2023,用于当确定所述文件属性列表存在更新时,对另存于所述预置文件中的文件属性列表进行同步更新。
本发明实施例提供的数据的读取装置,在Flume系统读取数据时,获取文件属性列表中日志文件内容的最新读取结束标记;文件属性列表中记录有日志文件的标识信息与日志文件的最新读取结束标识的映射关系;根据标识信息获取当前待读取数据的结尾字符,并判断当前待读取数据的结尾字符是否与预设结束字符一致;其中,当前待读取数据为读取结束标识对应的文件内容;若确定当前待读取数据的结尾字符与预设结束字符一致,则读取当前待读取数据,并继续获取后续待读取数据的结尾字符,直到确定后续待读取数据的结尾字符与预设结束字符不一致为止,本发明实施例中,在Flume系统读取数据的过程中,对其读取的数据进行监控,若确定当前待读取数据的结尾字符与预设结束字符一致,则确定当前待读取数据为记录完整的数据,执行读取;若确定当前待读取数据的结尾字符与预设结束字符不一致,则确定当前待读取数据为正在写入的数据,则停止对该类数据的读取,能够有效防止在Flume系统读取数据过程中出现异常,同时,在读取数据过程中,从文件属性列表中日志文件内容的最新读取结束标记处开始读取数据,降低了Flume系统处理数据的工作量,从而提高了数据处理的效率。
所述数据的读取装置包括处理器和存储器,上述第一获取单元、第二获取单元、判断单元、读取单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决现有技术中Flume系统在执行数据转发过程中,针对同一个数据,若在写入过程中,同时执行读取,则会产生异常的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获取文件属性列表中日志文件内容的最新读取结束标记;所述文件属性列表中记录有日志文件的标识信息与日志文件的最新读取结束标识的映射关系;根据所述标识信息获取当前待读取数据的结尾字符,并判断所述当前待读取数据的结尾字符是否与预设结束字符一致;其中,所述当前待读取数据为所述读取结束标识对应的文件内容;若确定所述当前待读取数据的结尾字符与所述预设结束字符一致,则读取所述当前待读取数据,并继续获取后续待读取数据的结尾字符,直到确定后续待读取数据的结尾字符与所述预设结束字符不一致为止。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (18)

1.一种数据的读取方法,其特征在于,所述方法应用于Flume系统,包括:
获取文件属性列表中日志文件内容的最新读取结束标记;所述文件属性列表中记录有日志文件的标识信息与日志文件的最新读取结束标识的映射关系;
根据所述标识信息获取当前待读取数据的结尾字符,并判断所述当前待读取数据的结尾字符是否与预设结束字符一致;其中,所述当前待读取数据为所述读取结束标识对应的文件内容;
若确定所述当前待读取数据的结尾字符与所述预设结束字符一致,则读取所述当前待读取数据,并继续获取后续待读取数据的结尾字符,直到确定后续待读取数据的结尾字符与所述预设结束字符不一致为止;
若确定所述当前待读取数据的结尾字符与所述预设结束字符不一致,则暂停读取所述当前待读取数据,直到确定所述当前待读取数据的结尾字符与所述预设结束字符一致后,读取所述当前待读取数据。
2.根据权利要求1所述的方法,其特征在于,若所述读取结束标识为文件内容最大行号,在获取文件属性列表中日志文件内容的最新读取结束标记之前,所述方法还包括:
获取配置文件中目标文件夹的存储路径;所述目标文件夹中包含多个日志文件;
根据所述存储路径查找所述目标文件夹,并获取所述目标文件夹下所有日志文件的文件属性;其中,所述文件属性包括日志文件的名称、日志文件的最后修改时间及文件内容最大行号;
将所述日志文件对应的日志文件的名称、日志文件的最后修改时间及文件内容最大行号记录于所述文件属性列表中。
3.根据权利要求2所述的方法,其特征在于,在将所述日志文件对应的日志文件的名称、日志文件的最后修改时间及文件内容最大行号记录于所述文件属性列表中之后,所述方法还包括:
对所述目标文件夹下的所有日志文件进行监控,并确定所述目标日志文件夹是否存在更新;
若确定所述目标日志文件夹存在更新,则确定更新的内容是新增日志文件还是日志文件的修改;
若确定更新的内容为新增日志文件,则在所述文件属性列表中增加所述新增日志文件对应的日志文件的名称、新增日志文件的创建时间及文件内容最大行号;
若确定更新的内容为日志文件的修改,则获取更新后的日志文件的名称,并对所述文件属性列表中,与日志文件的名称所对应的文件内容最大行号及日志文件的最后修改时间进行更新。
4.根据权利要求3所述的方法,其特征在于,获取文件属性列表中日志文件内容的最新读取结束标记包括:
获取所述文件属性列表中记录的日志文件的最后修改时间,并获取当前时间;
将所述日志文件的最后修改时间与所述当前时间进行比对;
若确定所述日志文件的最后修改时间大于所述当前时间,则获取与所述日志文件的最后修改时间对应的所述文件内容最大行号。
5.根据权利要求1所述的方法,其特征在于,在判断所述当前待读取数据的结尾字符是否与预设结束字符一致之前,所述方法还包括:
对所述预设结束字符进行配置;
所述判断所述当前待读取数据的结尾字符是否与预设结束字符一致包括:
获取所述预设结束字符;
将所述当前待读取数据的结尾字符与所述预设结束字符进行比对,根据比对结果确定所述当前待读取数据的结尾字符与所述预设结束字符是否一致。
6.根据权利要求1-5中任一项所述的方法,其特征在于,读取所述当前待读取数据包括:
读取一行文件内容,并将所述一行文件内容封装成一个当前待读取数据。
7.根据权利要求6所述的方法,其特征在于,在读取所述当前待读取数据之后,所述方法还包括:
当确定读取终止时,获取读取终止时待读取数据的文件内容行号,并基于所述文件内容行号对所述文件属性列表中的文件内容最大行号进行更新;
将读取的待读取数据发送至预置缓存空间进行暂存。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
将所述文件属性列表另存于预置文件中;
监控所述文件属性列表是否存在更新;
若确定所述文件属性列表存在更新,则对另存于所述预置文件中的文件属性列表进行同步更新。
9.一种数据的读取装置,其特征在于,所述装置应用于Flume系统,包括:
第一获取单元,用于获取文件属性列表中日志文件内容的最新读取结束标记;所述文件属性列表中记录有日志文件的标识信息与日志文件的最新读取结束标识的映射关系;
第二获取单元,用于根据所述第一获取单元内获取的所述标识信息获取当前待读取数据的结尾字符;
判断单元,用于判断所述第二获取单元获取的所述当前待读取数据的结尾字符是否与预设结束字符一致;其中,所述当前待读取数据为所述读取结束标识对应的文件内容;
读取单元,用于当所述判断单元确定所述当前待读取数据的结尾字符与所述预设结束字符一致时,读取所述当前待读取数据;
第一处理单元,用于在所述读取单元读取所述当前待读取数据后,继续获取后续待读取数据的结尾字符,直到确定后续待读取数据的结尾字符与所述预设结束字符不一致为止;
第二处理单元,用于当所述判断单元确定所述当前待读取数据的结尾字符与所述预设结束字符不一致时,暂停读取所述当前待读取数据,直到确定所述当前待读取数据的结尾字符与所述预设结束字符一致后,读取所述当前待读取数据。
10.根据权利要求9所述的装置,其特征在于,若所述读取结束标识为文件内容最大行号,所述装置还包括:
第三获取单元,用于在所述第一获取单元获取文件属性列表中日志文件内容的最新读取结束标记之前,获取配置文件中目标文件夹的存储路径;所述目标文件夹中包含多个日志文件;
查找单元,用于根据所述第三获取单元获取的所述存储路径查找所述目标文件夹;
第四获取单元,用于获取所述查找单元查找的所述目标文件夹下所有日志文件的文件属性;其中,所述文件属性包括日志文件的名称、日志文件的最后修改时间及文件内容最大行号;
记录单元,用于将所述第四获取单元获取的所述日志文件对应的日志文件的名称、日志文件的最后修改时间及文件内容最大行号记录于所述文件属性列表中。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
监控单元,用于在所述记录单元将所述日志文件对应的日志文件的名称、日志文件的最后修改时间及文件内容最大行号记录于所述文件属性列表中之后,对所述目标文件夹下的所有日志文件进行监控;
第一确定单元,用于确定所述监控单元监控的所述目标日志文件夹是否存在更新;
第二确定单元,用于当所述第一确定单元确定所述目标日志文件夹存在更新时,确定更新的内容是新增日志文件还是日志文件的修改;
添加单元,用于当所述第二确定单元确定更新的内容为新增日志文件时,在所述文件属性列表中增加所述新增日志文件对应的日志文件的名称、新增日志文件的创建时间及文件内容最大行号;
第五获取单元,用于当所述第二确定单元确定更新的内容为日志文件的修改时,获取更新后的日志文件的名称;
第一更新单元,用于对所述文件属性列表中,与日志文件的名称所对应的文件内容最大行号及日志文件的最后修改时间进行更新。
12.根据权利要求11所述的装置,其特征在于,所述第一获取单元包括:
第一获取模块,用于获取所述文件属性列表中记录的日志文件的最后修改时间,并获取当前时间;
比对模块,用于将所述第一获取模块获取的所述日志文件的最后修改时间与所述当前时间进行比对;
第二获取模块,用于当所述比对模块确定所述日志文件的最后修改时间大于所述当前时间时,获取与所述日志文件的最后修改时间对应的所述文件内容最大行号。
13.根据权利要求9所述的装置,其特征在于,所述装置还包括:
配置单元,用于在所述判断单元判断所述当前待读取数据的结尾字符是否与预设结束字符一致之前,对所述预设结束字符进行配置;
所述判断单元包括:
第三获取模块,用于获取所述预设结束字符;
比对模块,用于将所述当前待读取数据的结尾字符与所述第三获取模块获取的所述预设结束字符进行比对;
确定模块,用于根据所述比对模块的比对结果确定所述当前待读取数据的结尾字符与所述预设结束字符是否一致。
14.根据权利要求9-13中任一项所述的装置,其特征在于,所述读取单元包括:
读取模块,用于读取一行文件内容;
封装模块,用于将所述一行文件内容封装成一个当前待读取数据。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
第六获取单元,用于在所述读取单元读取所述当前待读取数据之后,当确定读取终止时,获取读取终止时待读取数据的文件内容行号;
第二更新单元,用于基于所述第六获取单元获取的所述文件内容行号对所述文件属性列表中的文件内容最大行号进行更新;
存储单元,用于将读取的待读取数据发送至预置缓存空间进行暂存。
16.根据权利要求15所述的装置,其特征在于,所述装置还包括:
另存单元,用于将所述文件属性列表另存于预置文件中;
监控单元,用于监控所述文件属性列表是否存在更新;
第三更新单元,用于当确定所述文件属性列表存在更新时,对另存于所述预置文件中的文件属性列表进行同步更新。
17.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至权利要求8中任意一项所述的数据的读取方法。
18.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至权利要求8中任意一项所述的数据的读取方法。
CN201611155181.0A 2016-12-14 2016-12-14 数据的读取方法及装置 Active CN108228613B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611155181.0A CN108228613B (zh) 2016-12-14 2016-12-14 数据的读取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611155181.0A CN108228613B (zh) 2016-12-14 2016-12-14 数据的读取方法及装置

Publications (2)

Publication Number Publication Date
CN108228613A CN108228613A (zh) 2018-06-29
CN108228613B true CN108228613B (zh) 2021-12-07

Family

ID=62651194

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611155181.0A Active CN108228613B (zh) 2016-12-14 2016-12-14 数据的读取方法及装置

Country Status (1)

Country Link
CN (1) CN108228613B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111475517B (zh) * 2020-03-06 2024-02-20 平安科技(深圳)有限公司 数据更新方法、装置、计算机设备及存储介质
CN111563211A (zh) * 2020-04-01 2020-08-21 深信服科技股份有限公司 一种统一资源定位符提取方法、装置、设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102170466A (zh) * 2011-03-29 2011-08-31 中国人民解放军国防科学技术大学 一种数据处理方法及系统
CN102880718A (zh) * 2012-10-12 2013-01-16 互动在线(北京)科技有限公司 一种灵活日志的存贮和获取方法
CN104283719A (zh) * 2014-10-28 2015-01-14 北京国双科技有限公司 一种日志的处理方法、装置及服务器
CN104281672A (zh) * 2014-09-28 2015-01-14 网神信息技术(北京)股份有限公司 日志数据的处理方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007002533A1 (de) * 2007-01-17 2008-08-14 Mindlab Gmbh Netzwerk
ES1137361Y (es) * 2015-02-16 2015-06-02 Reparacion De Vehiculos Ind Pascual S L Dispositivo de proteccion de aforador

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102170466A (zh) * 2011-03-29 2011-08-31 中国人民解放军国防科学技术大学 一种数据处理方法及系统
CN102880718A (zh) * 2012-10-12 2013-01-16 互动在线(北京)科技有限公司 一种灵活日志的存贮和获取方法
CN104281672A (zh) * 2014-09-28 2015-01-14 网神信息技术(北京)股份有限公司 日志数据的处理方法和装置
CN104283719A (zh) * 2014-10-28 2015-01-14 北京国双科技有限公司 一种日志的处理方法、装置及服务器

Also Published As

Publication number Publication date
CN108228613A (zh) 2018-06-29

Similar Documents

Publication Publication Date Title
CN107395659B (zh) 一种业务受理及共识的方法及装置
CN106202235B (zh) 一种数据处理方法及装置
CN111143462B (zh) 数据导出的方法、装置、计算机设备和存储介质
CN110825420A (zh) 分布式集群的配置参数更新方法、装置、设备及存储介质
RU2017106890A (ru) Способ доступа к веб-узлам, устройство и система веб-узла
US20190354716A1 (en) Obfuscation and deletion of personal data in a loosely-coupled distributed system
CN107959695B (zh) 一种数据传输方法及装置
CN110971571A (zh) 一种网站域名的在验证方法及相关装置
CN110489315B (zh) 一种操作请求的跟踪方法、跟踪装置及服务器
US20170270106A1 (en) Methods and apparatuses for storing file path and accessing local file
CN103152391A (zh) 一种日志输出方法和装置
CN107071007B (zh) 一种获取配置资源的方法、装置及客户端
CN111385316A (zh) 资源刷新方法、访问方法及装置
CN112600797A (zh) 异常访问行为的检测方法、装置、电子设备及存储介质
CN106648839B (zh) 数据处理的方法和装置
CN108228613B (zh) 数据的读取方法及装置
CN107220260B (zh) 一种页面显示的方法及装置
CN108062323B (zh) 一种日志读取方法及装置
CN116644250B (zh) 页面检测方法、装置、计算机设备和存储介质
CN106611118B (zh) 申请登录凭证的方法和装置
CN107239475B (zh) 一种调用文件方法及装置
CN107291524B (zh) 一种远程命令的处理方法和装置
CN106911636B (zh) 一种检测网站是否存在后门程序的方法及装置
CN112988776B (zh) 文本解析规则的更新方法、装置、设备及可读存储介质
CN107948234B (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: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Applicant after: Beijing Guoshuang Technology Co.,Ltd.

Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing

Applicant before: Beijing Guoshuang Technology Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant