CN113010480A - 日志处理方法、装置、电子设备及计算机可读存储介质 - Google Patents
日志处理方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113010480A CN113010480A CN202010221595.9A CN202010221595A CN113010480A CN 113010480 A CN113010480 A CN 113010480A CN 202010221595 A CN202010221595 A CN 202010221595A CN 113010480 A CN113010480 A CN 113010480A
- Authority
- CN
- China
- Prior art keywords
- log
- partition
- partitions
- unallocated
- report
- 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.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 39
- 238000003672 processing method Methods 0.000 title claims abstract description 35
- 238000005192 partition Methods 0.000 claims abstract description 349
- 238000012545 processing Methods 0.000 claims abstract description 106
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000000737 periodic effect Effects 0.000 claims abstract description 22
- 230000002776 aggregation Effects 0.000 claims abstract description 18
- 238000004220 aggregation Methods 0.000 claims abstract description 18
- 230000015654 memory Effects 0.000 claims description 27
- 238000009826 distribution Methods 0.000 claims description 22
- 238000013507 mapping Methods 0.000 claims description 16
- 238000012795 verification Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 19
- 238000012384 transportation and delivery Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 239000000523 sample Substances 0.000 description 9
- 238000012549 training Methods 0.000 description 9
- 238000001514 detection method Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 238000009825 accumulation Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 6
- 238000003491 array Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 241000233805 Phoenix Species 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000012550 audit Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- 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/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- 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/182—Distributed 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Library & Information Science (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种日志处理方法、装置、电子设备及计算机可读存储介质;方法包括:对文件***中的日志分区进行周期性查找,得到候选日志分区;其中,所述日志分区用于存储设定周期内产生的增量日志;在所述候选日志分区中确定未分配的日志分区;当所述未分配的日志分区中的增量日志已就绪时,将所述未分配的日志分区分配至计算任务,以通过所述计算任务,对所述未分配的日志分区中的增量日志进行聚合处理,得到日志报表。通过本发明,能够降低存储资源的占用,同时提升日志处理效率。
Description
技术领域
本发明涉及大数据技术,尤其涉及一种日志处理方法、装置、电子设备及计算机可读存储介质。
背景技术
在传统的日志处理过程中,总是先采集日志,并将积累的大批量日志存储至数据库中,当需要时再对数据库中的日志进行相关处理。但是该种方式的时效性较差,并不适用于实时环境。因此,引出了一种新的处理流程,即流式计算,流式计算的核心在于对实时变化的数据流进行分析处理,捕捉其中可用的信息。
在流式计算中,受上游任务的处理能力或者特殊的业务逻辑影响,日志的生成可能会存在延迟,在相关技术提供的方案中,为了减少因延迟带来的计算等待,通常是将已就绪的日志从原始的日志分区搬运到另一个日志分区,以进行计算。但是,该种方式会导致文件***的存储资源占用过高,日志处理的时间开销也较大。
发明内容
本发明实施例提供一种日志处理方法、装置、电子设备及计算机可读存储介质,能够减少存储资源的占用,加快日志处理效率。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种日志处理方法,包括:
对文件***中的日志分区进行周期性查找,得到候选日志分区;其中,所述日志分区用于存储设定周期内产生的增量日志;
在所述候选日志分区中确定未分配的日志分区;
当所述未分配的日志分区中的增量日志已就绪时,将所述未分配的日志分区分配至计算任务,以
通过所述计算任务,对所述未分配的日志分区中的增量日志进行聚合处理,得到日志报表。
本发明实施例提供一种日志处理装置,包括:
查找模块,用于对文件***中的日志分区进行周期性查找,得到候选日志分区;其中,所述日志分区用于存储设定周期内产生的增量日志;
确定模块,用于在所述候选日志分区中确定未分配的日志分区;
分配模块,用于当所述未分配的日志分区中的增量日志已就绪时,将所述未分配的日志分区分配至计算任务,以
通过所述计算任务,对所述未分配的日志分区中的增量日志进行聚合处理,得到日志报表。
本发明实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的日志处理方法。
本发明实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的日志处理方法。
本发明实施例具有以下有益效果:
通过对文件***中的日志分区进行周期性查找,确定出文件***中未分配的日志分区,并将其分配给计算任务进行聚合处理,由于传递的是分配关系,故减少了文件***的存储资源的占用,提升了日志处理的效率。
附图说明
图1是相关技术提供的日志处理过程的一个示意图;
图2是本发明实施例提供的日志处理***的一个可选的架构示意图;
图3是本发明实施例提供的结合区块链网络的日志处理***的一个可选的架构示意图;
图4是本发明实施例提供的服务器的一个可选的架构示意图;
图5是本发明实施例提供的日志处理装置的一个可选的架构示意图;
图6A是本发明实施例提供的日志处理方法的一个可选的流程示意图;
图6B是本发明实施例提供的日志处理方法的一个可选的流程示意图;
图6C是本发明实施例提供的日志处理方法的一个可选的流程示意图;
图7是本发明实施例提供的日志处理过程的一个可选的示意图;
图8是本发明实施例提供的日志处理模块的一个可选的架构示意图;
图9是本发明实施例提供的日志分配过程的一个可选的示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。另外,以下描述中涉及到的“多个”是指至少两个。
在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)文件***:操作***中负责管理和存储文件信息的软件机构,在本发明实施例中,文件***支持存取流式的增量日志,例如文件***可以是分布式文件***,如Hadoop分布式文件***(HDFS,Hadoop Distributed File System)。
2)日志分区:也称目录分区,用于存储设定周期内产生的增量日志。日志分区可通过存储的日志的起始生产时间命名,对命名的时间戳粒度不做限定,例如日志分区以分钟级时间戳命名,且设定周期为1分钟,则命名为202001011000的日志分区用于存储[2020-1-1 10:00:00~2020-1-1 10:00:59]期间产生的增量日志,其中,“2020-1-1”指2020年1月1日,“10:00:00”指10时0分0秒,以此类推。
3)Spark Streaming:一种可实现高吞吐量的、且具备容错机制的实时流数据处理框架,在本发明实施例中,可通过Spark Streaming框架中的计算任务对日志进行聚合处理,生成相应的日志报表。
4)路径:即文件***中的日志所在的路径,不同路径的日志往往类型不同。以日志为广告日志的情况举例,则文件***存储的日志可包括曝光日志、点击日志、计费日志和效果日志,其中每个类型的日志对应的存储路径不同。
5)区块链(Blockchain):由区块(Block)形成的加密的、链式的交易的存储结构。
6)区块链网络(Blockchain Network):通过共识的方式将新区块纳入区块链的一系列的节点的集合。
在对日志的流式计算中,受上游任务的处理能力或者特殊的业务逻辑影响,日志的生成可能会存在延迟,为了减少因延迟带来的计算等待,在相关技术提供的方案中,通常是将已就绪的增量日志从原始日志分区搬运(复制)到目标日志分区,并通过计算任务对搬运后的增量日志进行处理。本发明实施例提供了如图1所示的相关技术中进行日志处理的示意图,在日志处理的过程中,对不同的日志处理实例,通常使用统一的日志搬运模块来进行日志搬运,具体地,当增量日志已就绪时,将已就绪的增量日志从原始日志分区搬运到目标日志分区中,同时在目标日志分区中设置数据就绪的标识。例如在图1中,在10时1分前,对应的增量日志成功生成,未产生延迟,故将就绪的增量日志从原始日志分区202001011000搬运到目标日志分区202001011000,同时在目标日志分区202001011000中设置数据就绪的标识,值得说明的是,图1中原始日志分区和目标日志分区的命名虽然都是202001011000,但两者的存储路径存在差异,例如原始日志分区位于文件***1中,目标日志分区位于文件***2中,当然原始日志分区和目标日志分区也可位于同一个文件***中,且两者的存储路径不同。
当增量日志未就绪时,在对应的目标日志分区中设置数据就绪的标识,并在后续过程中继续探测增量日志是否就绪。例如在图1中,在10时1分至10时2分期间,增量日志的生成出现了延迟,故在目标日志分区202001011001中设置数据就绪的标识,并继续探测10时1分至10时2分期间的增量日志是否就绪。在10时2分至10时3分期间,探测到原始日志分区202001011001中的增量日志已就绪,故将该增量日志搬运到目标日志分区202001011001中,以便对应批次的计算任务进行处理。
相关技术的方案存在以下问题:1)多个日志处理的实例依赖于同一个日志搬运模块,当日志搬运模块故障时,所有日志处理的实例都会陷入停滞,日志处理的稳定性较差;2)日志搬运导致文件***的存储资源占用翻倍;3)当增量日志出现延迟堆积,即多个设定周期的增量日志在某一个设定周期内同时就绪时,会将堆积的增量日志分配给同一个计算任务,导致该计算任务的负载过大;4)日志搬运也会导致日志处理的延迟增加,时间开销较大;5)日志搬运的运维成本较高,体现在日志搬运模块需要单独运维,且在数据回刷(重跑)时,需要修复搬运后的日志,才可修复计算任务,操作较为复杂。
本发明实施例提供一种日志处理方法、装置、电子设备及计算机可读存储介质,能够减少存储资源的占用,加快日志处理效率,下面说明本发明实施例提供的电子设备的示例性应用。
参见图2,图2是本发明实施例提供的日志处理***100的一个可选的架构示意图,为实现支撑一个日志处理应用,终端设备400(示例性示出了终端设备400-1和终端设备400-2)通过网络300-1连接服务器200,服务器200通过网络300-2连接文件***,网络300-1和网络300-2可以是广域网或者局域网,又或者是二者的组合。图2中以文件***为分布式文件***的情况为例,节点500-1至500-3为构成分布式文件***的节点,节点通过提供自身的存储资源,使得分布式文件***具有写入和写出数据的能力,数据即为生产环境中以流式形式生成的增量日志,其中,节点可以是实体机器,也可以是利用虚拟化技术(如容器技术及虚拟机技术等)构建的虚拟机器,本发明实施例对此不做限定。为了便于理解,以日志对应广告业务的情况进行举例说明。图2还示出了用于进行广告投放的后台服务器集群,后台服务器集群包括服务器510-1至510-3,同样地,服务器510-1至510-3可为实体机器或虚拟机器,当然,这里也可使用单个服务器来进行广告投放。
在广告投放的过程中,由广告主投放端制作待投放的广告,并将广告发送至广告***,广告***根据后台服务器集群进行广告投放,例如通过后台服务器集群中的广告投放模型进行预测处理,得到预测结果,并根据预测结果进行投放。一种示例是,预测结果用于表示用户是否会点击该广告,则当预测出用户会点击广告时,将该广告展示给用户。本发明实施例对广告投放模型的类型不做限定,例如可为深度学***台的前端界面。
在广告投放的生产环境,即已投放广告之后,可对广告投放的相关数据进行监测。后台服务器集群在广告投放的同时,记录广告投放的相关数据,生成对应的日志,例如广告的曝光日志(如某广告在某个时间戳曝光)、点击日志、计费日志及效果日志(如成交量及下载应用量等)等不同类型的日志。通过分布式文件***采集后台服务器集群生成的日志,并进行存储,其中,不同类型的日志在分布式文件***中的存储路径通常设置为不同。
日志通常是随着时间流逝不断产生,为了了解广告投放的实时情况,需要对采集的日志进行流式计算。在一些实施例中,终端设备400可在本地执行本发明实施例提供的日志处理方法,具体地,终端设备400向分布式文件***发送处理指令,以对分布式文件***中的日志分区进行周期性查找,将未分配的日志分区中的、已就绪的增量日志发送给计算任务进行聚合处理,得到日志报表。其中,计算任务可由部署Spark Streaming框架的终端设备400或服务器200生成并执行,终端设备400可由业务应用方持有,业务应用方如广告主投放端及广告业务内部运营方等。
服务器200也可以执行本发明实施例提供的日志处理方法,具体地,服务器200根据设定的处理逻辑或终端设备400发送的处理指令,对分布式文件***中的日志分区进行周期性查找,将未分配的日志分区中的、已就绪的增量日志交由服务器200自身生成的计算任务进行聚合处理,得到日志报表。最终,服务器200将日志报表发送至终端设备400,其中,服务器200可将日志报表保存至外部存储中,例如存储至外部的HBase数据库,以使终端设备400在H Base数据库中进行查询,得到日志报表。
本发明实施例对聚合处理得到日志报表的具体方式不做限定,例如可根据实际的广告投放场景设定特定的维度和指标,对增量日志进行分析和聚合。业务应用方在得到日志报表后,可将其展示给外部或内部的客户,以使客户了解广告投放的实时情况,例如具体的点击率和成交量等。除此之外,还可根据业务报表构建训练样本,以对广告***中的广告投放模型进行训练,提升广告投放模型的精度。例如,业务报表包括某用户点击或未点击曝光的广告的记录,则可构建包括该用户的用户特征(包括但不限于年龄、性别、地址及兴趣爱好)、广告的广告特征(包括但不限于广告类型及广告时长)及点击结果(点击或未点击)的训练样本,根据该训练样本训练广告投放模型,以使训练后的广告投放模型的预测结果与实际的点击结果更为接近。当然,除了点击结果之外,训练样本还可包括点击通过率(CTR,Click Through Rate)及点击效果转化率(C VR,Click Value Rate)等,本发明实施例对训练样本的具体内容不做限定。
终端设备400可以在图形界面410(示例性示出了图形界面410-1和图形界面410-2)中显示日志处理过程中的各种结果,例如增量日志及日志报表等。在图2中,示例性地示出了包括广告名称和对应的点击量的日志报表。
本发明实施例也可结合区块链技术实现,区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
参见图3,图3是本发明实施例提供的日志处理***110的一个可选的架构示意图,包括区块链网络600(示例性地示出了节点610-1至节点610-3)、认证中心700、业务***800(示例性地示出了归属于业务***800的电子设备810,电子设备810可以是图2中的服务器200或终端设备400),下面分别进行说明。
区块链网络600的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务***的电子设备例如终端设备和服务器,都可以在不需要授权的情况下接入区块链网络600;以联盟链为例,业务***在获得授权后其下辖的电子设备(例如终端设备/服务器)可以接入区块链网络600,此时,成为区块链网络600中的一类特殊的节点即客户端节点。
需要指出地,客户端节点可以只提供支持业务***发起交易(例如,用于上链存储数据或查询链上数据)功能,对于区块链网络600的原生节点的功能,例如下文的排序功能、共识服务和账本功能等,客户端节点可以缺省或者有选择性(例如,取决于业务***的具体业务需求)地实现。从而,可以将业务***的数据和业务处理逻辑最大程度迁移到区块链网络600中,通过区块链网络600实现数据和业务处理过程的可信和可追溯。
区块链网络600接收来自业务***(例如图3中示出的业务***800)的客户端节点(例如,图3中示出的归属于业务***800的电子设备810)提交的交易,执行交易以更新账本或者查询账本。
下面以业务***接入区块链网络以实现日志报表的上链为例,说明区块链网络的示例性应用。
业务***800的电子设备810接入区块链网络600,成为区块链网络600的客户端节点。电子设备810在根据文件***中的增量日志生成日志报表后,生成提交该日志报表的交易,在交易中指定了实现提交操作需要调用的智能合约以及向智能合约传递的参数,交易还携带了业务***800的数字证书,并将交易广播到区块链网络600。其中,数字证书可由业务***800向认证中心700进行登记注册得到。
区块链网络600中的节点610在接收到交易时,对交易携带的数字证书进行验证,数字证书验证成功后,根据交易中携带的业务***800的身份,确认业务***800是否是具有交易权限,数字签名和权限验证中的任何一个验证判断都将导致交易失败。验证成功后签署节点610自己的数字签名,并继续在区块链网络600中广播。
区块链网络600中具有排序功能的节点610接收到验证成功的交易后,将交易填充到新的区块中,并广播到区块链网络中600提供共识服务的节点。
区块链网络600中的提供共识服务的节点610对新区块进行共识过程以达成一致,提供账本功能的节点将新区块追加到区块链的尾部,并执行新区块中的交易:对于提交日志报表的交易,将日志报表以键值对的形式存储至状态数据库。
下面以业务***接入区块链网络以实现日志报表的查询为例,说明区块链网络的示例性应用。
电子设备810在需要获取日志报表时,生成查询日志报表的交易,同时在交易中指定了实现查询操作需要调用的智能合约以及向智能合约传递的参数,交易还携带了业务***800的数字证书。然后,电子设备810将交易广播到区块链网络600,区块链网络的节点610经验证、区块填充及共识一致后,提供账本功能的节点610将形成的新区块追加到区块链的尾部,并执行新区块中的交易:对于查询日志报表的交易,从状态数据库中查询出日志报表,并将其发送至电子设备810。值得说明的是,状态数据库中存储的数据通常与区块链存储的数据相同,在响应查询交易时,优先根据状态数据库中的数据进行响应,从而提升响应效率。
业务***800执行的查询操作可延伸至任意具有交易权限的其他业务***。举例来说,业务***800是广告业务的内部运营方的***,在通过预先部署的策略得到与文件***中的增量日志对应的业务报表后,将业务报表进行上链。广告主投放端的业务***可向区块链网络600发起查询日志报表的交易,此时广告主投放端的业务***中的电子设备是区块链网络600中的客户端节点。区块链网络的节点610在验证广告主投放端的业务***具有查询的权限后,从区块链(或状态数据库)中查询日志报表,并将日志报表发送至广告主投放端的业务***,广告主投放端的业务***可根据日志报表执行后续操作,如将日志报表展示于前端界面。
下面继续说明本发明实施例提供的电子设备的示例性应用。电子设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端设备,也可以实施为服务器。
下面,以电子设备为服务器的情况为例进行说明。参见图4,图4是本发明实施例提供的服务器200(例如,可以是图2所示的服务器200)的架构示意图,图4所示的服务器200包括:至少一个处理器210、存储器240和至少一个网络接口220。服务器200中的各个组件通过总线***230耦合在一起。可理解,总线***230用于实现这些组件之间的连接通信。总线***230除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线***230。
处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器240可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器240可选地包括在物理位置上远离处理器210的一个或多个存储设备。
存储器240包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本发明实施例描述的存储器240旨在包括任意适合类型的存储器。
在一些实施例中,存储器240能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作***241,包括用于处理各种基本***服务和执行硬件相关任务的***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块242,用于经由一个或多个(有线或无线)网络接口220到达其他计算设备,示例性的网络接口220包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等。
在一些实施例中,本发明实施例提供的日志处理装置可以采用软件方式实现,图4示出了存储在存储器240中的日志处理装置243,其可以是程序和插件等形式的软件,包括以下软件模块:查找模块2431、确定模块2432及分配模块2433,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本发明实施例提供的日志处理装置可以采用硬件方式实现,作为示例,本发明实施例提供的日志处理装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的日志处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Progra mmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmabl e Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
本发明实施例提供的日志处理方法可以由上述的服务器执行,也可以由终端设备(例如,可以是图2所示的终端设备400-1和终端设备400-2)执行,或者由服务器和终端设备共同执行。
下面将结合上文记载的电子设备的示例性应用和结构,说明电子设备中通过嵌入的日志处理装置而实现日志处理方法的过程。
参见图5和图6A,图5是本发明实施例提供的日志处理装置243的架构示意图,示出了通过一系列模块实现指纹处理的流程,图6A是本发明实施例提供的日志处理方法的流程示意图,将结合图5对图6A示出的步骤进行说明。
在步骤101中,对文件***中的日志分区进行周期性查找,得到候选日志分区;其中,日志分区用于存储设定周期内产生的增量日志。
这里,文件***用于采集业务在生产环境中不断生成,即流式增长的增量日志,并通过日志分区的形式存储每一个设定周期内产生的增量日志,设定周期可根据实际应用场景进行设定,如设定为10秒或1分钟等。例如,在日志对应广告业务的情况下,在广告主投放端进行了广告投放之后,即可通过文件***采集广告投放所产生的日志,如实时记录投放的广告被曝光的情况,以及投放的广告是否被用户点击的情况。为了了解业务的实时进展,在本发明实施例中,对文件***中的日志分区进行流式计算,具体进行周期性查找,得到候选日志分区,其中,可确定符合周期性查找的查找时间的日志分区,并将该日志分区和该日志分区之前的所有日志分区均确定为候选日志分区。举例来说,文件***初始的日志分区为202001011000,最新一次周期性查找的查找时间为2020年1月1日10时5分,那么文件***中符合该查找时间的日志分区为202001011004,最终将202001011000至202001011004的日志分区均确定为候选日志分区,在此基础上还可进行进一步筛选,具体在后文进行阐述。值得说明的是,周期性查找的周期可与日志分区对应的设定周期一致,如都为1分钟。
在步骤102中,在候选日志分区中确定未分配的日志分区。
作为示例,参见图5,在确定模块2432中,在候选日志分区中确定未分配给计算任务的日志分区。例如,可在将日志分区分配给计算任务后,为日志分区设置一个已分配标识,则在步骤102中,将候选日志分区中不具有该已分配标识的日志分区,确定为未分配的日志分区。除此之外,也可创建一个数据结构,用于存储文件***中各日志分区的分配状态,通过查询该数据结构,从而确定未分配的日志分区。
在步骤103中,当未分配的日志分区中的增量日志已就绪时,将未分配的日志分区分配至计算任务,以通过计算任务,对未分配的日志分区中的增量日志进行聚合处理,得到日志报表。
作为示例,参见图5,在分配模块2433中,可对文件***进行配置,当日志分区中的增量日志已就绪时,为该日志分区设置就绪标识。当未分配的日志分区具有就绪标识时,确定其中的增量日志已就绪,将该未分配的日志分区分配至计算任务。计算任务用于读取文件***中对应的增量日志,并通过设定的维度和指标,对增量日志进行聚合处理,得到日志报表。其中,维度是指可指定不同值的对象的描述性属性或特征,例如广告业务中的点击量等,指标则是可以按总数或比值衡量的具体维度元素,例如点击量的具体数值,聚合处理对应的维度、指标以及聚合处理的具体方式可根据实际业务场景来设定。另外,本发明实施例对计算任务的类型不做限定,例如可以是通过Spark Streaming框架生成的计算任务。
在图5中,得到日志报表之后,可将日志报表保存至外部存储中,以便业务应用方查看,外部存储包括但不限于HBase数据库、Phoenix数据库、Hive数据库及区块链,其中,业务应用方如广告主投放端及广告业务的内部运营方等。业务应用方在获得业务报表之后,可将业务报表中的数据展示给外部或内部的客户,以使客户了解广告投放的实时情况,例如具体的点击率和成交量等。除此之外,还可根据业务报表构建训练样本,以对广告***中的广告投放模型进行训练,在广告投放的过程中不断提升广告投放模型的精度。例如,业务报表包括某用户点击或未点击曝光的广告的记录,则可构建包括该用户的用户特征(包括但不限于年龄、性别、地址及兴趣爱好)、曝光的广告的广告特征(包括但不限于广告类型及广告时长)及点击结果(点击或未点击)的训练样本,根据该训练样本更新广告投放模型的权重参数,以使更新后的广告投放模型的预测结果与实际的点击结果更为接近。
在一些实施例中,可以通过这样的方式来实现上述的将未分配的日志分区分配至计算任务:当未分配的日志分区的数量未超过负载均衡阈值时,将未分配的日志分区分配至当前批次的计算任务;其中,当前批次为周期性查找的查找时间对应的批次;当未分配的日志分区的数量超过负载均衡阈值时,将未分配的日志分区依次分配至当前批次以及未来批次的计算任务,以使每个批次的计算任务处理日志分区的数量不超过负载均衡阈值。
作为示例,参见图5,在分配模块2433中,可应用负载均衡的方式减小单个计算任务的处理压力。具体地,根据单个计算任务的处理能力设定负载均衡阈值,当未分配的日志分区的数量未超过负载均衡阈值时,将未分配的日志分区分配至当前批次的计算任务,其中,当前批次为周期性查找的查找时间对应的批次,批次之间的间隔可与设定周期相同。当未分配的日志分区的数量超过负载均衡阈值时,将未分配的日志分区依次分配至当前批次以及未来批次的计算任务,直到分配完毕为止,其中,每个批次的计算任务处理日志分区的数量不超过负载均衡阈值。通过上述方式,就算发生了日志堆积的情况,即多个设定周期的增量日志延迟到某一个设定周期内集体就绪,也能够保证单个计算任务的处理压力在合理范围内,有效地平滑了日志堆积对计算任务的瞬时冲击。
在一些实施例中,步骤103之后,还包括:建立并存储分配至计算任务的日志分区与计算任务的批次之间的映射关系,以在计算任务重启时,根据映射关系确定计算任务待处理的日志分区。
在将未分配的日志分区分配至计算任务后,还可建立并存储分配至计算任务的日志分区与计算任务的批次之间的映射关系,该映射关系可以保存在数据库或者区块链等处。在存储了映射关系后,如果出现了计算任务重启、数据回刷或日志报表丢失等情况,则可根据映射关系,来确定每个批次的计算任务需要处理的日志分区,从而重新通过计算任务进行聚合处理,得到日志报表。通过上述方式,提升了日志处理的稳定性和鲁棒性。
在一些实施例中,可以通过这样的方式来实现上述的对文件***中的日志分区进行周期性查找,得到候选日志分区:对文件***中位于多个路径的日志分区进行周期性查找,得到每个路径对应的候选日志分区;其中,不同的路径对应不同类型的日志;
可以通过这样的方式来实现上述的将未分配的日志分区分配至计算任务,以通过计算任务,对未分配的日志分区中的增量日志进行聚合处理,得到日志报表:将多个路径的未分配的日志分区分配至计算任务,以通过计算任务,对多个路径的、未分配的日志分区中的增量日志进行聚合处理,得到日志报表。
由于业务本身具有的复杂性,文件***中可能会包括多个路径的日志,不同的路径对应不同类型的日志,例如在广告业务中,文件***可能会包括曝光日志、点击日志、计费日志和效果日志等多个路径的日志。在进行周期性查找时,对每个路径的日志分区独立地进行周期性查找,得到每个路径对应的候选日志分区。在计算日志报表时,可能会对不同路径的日志共同进行分析,例如需要从曝光日志中获取曝光量,从点击日志中获取点击量,并通过计算点击量/曝光量,得到点击率。故在得到每个路径对应的候选日志分区后,将多个路径的未分配的日志分区分配至计算任务,以通过计算任务,对多个路径的、未分配的日志分区中的增量日志进行聚合处理,得到日志报表。通过上述方式,提升了日志处理的适用性,即可适用于单路日志和多路日志的情况。
通过发明实施例对于图6A的上述示例性实施可知,本发明实施例在文件***中通过周期性查找得到未分配的日志分区,并在其中的增量日志已就绪时,将未分配的日志分区分配给计算任务,以使计算任务处理得到日志报表,由于传递的是日志分区的分配关系,故文件***的存储资源占用较小,同时也提升了处理得到日志报表的效率。
在一些实施例中,参见图6B,图6B是本发明实施例提供的日志处理方法的一个可选的流程示意图,基于图6A,在步骤101之前,还可以在步骤201中,创建并初始化状态数组;状态数组的每一个索引对应一个日志分区。
在本发明实施例中,为了确定文件***中已有的日志分区,可在内存中创建并初始化状态数组,该状态数组的每一个索引对应一个日志分区。这里,状态数组可用于存放与日志分区相关的信息,本发明实施例对信息的类型并不做限定,例如可通过状态数组存储日志分区的分配状态。此外,状态数组的长度可根据设定周期和具体的计算任务而定,例如设定周期为1分钟,计算任务在一年内不会重启,则可创建长度为365*1440的状态数组,以存放一年内的分钟粒度日志分区的信息。
在一些实施例中,可以通过这样的方式来实现上述的创建并初始化状态数组:确定计算任务的启动时间;根据设定回溯时长对启动时间进行回溯处理,并将回溯处理后的时间对应的日志分区确定为初始日志分区;根据初始日志分区,创建并初始化状态数组,以使状态数组中的第一个索引与初始日志分区对应。
为了避免存储资源的浪费,在计算任务启动时,根据计算任务的启动时间创建并初始化状态数组。在此基础上,由于计算任务可能需要对启动时间之前产生的日志进行处理,故根据设定回溯时长对启动时间进行回溯处理,并将回溯处理后的时间对应的日志分区确定为初始日志分区,设定回溯时长可根据实际应用场景来设置。例如,计算任务的启动时间为2020年1月1日10时7分,设定回溯时长为6分钟,则回溯处理后的时间为2020年1月1日10时1分,得到初始日志分区为202001011000。根据初始日志分区创建并初始化状态数组,以使状态数组中的第一个索引与初始日志分区对应,状态数组中的第二个索引与初始日志分区的下一个日志分区对应,以此类推。通过上述方式,在节省存储资源的同时,有效地防止了数据丢失。
在一些实施例中,可以通过这样的方式来实现上述的创建并初始化状态数组:确定日志分区在文件***中的路径;其中,不同的路径对应不同类型的日志;创建并初始化与每个路径一一对应的状态数组。
在本发明实施例中,还可确定日志分区在文件***中的路径,创建并初始化与每个路径一一对应的状态数组,其中,不同的路径对应不同类型的日志。如此,对于多路日志的情况,便可得到与每一路的日志分区对应的状态数组,后续可对每一个状态数组独立地进行周期性查找,提升周期性查找的并行效果。
在图6B中,图6A示出的步骤101可以通过步骤202至步骤203实现,将结合各步骤进行说明。
在步骤202中,确定文件***中符合周期性查找的查找时间的日志分区,并将与符合查找时间的日志分区对应的索引,确定为目标索引。
作为示例,参见图5,在查找模块2431中,在对文件***进行周期性查找时,确定文件***中符合周期性查找的查找时间的日志分区,并将状态数组的、与符合查找时间的日志分区对应的索引,确定为目标索引。
在步骤203中,将状态数组中与索引范围对应的日志分区,确定为候选日志分区;其中,索引范围是状态数组中的第一个索引到目标索引的范围。
作为示例,参见图5,在查找模块2431中,将状态数组中第一个索引到目标索引的范围,确定为索引范围,并将状态数组中与索引范围对应的日志分区,均确定为候选日志分区。如此,便可在周期性查找的过程中,确定最新的日志分区和历史的日志分区,以构成候选日志分区。
在一些实施例中,可以通过这样的方式来实现上述的创建并初始化状态数组:创建设定长度的状态数组,并将状态数组内的所有日志分区的分配状态均初始化为未分配;
可以通过这样的方式来实现上述的在候选日志分区中确定未分配的日志分区:当状态数组用于存储日志分区的第一分配状态时,将第一分配状态为未分配的候选日志分区,确定为未分配的日志分区;当状态数组用于存储日志分区的第二分配状态时,将候选日志分区确定为未分配的日志分区;其中,第一分配状态用于表示日志分区已分配或未分配;第二分配状态用于表示日志分区未分配。
在本发明实施例中,状态数组可用于存储日志分区的分配状态,由于计算任务在启动时,文件***中的日志分区通常并未分配,故在创建状态数组时,将状态数组内的所有日志分区的分配状态均初始化为未分配,例如用0表示已分配,用1表示未分配,则可将状态数组中的所有数值均初始化为1。
更具体地,可创建两种类型的状态数组,一种用于存储日志分区的第一分配状态,该第一分配状态用于表示日志分区已分配或未分配;另一种状态数组用于存储日志分区的第二分配状态,该第二分配状态仅用于表示日志分区未分配。对于第一种情况,在确定出候选日志分区后,将第一分配状态为未分配的候选日志分区,确定为未分配的日志分区;对于第二种情况,由于确定出的候选日志分区都是具有第二分配状态的日志分区,故将所有的候选日志分区均确定为未分配的日志分区。通过上述方式,提升了创建并初始化状态数组的灵活性,并且通过状态数组存放的分配状态,能够更准确地确定为未分配的日志分区。
在一些实施例中,步骤103之后,还包括:当状态数组用于存储日志分区的第一分配状态时,将分配至计算任务的日志分区的第一分配状态更新为已分配;当状态数组用于存储日志分区的第二分配状态时,在状态数组中移除分配至计算任务的日志分区的第二分配状态,并更新状态数组的索引。
对于状态数组用于存储日志分区的第一分配状态的情况,在确定出未分配的日志分区,并将其分配至计算任务之后,对状态数组进行更新,具体将已分配至计算任务的日志分区的第一分配状态更新为已分配。对于状态数组用于存储日志分区的第二分配状态的情况,在状态数组中移除已分配至计算任务的日志分区的第二分配状态,并且重新对状态数组的索引进行排列,调整索引与日志分区之间的对应关系。通过上述方式,实现了状态数组的实时更新,提升了后续分配的准确性。
通过发明实施例对于图6B的上述示例性实施可知,本发明实施例通过创建状态数组,并通过状态数组的索引来体现文件***中已有的日志分区情况,提升了周期性查找的准确性。
在一些实施例中,参见图6C,图6C是本发明实施例提供的日志处理方法的一个可选的流程示意图,基于图6A,在步骤103之后,还可以在步骤301中,生成包括公钥和私钥的非对称密钥对,并将日志报表以及公钥发送至区块链网络,以使区块链网络的节点通过公钥对日志报表进行加密处理,并将加密后的日志报表以区块形式存储至区块链中。
在通过计算任务生成日志报表后,可将日志报表保存至外部存储,以便涉及到业务的相关部门和人员查看。在本发明实施例中,可将日志报表以交易形式发送至区块链网络,区块链网络的节点经验证后将日志报表填充至新区块,并在对新区块共识一致时,将新区块追加至区块链的尾部。完成日志报表的上链后,可向区块链网络发送查询请求,从而查询区块链上的日志报表。值得说明的是,在将新区块追加至区块链的尾部的同时,还可将日志报表存储至状态数据库,并优先根据状态数据库中的数据响应查询请求,从而提升响应效率。
由于区块链具有公开透明的特性,为了保证区块链上的日志报表的保密性,避免恶意方非法查询日志报表,在本发明实施例中,可生成包括公钥和私钥的非对称密钥对,这里对非对称密钥对的生成方式不做限定,例如可通过RSA加密算法生成。然后,将日志报表以及公钥以交易形式发送至区块链网络,区块链网络根据预先部署的智能合约,通过公钥对日志报表进行加密处理,并将加密处理的日志报表填充至新区块中,最终在对新区块共识一致时,将新区块追加至区块链的尾部。
在一些实施例中,可以通过这样的方式来实现上述的将日志报表以及公钥发送至区块链网络:对日志报表进行哈希处理,得到摘要信息;根据私钥对摘要信息进行加密处理,得到数字签名;将日志报表、公钥及数字签名发送至区块链网络,以使区块链网络的节点根据公钥和数字签名,对接收到的日志报表进行完整性验证,并在完整性验证成功时,执行对日志报表的加密及存储。
为了保证数据上传的完整性,在本发明实施例中,可对日志报表进行哈希处理,得到摘要信息,为了便于区分,将这里得到的摘要信息命名为第一摘要信息。然后,根据私钥对第一摘要信息进行加密处理,得到数字签名,将日志报表、公钥及数字签名以交易形式发送至区块链网络。区块链网络的节点在接收到该交易后,根据接收到的公钥对数字签名进行解密,同时对接收到的日志报表进行哈希处理,得到第二摘要信息。当对数字签名进行解密得到的结果与第二摘要信息一致时,完整性验证成功,区块链网络的节点通过公钥对日志报表进行加密处理,并将加密后的日志报表以区块形式存储于区块链中;当对数字签名进行解密得到的结果与第二摘要信息不一致时,完整性验证失败,区块链网络的节点可提示日志报表的上传方进行重新上传。通过上述方式,保证了区块链上数据的准确性。
在步骤302中,将私钥发送至具有对日志报表的查看权限的权限方,以使权限方根据私钥,对区块链中的加密后的日志报表进行解密处理。
除了上传日志报表的一方外,日志报表还可能需要被其他具有查看权限的权限方查询,故将私钥发送至权限方。权限方可向区块链网络发送查询请求,以获取区块链中的加密后的日志报表,并通过私钥对加密后的日志报表进行解密处理。如此,区块链公开的是加密后的日志报表,故就算恶意方取得了加密后的日志报表,也无法得知其中的真实内容,提升了安全系数。
通过发明实施例对于图6C的上述示例性实施可知,本发明实施例通过将得到的业务报表进行上链,从而能够向查询方提供更为准确的业务报表数据,并且,通过加密的方式提升了链上数据的安全性,有效地避免了恶意方查询。
下面,将说明本发明实施例在一个实际的应用场景中的示例性应用,为了便于理解,以日志对应广告业务的情况进行举例说明。
作为示例,参见图7,在日志准备的环节中,对广告投放的相关数据进行监测,通过分布式文件***,如图7所示的HDFS采集广告投放所产生的日志,并以日志分区的形式存储,HDFS可采集不同类型的日志,包括但不限于实时日志和离线日志,不同类型的日志在HDFS中的路径不同。
在数据计算的环节中,通过Spark Streaming计算框架生成计算任务,并通过计算任务对日志进行聚合处理,其中,可利用日志处理模块完成日志的探测、分配及注册。具体地,为了明确HDFS中的日志分区是否被分配过,在内存中用BitSet(对应上文的状态数组)存储日志分区的分配状态,BitSet中的每一位数值用于表示对应的日志分区是否被分配过,数值1用于表示未分配(即待分配),数值0用于表示已分配(即不可再分配)。在计算任务首次启动时,从H Base数据库中初始化BitSet,初始化过程如下:
1)计算任务首次启动时,为HDFS中的每路日志均申请一个长度为365*1440的BitSet,并将BitSet中的数组全部初始化为1,其中,该长度足够存放一年内产生的分钟粒度的日志分区的分配状态,计算任务通常一年内不会重启。当然,也可根据实际应用场景设定其他可用的长度。
2)确定BitSet中Index=0的位置(即第一个索引)对应的日志分区,具体地,获取设定回溯时长trace_minutes,并根据trace_minutes对启动时间进行回溯,将回溯后的时间对应的日志分区,确定为Index=0的位置对应的日志分区。例如,启动时间为2020年1月1日10时7分,trace_minutes为6分钟,则In dex=0的位置对应的日志分区是202001011000。
3)确定BitSet的索引与日志分区之间的对应关系,为了便于理解,以Pt表示日志分区,FirstPt表示Index=0的位置对应的日志分区,则Index与Pt之间的转换公式为:
Pt=FirstPt+Index*genInterval
Index=(Pt-FirstPt)/genInterval
其中,genInterval表示日志产生的间隔,即对应上文的设定周期。值得说明的是,除了BitSet外,还可用TreeSet来存储未分配的日志分区的信息,从而减少存储资源占用,为了便于理解,后文统一以BitSet进行说明。
完成BitSet的初始化后,可通过日志处理模块进行日志探测、日志分配及日志注册,如图8所示,日志处理模块包括日志探测模块、日志分配模块及日志注册模块。在日志探测模块中,周期性地探测新日志的产生,探测范围是当前和历史未被分配过的日志分区。具体地,确定符合当前的探测时间(对应上文的查找时间)的日志分区,并确定该日志分区在BitSet中对应的索引,例如当前的探测时间为2020年1月1日10时6分,则对应的日志分区为202001011005,其在BitSet中的索引为5,那么在BitSet index=[0~5]的范围内进行查找,将其中数值为1的日志分区确定为未分配的日志分区,例如未分配的日志分区包括202001011001、202001011002和202001011005。然后,查看未分配的日志分区中的增量日志是否已就绪,如果已就绪,则将未分配的日志分区记录下来,发送至日志分配模块,这里以上文3个未分配的日志分区中的增量日志均已就绪进行举例说明。
在日志分配模块中,计算任务的负载均衡阈值为3,收到3个未分配的日志分区后,由于数量并未超过负载均衡阈值,故将3个未分配的日志分区都分配给当前批次的计算任务,其中,当前批次可为探测时间对应的10时6分的批次。当日志分配模块收到的未分配的日志分区的数量超过负载均衡阈值时,将未分配的日志分区分配给当前批次和未来批次的计算任务,以使每个批次的计算任务处理日志分区的数量不超过负载均衡阈值。
在日志注册模块中,主要涉及两部分的注册操作。其一是注册计算任务的批次与日志分区之间的映射关系,这里可采用HBase数据库存储计算任务的批次与日志分区之间的键值对映射关系,数据结构如下:
键(Key):${job_name}_${log_name}_${bt_stamp}
值(Value):${pt_stamp0}_${pt_stamp1}_${pt_stamp2}
其中,job_name为Spark Streaming框架下计算任务的名称,log_name表示计算任务所处理的日志的名称,bt_stamp是计算任务的批次的时间戳,pt_stamp是日志分区的时间戳。
例如,在2020年1月1日10时5分,HBase数据库中存储的映射关系如下:
Key | Value |
job_1_trace_202001011001 | 202001011000 |
job_1_trace_202001011002 | |
job_1_trace_202001011003 | |
job_1_trace_202001011004 | |
job_1_trace_202001011005 | 202001011003_202001011004 |
如上表,在202001011005批次的计算任务中,计算了2个日志分区的名称为trace的增量日志,日志分区分别为202001011003和202001011004。值得说明的是,这里应用的是分钟粒度的时间戳,但这并不构成对本发明实施例的限制,例如在实际应用场景中还可应用秒级时间戳。
其二是更新BitSet中的数值。与上述映射关系对应地,在2020年1月1日10时5分,BitSet中的数值如下:
0 | 1 | 1 | 0 | 0 | 1 | 1 | …… |
其中,第一个数值0即为Index=0的位置,对应的日志分区为202001011000,以此类推。
在2020年1月1日10时6分,将未分配的日志分区202001011001、202001011002和202001011005分配给计算任务后,在HBase数据库中进行映射关系的注册,注册结果如下:
Key | Value |
job_1_trace_202001011001 | 202001011000 |
job_1_trace_202001011002 | |
job_1_trace_202001011003 | |
job_1_trace_202001011004 | |
job_1_trace_202001011005 | 202001011003_202001011004 |
job_1_trace_202001011006 | 202001011001_202001011002_202001011005 |
同时,更新BitSet中的数值,结果如下:
0 | 0 | 0 | 0 | 0 | 0 | 1 | …… |
日志处理模块在完成日志探测、日志分配及日志注册的工作后,可将完成标识(Meta信息)保存在HBase数据库中,作为Spark Streaming框架的一个检查点(Checkpoint),便于在出现故障时进行数据回刷。计算任务通过设定的维度和指标,对增量日志进行解析和聚合,并将得到的中间结果存储至HDFS。在输出时,读取HDFS的多个中间结果,将合并后得到的业务报表输出到外部存储,每当输出完成,会将另一个完成标识记录在HBase数据库中,建立Spar k Streaming框架的另一个检查点。本发明实施例对外部存储的类型不做限定,例如可以是图7中所示的HDFS、HBase数据库、Phoenix数据库和Hive数据库,还可以是区块链。广告业务的业务应用方(包括但不限于图7所示的广告主投放端和内部运营方)可通过读取外部存储中的业务报表,从而执行相应操作。例如,将业务报表中的数据展示给外部或内部的客户,以使客户了解广告投放的实时情况。又例如,在通过广告投放模型实现投放的情况下,可根据业务报表中的数据构建训练样本,并根据训练样本对广告投放模型进行训练,从而提升广告投放模型的精度。
相较于相关技术提供的日志搬运模块,本发明实施例的日志处理模块能够实现以下技术效果:
1)解除单点依赖,提升***稳定性和鲁棒性。对于每一个Spark Streamin g实例来说,都有一个独立的日志处理模块,不再需要依赖公共的日志搬运模块,减少了故障所带来的不利影响。
2)日志处理模块通过传递分配关系,告知计算任务应该读取哪些日志分区的增量日志,避免日志复制,节省了较多的存储资源。经发明人实验验证,在HDFS的备份机制为3备份、且生存时间值(TTL,Time To Live)为30的情况下,相较于相关技术提供的方案,本发明实施例能够节省390太字节(TB)的存储资源。
3)通过负载均衡的机制,降低计算波动。日志可能因长时间故障造成大量日志堆积,本发明实施例在进行日志分配时,依据计算任务的处理能力,限制单个计算任务最多分配的日志分区的数量,从而平滑日志堆积对计算任务的瞬时冲击。作为示例,参见图9,HDFS用于存储曝光和点击的两路日志,图9中将曝光日志的日志分区用实线绘制,将点击日志的日志分区用虚线绘制,以示区别。在10时0分至11时0分期间,点击日志发生了故障,此期间的点击日志堆积在11时0分至11时1分期间产生,针对该情况,通过负载均衡的机制进行分配,将曝光日志的日志分区1100和点击日志的日志分区1100、1000和1001分配至批次为1101的计算任务,并将剩余的堆积日志平摊到后续的计算任务中,保证每个计算任务所处理的日志分区不超过4个。
4)消除了日志搬运模块在日志探测和复制过程中的时间开销,降低了日志处理的延迟。经发明人实验验证,将日志搬运模块替换为日志处理模块后,日志处理的延迟从180秒降至120秒,取得了33%左右的收益。
5)降低了运维成本,一来日志处理模块本身不需要运维,二来在数据回刷时,根据已注册的信息重跑计算任务即可,不需要修复搬运后的日志。
下面继续说明本发明实施例提供的日志处理装置243实施为软件模块的示例性结构,在一些实施例中,如图4所示,存储在存储器240的日志处理装置243中的软件模块可以包括:查找模块2431,用于对文件***中的日志分区进行周期性查找,得到候选日志分区;其中,日志分区用于存储设定周期内产生的增量日志;确定模块2432,用于在候选日志分区中确定未分配的日志分区;分配模块2433,用于当未分配的日志分区中的增量日志已就绪时,将未分配的日志分区分配至计算任务,以通过计算任务,对未分配的日志分区中的增量日志进行聚合处理,得到日志报表。
在一些实施例中,日志处理装置243还包括:数组创建模块,用于创建并初始化状态数组;状态数组的每一个索引对应一个日志分区;
查找模块2431,还用于:确定文件***中符合周期性查找的查找时间的日志分区,并将与符合查找时间的日志分区对应的索引,确定为目标索引;将状态数组中与索引范围对应的日志分区,确定为候选日志分区;其中,索引范围是状态数组中的第一个索引到目标索引的范围。
在一些实施例中,数组创建模块,还用于:确定计算任务的启动时间;根据设定回溯时长对启动时间进行回溯处理,并将回溯处理后的时间对应的日志分区确定为初始日志分区;根据初始日志分区,创建并初始化状态数组,以使状态数组中的第一个索引与初始日志分区对应。
在一些实施例中,数组创建模块,还用于:创建设定长度的状态数组,并将状态数组内的所有日志分区的分配状态均初始化为未分配;
确定模块2432,还用于:当状态数组用于存储日志分区的第一分配状态时,将第一分配状态为未分配的候选日志分区,确定为未分配的日志分区;当状态数组用于存储日志分区的第二分配状态时,将候选日志分区确定为未分配的日志分区;其中,第一分配状态用于表示日志分区已分配或未分配;第二分配状态用于表示日志分区未分配。
在一些实施例中,日志处理装置243还包括:第一更新模块,用于当状态数组用于存储日志分区的第一分配状态时,将分配至计算任务的日志分区的第一分配状态更新为已分配;第二更新模块,用于当状态数组用于存储日志分区的第二分配状态时,在状态数组中移除分配至计算任务的日志分区的第二分配状态,并更新状态数组的索引。
在一些实施例中,数组创建模块,还用于:确定日志分区在文件***中的路径;其中,不同的路径对应不同类型的日志;创建并初始化与每个路径一一对应的状态数组。
在一些实施例中,分配模块2433,还用于:当未分配的日志分区的数量未超过负载均衡阈值时,将未分配的日志分区分配至当前批次的计算任务;其中,当前批次为周期性查找的查找时间对应的批次;当未分配的日志分区的数量超过负载均衡阈值时,将未分配的日志分区依次分配至当前批次以及未来批次的计算任务,以使每个批次的计算任务处理日志分区的数量不超过负载均衡阈值。
在一些实施例中,日志处理装置243还包括:映射建立模块,用于建立并存储分配至计算任务的日志分区与计算任务的批次之间的映射关系,以在计算任务重启时,根据映射关系确定计算任务待处理的日志分区。
在一些实施例中,查找模块2431,还用于:对文件***中位于多个路径的日志分区进行周期性查找,得到每个路径对应的候选日志分区;其中,不同的路径对应不同类型的日志;
分配模块2433,还用于:将多个路径的未分配的日志分区分配至计算任务,以通过计算任务,对多个路径的、未分配的日志分区中的增量日志进行聚合处理,得到日志报表。
在一些实施例中,日志处理装置243还包括:上链模块,用于将日志报表发送至区块链网络,以使区块链网络的节点将日志报表填充至新区块,并在对新区块共识一致时,将新区块追加至区块链的尾部。
在一些实施例中,上链模块还用于:生成包括公钥和私钥的非对称密钥对,并将日志报表以及公钥发送至区块链网络,以使区块链网络的节点通过公钥对日志报表进行加密处理,并将加密后的日志报表以区块形式存储至区块链中;
日志处理装置243还包括:私钥发送模块,用于将私钥发送至具有对日志报表的查看权限的权限方,以使权限方根据私钥,对区块链中的加密后的日志报表进行解密处理。
在一些实施例中,上链模块还用于:对日志报表进行哈希处理,得到摘要信息;根据私钥对摘要信息进行加密处理,得到数字签名;将日志报表、公钥及数字签名发送至区块链网络,以使区块链网络的节点根据公钥和数字签名,对接收到的日志报表进行完整性验证,并在完整性验证成功时,执行对日志报表的加密及存储。
本发明实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的方法,例如,如图6A、图6B或图6C示出的日志处理方法。值得说明的是,计算机包括终端设备和服务器在内的各种计算设备。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EP ROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件***中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(H TML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上,通过本发明实施例能够实现以下技术效果:
1)针对每一个计算实例,单独进行日志处理,解除了单点依赖,提升***稳定性和鲁棒性。就算某一个计算实例的日志处理过程出现了故障,也不会对其他计算实例造成不利影响。
2)通过传递分配关系,告知计算任务应该读取哪些日志分区的增量日志,避免日志复制,节省了文件***的存储资源,同时也降低了日志处理的延迟。
3)在进行日志分区分配时,根据计算任务的处理能力,限制单个计算任务最多分配的日志分区的数量,从而平滑日志堆积对计算任务的瞬时冲击,降低了计算波动。
4)通过建立并存储分配至计算任务的日志分区与计算任务的批次之间的映射关系,使得在任务重启时,能够快速确定计算任务需要处理的日志分区,降低了运维成本。
5)通过将得到的日志报表进行上链保存,提升了链上数据的准确性,并且通过对日志报表进行加密处理,提升了日志报表的安全性和保密性。
以上,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
Claims (15)
1.一种日志处理方法,其特征在于,包括:
对文件***中的日志分区进行周期性查找,得到候选日志分区;其中,所述日志分区用于存储设定周期内产生的增量日志;
在所述候选日志分区中确定未分配的日志分区;
当所述未分配的日志分区中的增量日志已就绪时,将所述未分配的日志分区分配至计算任务,以
通过所述计算任务,对所述未分配的日志分区中的增量日志进行聚合处理,得到日志报表。
2.根据权利要求1所述的日志处理方法,其特征在于,
所述对文件***中的日志分区进行周期性查找,得到候选日志分区之前,还包括:
创建并初始化状态数组;所述状态数组的每一个索引对应一个日志分区;
所述对文件***中的日志分区进行周期性查找,得到候选日志分区,包括:
确定所述文件***中符合周期性查找的查找时间的日志分区,并
将与符合所述查找时间的日志分区对应的索引,确定为目标索引;
将所述状态数组中与索引范围对应的日志分区,确定为候选日志分区;
其中,所述索引范围是所述状态数组中的第一个索引到所述目标索引的范围。
3.根据权利要求2所述的日志处理方法,其特征在于,所述创建并初始化状态数组,包括:
确定所述计算任务的启动时间;
根据设定回溯时长对所述启动时间进行回溯处理,并将回溯处理后的时间对应的日志分区确定为初始日志分区;
根据所述初始日志分区,创建并初始化状态数组,以使
所述状态数组中的第一个索引与所述初始日志分区对应。
4.根据权利要求2所述的日志处理方法,其特征在于,
所述创建并初始化状态数组,包括:
创建设定长度的状态数组,并将所述状态数组内的所有日志分区的分配状态均初始化为未分配;
所述在所述候选日志分区中确定未分配的日志分区,包括:
当所述状态数组用于存储日志分区的第一分配状态时,将第一分配状态为未分配的所述候选日志分区,确定为未分配的日志分区;
当所述状态数组用于存储日志分区的第二分配状态时,将所述候选日志分区确定为未分配的日志分区;
其中,所述第一分配状态用于表示日志分区已分配或未分配;所述第二分配状态用于表示日志分区未分配。
5.根据权利要求4所述的日志处理方法,其特征在于,所述将所述未分配的日志分区分配至计算任务之后,还包括:
当所述状态数组用于存储日志分区的第一分配状态时,将分配至所述计算任务的日志分区的第一分配状态更新为已分配;
当所述状态数组用于存储日志分区的第二分配状态时,在所述状态数组中移除分配至所述计算任务的日志分区的第二分配状态,并更新所述状态数组的索引。
6.根据权利要求2所述的日志处理方法,其特征在于,所述创建并初始化状态数组,包括:
确定所述日志分区在所述文件***中的路径;其中,不同的所述路径对应不同类型的日志;
创建并初始化与每个所述路径一一对应的状态数组。
7.根据权利要求1至6任一项所述的日志处理方法,其特征在于,所述将所述未分配的日志分区分配至计算任务,包括:
当所述未分配的日志分区的数量未超过负载均衡阈值时,将所述未分配的日志分区分配至当前批次的计算任务;其中,所述当前批次为周期性查找的查找时间对应的批次;
当所述未分配的日志分区的数量超过所述负载均衡阈值时,将所述未分配的日志分区依次分配至所述当前批次以及未来批次的计算任务,以使
每个批次的计算任务处理所述日志分区的数量不超过所述负载均衡阈值。
8.根据权利要求7所述的日志处理方法,其特征在于,所述将所述未分配的日志分区分配至计算任务之后,还包括:
建立并存储分配至所述计算任务的日志分区与所述计算任务的批次之间的映射关系,以
在所述计算任务重启时,根据所述映射关系确定所述计算任务待处理的日志分区。
9.根据权利要求1至6任一项所述的日志处理方法,其特征在于,
所述对文件***中的日志分区进行周期性查找,得到候选日志分区,包括:
对文件***中位于多个路径的日志分区进行周期性查找,得到每个所述路径对应的候选日志分区;其中,不同的所述路径对应不同类型的日志;
所述将所述未分配的日志分区分配至计算任务,以通过所述计算任务,对所述未分配的日志分区中的增量日志进行聚合处理,得到日志报表,包括:
将多个所述路径的所述未分配的日志分区分配至计算任务,以
通过所述计算任务,对多个所述路径的、所述未分配的日志分区中的增量日志进行聚合处理,得到日志报表。
10.根据权利要求1至6任一项所述的日志处理方法,其特征在于,所述将所述未分配的日志分区分配至计算任务之后,还包括:
将所述日志报表发送至区块链网络,以使
所述区块链网络的节点将所述日志报表填充至新区块,并在对所述新区块共识一致时,将所述新区块追加至区块链的尾部。
11.根据权利要求10所述的日志处理方法,其特征在于,
所述将所述日志报表发送至区块链网络,包括:
生成包括公钥和私钥的非对称密钥对,并将所述日志报表以及所述公钥发送至区块链网络,以使
所述区块链网络的节点通过所述公钥对所述日志报表进行加密处理,并将加密后的所述日志报表以区块形式存储至区块链中;
所述日志处理方法,还包括:
将所述私钥发送至具有对所述日志报表的查看权限的权限方,以使
所述权限方根据所述私钥,对所述区块链中的加密后的所述日志报表进行解密处理。
12.根据权利要求11所述的日志处理方法,其特征在于,所述将所述日志报表以及所述公钥发送至区块链网络,包括:
对所述日志报表进行哈希处理,得到摘要信息;
根据所述私钥对所述摘要信息进行加密处理,得到数字签名;
将所述日志报表、所述公钥及所述数字签名发送至所述区块链网络,以使
所述区块链网络的节点根据所述公钥和所述数字签名,对接收到的所述日志报表进行完整性验证,并在完整性验证成功时,执行对所述日志报表的加密及存储。
13.一种日志处理装置,其特征在于,包括:
查找模块,用于对文件***中的日志分区进行周期性查找,得到候选日志分区;其中,所述日志分区用于存储设定周期内产生的增量日志;
确定模块,用于在所述候选日志分区中确定未分配的日志分区;
分配模块,用于当所述未分配的日志分区中的增量日志已就绪时,将所述未分配的日志分区分配至计算任务,以
通过所述计算任务,对所述未分配的日志分区中的增量日志进行聚合处理,得到日志报表。
14.一种电子设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至12任一项所述的日志处理方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至12任一项所述的日志处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010221595.9A CN113010480B (zh) | 2020-03-26 | 2020-03-26 | 日志处理方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010221595.9A CN113010480B (zh) | 2020-03-26 | 2020-03-26 | 日志处理方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113010480A true CN113010480A (zh) | 2021-06-22 |
CN113010480B CN113010480B (zh) | 2024-03-19 |
Family
ID=76383114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010221595.9A Active CN113010480B (zh) | 2020-03-26 | 2020-03-26 | 日志处理方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113010480B (zh) |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144202A1 (en) * | 2003-12-19 | 2005-06-30 | Chen Raymond C. | System and method for supporting asynchronous data replication with very short update intervals |
US8595271B1 (en) * | 2010-12-15 | 2013-11-26 | Symantec Corporation | Systems and methods for performing file system checks |
CN103838867A (zh) * | 2014-03-20 | 2014-06-04 | 网宿科技股份有限公司 | 日志处理方法和装置 |
CN105122241A (zh) * | 2013-03-15 | 2015-12-02 | 亚马逊科技公司 | 具有数据库引擎和独立分布式存储服务的数据库*** |
CN105210062A (zh) * | 2013-03-15 | 2015-12-30 | 亚马逊科技公司 | 用于分布式数据库***的***范围检查点避免 |
CN106951557A (zh) * | 2017-03-31 | 2017-07-14 | 北京希嘉创智教育科技有限公司 | 日志关联方法、装置和应用其的计算机*** |
CN107851267A (zh) * | 2015-10-07 | 2018-03-27 | 谷歌有限责任公司 | 用于经由动态分配的虚拟电话号码来同步与语音呼叫相关的数据的***和方法 |
CN108365971A (zh) * | 2018-01-10 | 2018-08-03 | 深圳市金立通信设备有限公司 | 日志解析方法、设备及计算机可读介质 |
CN108537544A (zh) * | 2018-04-04 | 2018-09-14 | 中南大学 | 一种交易***实时监控方法及其监控*** |
US20180314726A1 (en) * | 2017-04-28 | 2018-11-01 | Splunk Inc. | Computing and replicating event deltas for mutable events in a distributed system |
US20180337772A1 (en) * | 2017-05-22 | 2018-11-22 | Microsoft Technology Licensing, Llc | High integrity logs for distributed software services |
CN108932241A (zh) * | 2017-05-24 | 2018-12-04 | 腾讯科技(深圳)有限公司 | 日志数据统计方法、装置及节点 |
US10275449B1 (en) * | 2018-02-19 | 2019-04-30 | Sas Institute Inc. | Identification and parsing of a log record in a merged log record stream |
CN109902074A (zh) * | 2019-04-17 | 2019-06-18 | 江苏全链通信息科技有限公司 | 基于数据中心的日志存储方法和*** |
CN110086790A (zh) * | 2019-04-17 | 2019-08-02 | 江苏全链通信息科技有限公司 | 基于数据中心的日志存储方法和*** |
CN110083656A (zh) * | 2013-03-15 | 2019-08-02 | 亚马逊科技公司 | 日志记录管理 |
CN110502494A (zh) * | 2019-08-30 | 2019-11-26 | 北京思维造物信息科技股份有限公司 | 日志处理方法、装置、计算机设备及存储介质 |
WO2019228569A2 (en) * | 2019-09-12 | 2019-12-05 | Alibaba Group Holding Limited | Log-structured storage systems |
CN110572281A (zh) * | 2019-08-23 | 2019-12-13 | 华南理工大学 | 一种基于区块链的可信日志记录方法及*** |
CN110855477A (zh) * | 2019-10-29 | 2020-02-28 | 浙江大搜车软件技术有限公司 | 链路日志监控方法、装置、计算机设备和存储介质 |
-
2020
- 2020-03-26 CN CN202010221595.9A patent/CN113010480B/zh active Active
Patent Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144202A1 (en) * | 2003-12-19 | 2005-06-30 | Chen Raymond C. | System and method for supporting asynchronous data replication with very short update intervals |
US8595271B1 (en) * | 2010-12-15 | 2013-11-26 | Symantec Corporation | Systems and methods for performing file system checks |
CN105122241A (zh) * | 2013-03-15 | 2015-12-02 | 亚马逊科技公司 | 具有数据库引擎和独立分布式存储服务的数据库*** |
CN105210062A (zh) * | 2013-03-15 | 2015-12-30 | 亚马逊科技公司 | 用于分布式数据库***的***范围检查点避免 |
CN110083656A (zh) * | 2013-03-15 | 2019-08-02 | 亚马逊科技公司 | 日志记录管理 |
CN110019280A (zh) * | 2013-03-15 | 2019-07-16 | 亚马逊科技公司 | 用于分布式数据库***的***范围检查点避免 |
CN103838867A (zh) * | 2014-03-20 | 2014-06-04 | 网宿科技股份有限公司 | 日志处理方法和装置 |
CN107851267A (zh) * | 2015-10-07 | 2018-03-27 | 谷歌有限责任公司 | 用于经由动态分配的虚拟电话号码来同步与语音呼叫相关的数据的***和方法 |
CN106951557A (zh) * | 2017-03-31 | 2017-07-14 | 北京希嘉创智教育科技有限公司 | 日志关联方法、装置和应用其的计算机*** |
US20180314726A1 (en) * | 2017-04-28 | 2018-11-01 | Splunk Inc. | Computing and replicating event deltas for mutable events in a distributed system |
US20180337772A1 (en) * | 2017-05-22 | 2018-11-22 | Microsoft Technology Licensing, Llc | High integrity logs for distributed software services |
CN108932241A (zh) * | 2017-05-24 | 2018-12-04 | 腾讯科技(深圳)有限公司 | 日志数据统计方法、装置及节点 |
CN108365971A (zh) * | 2018-01-10 | 2018-08-03 | 深圳市金立通信设备有限公司 | 日志解析方法、设备及计算机可读介质 |
US10275449B1 (en) * | 2018-02-19 | 2019-04-30 | Sas Institute Inc. | Identification and parsing of a log record in a merged log record stream |
CN108537544A (zh) * | 2018-04-04 | 2018-09-14 | 中南大学 | 一种交易***实时监控方法及其监控*** |
CN109902074A (zh) * | 2019-04-17 | 2019-06-18 | 江苏全链通信息科技有限公司 | 基于数据中心的日志存储方法和*** |
CN110086790A (zh) * | 2019-04-17 | 2019-08-02 | 江苏全链通信息科技有限公司 | 基于数据中心的日志存储方法和*** |
CN110572281A (zh) * | 2019-08-23 | 2019-12-13 | 华南理工大学 | 一种基于区块链的可信日志记录方法及*** |
CN110502494A (zh) * | 2019-08-30 | 2019-11-26 | 北京思维造物信息科技股份有限公司 | 日志处理方法、装置、计算机设备及存储介质 |
WO2019228569A2 (en) * | 2019-09-12 | 2019-12-05 | Alibaba Group Holding Limited | Log-structured storage systems |
CN110855477A (zh) * | 2019-10-29 | 2020-02-28 | 浙江大搜车软件技术有限公司 | 链路日志监控方法、装置、计算机设备和存储介质 |
Non-Patent Citations (7)
Title |
---|
周昕毅, 中国优秀硕士学位论文全文数据库, no. 07 * |
杨茵;: "基于Spark的固网业务日志统计分析平台设计与应用", 电信科学, no. 2, 20 December 2017 (2017-12-20) * |
林宗缪;郭先超;裴雨清;唐浩;姚文勇;: "基于Spark的网络日志分析平台研究与设计", 自动化与仪器仪表, no. 11, 25 November 2017 (2017-11-25) * |
郑清泉;: "基于云计算技术的通用日志管理构件", 广东通信技术, no. 11, 15 November 2014 (2014-11-15) * |
陆世鹏;: "基于Spark Streaming的海量日志实时处理***的设计", 电子产品可靠性与环境试验, no. 05, 20 October 2017 (2017-10-20) * |
陈洁;于永刚;刘明恒;潘盛合;徐克付;: "安全管理平台中基于云计算的日志分析***设计", 计算机工程, no. 02, 15 February 2015 (2015-02-15) * |
马延超;王超;李尚同;: "基于大数据技术的日志统计与分析***研究", 电脑知识与技术, no. 34 * |
Also Published As
Publication number | Publication date |
---|---|
CN113010480B (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11880494B2 (en) | Secure decentralized system utilizing smart contracts, a blockchain, and/or a distributed file system | |
US9298732B2 (en) | Searching cloud-based distributed storage resources using a set of expendable probes | |
US10332084B2 (en) | Systems and methods for automatically collection of performance data in a multi-tenant database system environment | |
US9210054B2 (en) | Secure metering and accounting for cloud services | |
CN110750436B (zh) | 分层测试方法、装置、计算机可读介质及电子设备 | |
US11115204B2 (en) | Cooperative platform for generating, securing, and verifying device graphs and contributions to device graphs | |
EP3631668B1 (en) | High integrity logs for distributed software services | |
US20200387433A1 (en) | Database optimized disaster recovery orchestrator | |
CN108923932A (zh) | 一种去中心化协同验证模型及验证算法 | |
BR112015017728B1 (pt) | Método e sistema rastreio com um distribuidor de carga de trabalho. | |
US10354255B2 (en) | Client access license tracking mechanism | |
US20200387417A1 (en) | Database optimized disaster recovery testing | |
US20120078946A1 (en) | Systems and methods for monitoring files in cloud-based networks | |
CN104391697A (zh) | 应用程序的云资源管理***和方法 | |
CN116137908A (zh) | 动态确定端到端链路的信任级别 | |
da Silva et al. | A science-gateway workload archive to study pilot jobs, user activity, bag of tasks, task sub-steps, and workflow executions | |
CN114595127A (zh) | 日志异常处理方法、装置、设备和存储介质 | |
WO2022057525A1 (zh) | 一种数据找回方法、装置、电子设备及存储介质 | |
CN113010480A (zh) | 日志处理方法、装置、电子设备及计算机可读存储介质 | |
Schmieders et al. | Architectural runtime models for privacy checks of cloud applications | |
US11782823B2 (en) | Automatically capturing weather data during engineering tests | |
CN116107801A (zh) | 交易处理方法及相关产品 | |
US11206579B1 (en) | Dynamic scheduling for network data transfers | |
CN118094633B (zh) | 基于区块链的数据处理方法、装置、电子设备及介质 | |
US11650975B2 (en) | Online file system consistency check for container data on a clustered filesystem |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40045518 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |