一种数据管理方法及装置与流程

文档序号:26625528发布日期:2021-09-14 21:22阅读:75来源:国知局
一种数据管理方法及装置与流程

1.本技术实施例涉及计算机技术领域,尤其涉及一种数据管理方法及装置。


背景技术:

2.目前,人们需求的数据越来越多,而其中绝大部分是非结构化数据。在未来,非结构化数据更会呈现指数型增长。随着非结构化数据爆发式的增长,传统的san(存储局域网)和nas(网络附加存储)存储架构不能应对数据爆发带来的问题。基于其扁平化、拓展性强的结构特点,对象存储成为非结构化数据存储的最佳解决方案。通过对象存储替代穿透的san和nas存储,极大提升了非结构化数据访问和存储的效率。对象存储具有分布式存储的所有优点,灵活的拓展性,元数据的管理;通过其版本管理的强大功能,对象存储有效地规避了人为操作的逻辑错误。
3.相关技术中,一般在对象上传的同时,根据对象的执行规则和执行时间形成任务,并进行存储。在对象到期时,系统轮询出到期的任务,逐个执行。由于对象上传存储的时候,其过期时间固化到了索引中,不仅存储成本较大,如果执行规则发生了改变,会有大量的重复任务等待执行,加重了系统的执行负担。


技术实现要素:

4.本技术实施例提供一种数据管理方法及装置,以解决任务存储成本大,任务修改后执行负担重的问题。
5.本技术提供了一种数据管理方法,包括:
6.根据目标对象存储单元对应的数据存储规则以及对象存储于所述目标对象存储单元中的存储时间点,从所述目标对象存储单元中选取至少一个目标对象,其中,所述数据存储规则至少包括对象的最大存储时长;所述数据存储规则用于在对象存储时与所述对象的属性信息相对比以确定所述对象的对象存储单元;
7.根据所述目标对象存储单元对应的数据处理规则,以及所述至少一个目标对象对应的待执行信息,生成至少一个任务;所述目标对象在上传后存储于所述目标对象存储单元,并在所述目标对象存储单元中存储的时长大于所述最大存储时长时生成所述至少一个任务;
8.根据所述至少一个任务,对所述至少一个目标对象执行数据处理。
9.另一方面,本技术提供了一种数据管理装置,包括:
10.筛选单元,用于根据目标对象存储单元对应的数据存储规则以及对象存储于所述目标对象存储单元中的存储时间点,从所述目标对象存储单元中选取至少一个目标对象,其中,所述数据存储规则至少包括对象的最大存储时长;所述数据存储规则用于在对象存储时与所述对象的属性信息相对比以确定所述对象的对象存储单元;
11.创建单元,用于根据所述目标对象存储单元对应的数据处理规则,以及所述至少一个目标对象对应的待执行信息,生成至少一个任务;所述目标对象在上传后存储于所述
目标对象存储单元,并在所述目标对象存储单元中存储的时长大于所述最大存储时长时生成所述至少一个任务;
12.执行单元,用于根据所述至少一个任务,对所述至少一个目标对象执行数据处理。
13.可选的,还包括匹配单元,用于:
14.接收上传的对象,并确定所述对象的属性信息;
15.将所述对象的属性信息与所述目标对象存储单元的数据存储规则进行匹配;
16.若确定所述对象的属性信息与所述目标对象存储单元的数据存储规则匹配成功,则将所述对象保存至所述目标对象存储单元中。
17.可选的,匹配单元,具体用于:
18.针对各个对象存储单元,分别设置相应的数据存储规则,并将获得的各个数据存储规则分别转化为相应的单元特征向量;
19.将所述对象的属性信息转为相应的对象特征向量;
20.将所述对象特征向量与所述目标对象存储单元对应的单元特征向量进行匹配;
21.确定所述对象特征向量与所述目标对象存储单元对应的单元特征向量相同。
22.可选的,还包括存储单元,用于:
23.根据所述至少一个目标对象的属性信息,在预设的任意存储单元中,确定相应的至少一个任务对应的任务存储分区,所述任务存储单元中包括多个任务存储分区;
24.将所述至少一个任务存储于对应的任务存储分区中。
25.可选的,所述任务存储分区设置有状态标记;
26.执行单元,还用于:
27.从标记为未完成的至少一个任务存储分区中获取所述至少一个任务;
28.确定所述至少一个任务存储分区中的任务均执行完毕后,将所述至少一个任务存储分区标记改为已完成。
29.可选的,执行单元,还用于:
30.基于创建的至少一个执行进程,根据各个任务的生成时间,从标记为未完成的任务存储分区中获取状态为自由状态的至少一个任务;其中,一个执行进程对应一个任务;
31.通过所述至少一个执行进程,将相应的至少一个任务的状态从自由状态改为加锁状态。
32.可选的,执行单元,还用于:
33.通过所述至少一个执行进程在相应的至少一个任务的状态中增加租约时间信息;
34.确定所述任一个任务对应的租约时间信息到期后,所述任一任务由加锁状态转为自由状态;
35.通过所述至少一个执行进程之外的执行进程,获取所述任一任务,并将所述任一任务的状态改为加锁状态。
36.可选的,执行单元,还用于:
37.在所述至少一个任务存储分区中,确定各个任务关联的对象存储单元的任务并发度;
38.从任务并发度低于设定阈值的目标对象存储单元关联的各个任务中,选取所述至少一个任务。
39.另一方面,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述的数据管理方法。
40.另一方面,本技术实施例还提供一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器实现上述的数据管理方法。
41.本技术实施例中的对象存储单元预先设置有数据存储规则,用户上传对象时将对象的属性信息与数据存储规则相对比以确定对象的对象存储单元,并将对象存储于对象存储单元中,其中,数据存储规则至少包括对象的最大存储时长。目标对象存储单元为任一对象存储单元,根据目标对象存储单元对应的数据存储规则以及对象存储于目标对象存储单元中的存储时间点,在至少一个目标对象存储到期时,从目标对象存储单元中选取至少一个目标对象。根据目标对象存储单元对应的数据处理规则,以及至少一个目标对象对应的待执行信息,生成至少一个任务,并根据至少一个任务,对至少一个目标对象执行数据处理。本技术在对象上传时不建立任务,在目标对象存储到期需要执行时,根据目标对象的待执行信息和目标对象存储单元的数据处理规则生成任务,这样可以节省任务的存储空间,且在执行的时候才进行规则过滤生成任务,则可以保证规则修改后即时生效,不会出现再入库的难题。
附图说明
42.图1为相关技术中一种数据管理方法的过程示意图;
43.图2为相关技术中另一种数据管理方法的过程示意图;
44.图3为本技术实施例中一种数据管理方法的过程示意图;
45.图4为本技术实施例中一种数据管理方法的应用架构示意图;
46.图5为本技术实施例提供的一种数据管理方法的流程图;
47.图6为本技术实施例提供的任务存储分区的示意图;
48.图7为本技术实施例提供的多个任务进程从未完成的任务存储分区中获取任务的示意图;
49.图8为本技术实施例提供的任务执行失败后其余任务进程继续执行该任务的示意图;
50.图9为本技术实施例提供的当天任务总量与对象存储单元的任务并发度阈值的曲线图;
51.图10为本技术实施例提供的数据管理系统的整体架构的结构示意图;
52.图11为本技术具体实施例提供的具体的任务执行过程的示意图;
53.图12为本技术实施例的提供的数据管理装置的结构示意图;
54.图13为本技术实施例中计算机设备实体架构示意图。
具体实施方式
55.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的
所有其它实施例,都属于本技术保护的范围。
56.为便于对本技术实施例的理解,下面先对几个概念进行简单介绍:
57.生命周期系统:根据时间对数据进行自动管理,包含数据的到期删除和到期降冷。
58.db(doggabyte,数据储存单位):计算机中的数据储存单位,1db=10248gb。本技术实施例中利用db存储对象的任务数据。
59.csv(comma

separated values,字符分隔值):其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。csv文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。
60.bucket(桶)是对mos(management operating system,管理操作系统)中的一个存储空间的形象称呼,是存储对象的容器。对象存储是一种非常扁平化的存储方式,桶中存储的对象都在同一个逻辑层级,不像文件系统那样有一个很多层级的文件结构。在mos中,桶的命名是全局唯一的。每个桶在创建时都会生成默认的桶acl(access control list,访问控制列表),桶acl列表的每项包含了对被授权用户授予什么样的权限,如读权限(read)、写权限(write)、完全控制权限(full_control)等。用户只有对桶有相应的权限,才可以对桶进行操作,如创建、删除、显示、设置桶acl等。
61.云计算(cloud computing):是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
62.作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为基础设施即服务(infrastructure as a service,iaas)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
63.按照逻辑功能划分,在iaas层上可以部署平台即服务(platform as a service,paas)层,paas层之上再部署软件即服务(software as a service,saas)层,也可以直接将saas部署在iaas上。paas为软件运行的平台,如数据库、web容器等。saas为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,saas和paas相对于iaas是上层。
64.随着社会的发展,人类的社会活动产生大量的数据,而这些数据只有在分析和处理后才能充分发挥它的价值。目前很大一部分数据是非结构化数据,随着非结构化数据爆发式的增长,对象存储成为非结构化数据存储的最佳解决方案。对象存储,也叫做基于对象的存储,是用来描述解决和处理离散单元的方法的通用术语,这些离散单元被称作为对象。就像文件一样,对象包含数据,但是和文件不同的是,对象在一个层结构中不会再有层级结构。每个对象都在一个被称作存储池的扁平地址空间的同一级别里,一个对象不会属于另一个对象的下一级。
65.相关技术中,在对象上传时,将到期时间写入对象索引中,利用db自带的ttl(time to live,生存时间)功能或者旁路系统进行扫描,选择对象执行,具体结构如图1所示。由于对象上传的时候,其过期时间固化到了索引中,如果用户规则发生了改变,则存量数据的
ttl时间失效,较难修改。
66.另一相关技术如图2所示,该方案在对象上传的时候,将对象的执行时间,需要执行的操作等按照时间序的方式生成一个任务,写入独立的db中。利用生命周期系统的worker(执行进程)轮询出到期的任务,逐个执行。这个方案的任务量非常庞大,同时针对生命周期的bucket,对象消耗的索引存储成本变多;规则发生变动的时候,会有大量的重复任务等待执行,大大加重worker的负担。
67.有鉴于此,为了解决上述问题,本技术实施例中,如图3所示,用户上传对象时,仅将对象进行存储而不建立任务,具体将对象根据数据存储规则存储于bucket中,其中,每一个bucket预先设置有数据存储规则和数据处理规则,对象可以通过规则匹配选择对应的bucket进行存储。数据存储规则中至少包括对象的最大存储时长,则根据bucket对应的数据存储规则以及bucket中对象的存储时间,在目标对象的存储到期时,从bucket中选取目标对象。根据目标对象对应的待执行信息以及bucket对应的数据处理规则,为目标对象建立任务,并执行数据处理。本技术实施例在对象上传时不建立任务,这样可以节省任务的存储空间,且在执行的时候才进行规则过滤生成任务,则可以保证规则修改后即时生效,不会出现再入库的难题。
68.下面结合附图对本技术优选的实施方式作出进一步详细说明。
69.参阅图4所示,为本技术实施例中数据管理方法的应用架构示意图,包括服务器100、终端设备200。
70.终端设备200可以是移动的,也可以是固定的电子设备。例如,手机、平板电脑、笔记本电脑、台式电脑、各类可穿戴设备、智能电视、车载设备或其它能够实现上述功能的电子设备等。终端设备200可以向服务器100上传对象,并接收服务器100的反馈。
71.终端设备200与服务器100之间可以通过互联网相连,实现相互之间的通信。可选地,上述的互联网使用标准通信技术和/或协议。互联网通常为因特网、但也可以是任何网络,包括但不限于局域网(local area network,lan)、城域网(metropolitan area network,man)、广域网(wide area network,wan)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。在一些实施例中,使用包括超文本标记语言(hyper text mark

up language,html)、可扩展标记语言(extensible markup language,xml)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(secure socket layer,ssl)、传输层安全(transport layer security,tls)、虚拟专用网络(virtual private network,vpn)、网际协议安全(internet protocol security,ipsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
72.服务器100可以为终端设备200提供各种网络服务,服务器100可以采用云计算技术进行信息处理。其中,服务器100可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
73.具体地,服务器100可以包括处理器110(center processing unit,cpu)、存储器120、输入设备130和输出设备140等,输入设备130可以包括键盘、鼠标、触摸屏等,输出设备140可以包括显示设备,如液晶显示器(liquid crystal display,lcd)、阴极射线管(cathode ray tube,crt)等。
74.存储器120可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器110提供存储器120中存储的程序指令和数据。在本发明实施例中,存储器120可以用于存储本发明实施例中数据管理方法的程序。
75.处理器110通过调用存储器120存储的程序指令,处理器110用于按照获得的程序指令执行本发明实施例中任一种数据管理方法的步骤。
76.另外,本发明实施例中的应用架构图是为了更加清楚地说明本发明实施例中的技术方案,并不构成对本发明实施例提供的技术方案的限制,当然,也并不仅限于消化道疾病诊断业务应用,对于其它的应用架构和业务应用,本发明实施例提供的技术方案对于类似的问题,同样适用。
77.本发明各个实施例以应用于图4所示的应用架构图为例进行示意性说明。
78.图5示出了本技术一个实施例提供的数据管理方法的流程图。如图5所示,该方法包括如下步骤:
79.步骤501:根据目标对象存储单元对应的数据存储规则以及对象存储于目标对象存储单元中的存储时间点,从目标对象存储单元中选取至少一个目标对象。
80.其中,数据存储规则至少包括对象的最大存储时长;数据存储规则用于在对象存储时与对象的属性信息相对比以确定对象的对象存储单元。
81.具体地,服务器中设置有多个对象存储单元,即bucket。每个对象存储单元预先设置有对应的数据存储规则和数据处理规则,规则例如用户id、对象前缀、操作方式、存储天数、对象标签等,不同对象存储单元的数据存储规则和数据处理规则不同,这里可以是数据存储规则和数据处理规则中的全部规则均不相同,也可以是数据存储规则和数据处理规则中的一部分规则相同另一部分规则不相同。
82.服务器接收到用户上传的对象后,将对象按照数据存储规则和数据执行规则存储于对应的对象存储单元中。数据存储规则中至少包括对象的最大存储时长,用于标识对象的存储时间,即在对象存储到期后,将对象筛选出并建立任务。
83.一般来说,为了便于操作,可以按照设定的频率从目标对象存储单元中获取目标对象,例如在每天的规定时间点进行对象筛选,则从目标对象存储单元中获取的目标对象数量为多个。进一步地,由于服务器中存储的对象存储单元个数也为多个,因此,筛选的范围也为所有对象存储单元。
84.例如,服务器中设置有10个bucket,分别设置有对象的最大存储时长分别为5天、7天、10天等。对象上传后,按照最大存储时长存储于对应的bucket中。每天的0点,针对每个bucket,根据该bucket的最大存储时长以及其中存储的每个对象的存储时间点,将当天到期的所有对象从bucket中筛选出,作为目标对象。一种可能的场景中,第一个bucket中筛选出350个目标对象,第二个bucket中筛选出120个目标对象
……
第十个bucket中筛选出200个目标对象。
85.步骤502:根据目标对象存储单元对应的数据处理规则,以及至少一个目标对象对
应的待执行信息,生成至少一个任务。其中,目标对象在上传后存储于目标对象存储单元,并在目标对象存储单元中存储的时长大于最大存储时长时生成至少一个任务。
86.具体地,对象根据对象存储单元的数据存储规则和数据处理规则选择对应的目标对象存储单元,也就是说,存储于目标对象存储单元中的对象,不仅与目标对象存储单元的数据存储规则相匹配,还与目标对象存储单元的数据处理规则相匹配。这样,当目标对象存储到期时,从目标对象存储单元中筛选出目标对象,并根据目标对象存储单元对应的数据处理规则,以及目标对象对应的待执行信息,生成该目标对象的任务。
87.具体实施过程中,一般为对多个对象存储单元执行对象的筛选,从同一个对象存储单元中筛选出的目标对象的个数也为多个,即同一批次可以筛选出多个目标对象。则针对每个目标对象,均根据该目标对象的待执行信息和对应的目标对象存储单元的数据处理规则,生成一个对应的任务。
88.步骤503:根据至少一个任务,对至少一个目标对象执行数据处理。
89.具体实施过程中,一个目标对象对应一个任务,不同目标对象的任务可以相同也可以不相同,例如删除该目标对象,或者对该目标对象执行读写操作等。此外,本技术实施例中对任务的处理可以为串行处理,即同一个进程依次处理所有的任务;也可以为并行处理,即针对一定数量的任务创建相同数量的进程并行处理;也可以为串行处理和并行处理结合进行,即针对第一数量的任务创建第二数量的进程处理,每个进程依次处理多个任务,单个进程的任务之间为串行处理,不同进程之间的任务为并行处理。
90.本技术实施例中的对象存储单元预先设置有数据存储规则,用户上传的对象按照数据存储规则存储于对象存储单元中,其中,数据存储规则至少用于设定对象的最大存储时长。目标对象存储单元为任一对象存储单元,根据目标对象存储单元对应的数据存储规则,从目标对象存储单元中选取至少一个目标对象。根据目标对象存储单元对应的数据处理规则,以及至少一个目标对象对应的待执行信息,生成至少一个任务,并根据至少一个任务,对至少一个目标对象执行数据处理。本技术在对象上传时不建立任务,在目标对象存储到期需要执行时,根据目标对象的待执行信息和目标对象存储单元的数据处理规则生成任务,这样可以节省任务的存储空间,且在执行的时候才进行规则过滤生成任务,则可以保证规则修改后即时生效,不会出现再入库的难题。
91.下面从对象上传开始,具体介绍本技术实施例中对象的处理方案。
92.本技术实施例中,对象上传后不立刻构建任务,而是直接将对象存储于对应的目标对象存储单元中。即,根据目标对象存储单元对应的数据存储规则,从对象存储单元中选取至少一个目标对象之前,还包括:
93.接收上传的对象,并确定对象的属性信息;
94.将对象的属性信息与目标对象存储单元的数据存储规则进行匹配;
95.若确定对象的属性信息与目标对象存储单元的数据存储规则匹配成功,则将对象保存至目标对象存储单元中。
96.具体实施过程中,服务器中设置有多个对象存储单元,每个对象存储单元分别设置数据存储规则和数据处理规则。同一个对象存储单元的数据存储规则和数据处理规则可以重合也可以不重合,即对象存储单元的数据存储规则中可以包含数据处理规则,或者数据存储规则不包含数据处理规则。
97.例如,目标对象存储单元设置有50条规则,其中,25条为数据存储规则,另25条为数据处理规则。进行目标对象存储时,将目标对象的属性信息与目标对象存储单元的25条数据存储规则进行匹配,若全部匹配成功,则将该目标对象存储至目标对象存储单元中。另由于存储在目标对象存储单元中的对象需要执行该目标对象存储单元的数据处理规则,因此,在目标对象存储单元中的目标对象达到存储期限时,按照目标对象对应的25条数据处理规则以及目标对象的待执行信息生成任务,进行数据处理。
98.另一种实施例中,目标对象存储单元设置有50条规则,其中,30条为数据存储规则,数据存储规则中的10条规则也为数据处理规则,这样数据处理规则的数量为30条。也就是说,在目标对象存储时,需要将目标对象的属性信息与这30条数据存储规则相匹配。其中的10条数据处理规则,不仅存储目标对象时需要进行匹配,且在建立任务时,也需要依据这10条数据处理规则建立目标对象的任务。
99.另一种实施例中,目标对象存储单元设置有50条规则,全部50条均为数据存储规则,其中数据存储规则中的25条规则也为数据处理规则,即数据处理规则的数量为25条。这样,在目标对象存储时,需要将对象的属性信息与全部50条数据存储规则相匹配。其中的25条数据处理规则,不仅存储目标对象时需要进行匹配,且在建立任务时,也需要依据这25条数据处理规则建立目标对象的任务。
100.此外,接收到用户上传的目标对象之后,将目标对象与服务器中设置的多个对象存储单元依次进行匹配。例如,服务器中设置有10个对象存储单元,将目标对象与第一个对象存储单元的数据存储规则进行匹配,若匹配成功,则将目标对象存储于第一个对象存储单元中;若匹配不成功,则将目标对象与第二个对象存储单元的数据存储规则进行匹配,若匹配成功,则将目标对象存储于第二个对象存储单元中;若匹配不成功,则将目标对象与第三个对象存储单元的数据存储规则进行匹配,以此类推。特殊地,若目标对象对所有对象存储单元的数据存储规则均不匹配,则可认为该目标对象为错误对象,不进行存储,并向用户进行反馈。
101.进一步地,由于每个对象存储单元设置的规则较多,直接进行规则匹配系统处理压力较大,因此,本技术实施例对对象存储单元设置的规则进行了格式化,通过向量与向量集合的匹配来优化cpu占用,减少匹配耗时。
102.则接收上传的对象之前,还包括:
103.针对各个对象存储单元,分别设置相应的数据存储规则,并将获得的各个数据存储规则分别转化为相应的单元特征向量;
104.将对象的属性信息与目标对象存储单元的数据存储规则进行匹配,包括:
105.将对象的属性信息转为相应的对象特征向量;
106.将对象特征向量与目标对象存储单元对应的单元特征向量进行匹配;
107.确定对象的属性信息与对象存储单元的数据存储规则匹配成功,包括:
108.确定对象特征向量与目标对象存储单元对应的单元特征向量相同。
109.具体实施过程中,一个bucket可配置1000条规则,其中数据存储规则包括id、前缀(prefix)、操作(action)、天数(days)、标签(tags)等多种条件和操作。另一方面,每一个对象的属性信息包括对象名称(objname)、修改时间(modifytime)、标签(tags)、版本(version)等信息。将如此复杂的数据存储规则与对象的属性信息进行匹配非常消耗cpu。
110.因此,本技术实施例中将对象的属性信息以及对象存储单元的数据存储规则进行格式化,将对象存储单元的数据存储规则格式化为单元特征向量,并且将每一个对象的属性信息格式化为对象特征向量,通过向量与向量之间的匹配来代替属性信息与数据存储规则之间的匹配,从而达到优化cpu占用,减少匹配耗时的效果。此外,由于对象存储单元的数据存储规则可以针对相同的属性设置多个规则,例如,某对象存储单元的数据存储规则规定了对象的前缀和标签,包括:前缀为null,同时标签为a、b、c、d、e中的任一个;前缀为tmp,同时标签为e或f;前缀为tmp2,同时标签为g。则将上述数据存储规则分别转换为单元特征向量后,可组成向量集合,对象的对象特征向量与向量集合中的任一单元特征向量匹配,则表明该对象特征向量与向量集合匹配,即该对象与对象存储单元匹配。
111.具体地,对象存储单元的数据存储规则的向量化过程如下:
112.第一步:将单元特征向量mp1初始化。
113.第二步:假设数据存储规则的内容包括前缀(prefix)和标签(tag),对mp1_prefix和mp1_tag加入锚点,比如000000010010101。
114.第三步:为mp2加入锚点,其中mp2的格式为:前缀锚点

>锚点对应的规则。获得数据存储规则的单元特征向量值。
115.第四步:最终得到数据存储规则的向量值,用roleinfo表示。
116.下面举例说明。
117.对象存储单元的数据存储规则为:
118.规则1

>前缀:null;tags:a,b,c,d,e;
119.规则2

>前缀:tmp;tags:e,f;
120.规则3

>前缀:tmp;tags:e,f;
121.规则4

>前缀:tmp2;tags:g。
122.根据上述数据存储规则生成:
123.mp1_prefix;null:1,tmp:2,tmp2:3;
124.mp1_tag;a:4,b:5,c:6,d:7,e:8,f:9,g:10。
125.之后生成向量:
126.规则1:1+4+5+6+7+8;
127.规则2:2+8+9;
128.规则3:2+8+9;
129.规则4:3+10。
130.以及生成向量前缀:
131.规则1:1;
132.规则2:2;
133.规则3:2;
134.规则4:3。
135.进一步生成单元特征向量mp_rule:
136.1(前缀类比)

>规则1
137.2(前缀类比)

>规则2,规则3
138.3(前缀类比)

>规则4
139.最后将上述规则设置在bucket的存储器(cache)中。
140.需要说明的是,生成的数据存储规则的单元特征向量中,如果认为空余位为全0,则第一个1的位置被称为向量前缀,在规则匹配的时候,优先比较向量前缀,如果向量前缀匹配,则对相应向量进行全匹配,得到相应的规则。按照上面的实施例,如果对象的向量前缀为2,则匹配了规则2和规则3,此时匹配的工作量减少了2/3。
141.进一步地,为了改善任务的执行效果,对任务的存储布局进行了优化,将任务db进行了分区。则上述根据对象存储单元对应的数据处理规则,以及至少一个目标对象对应的待执行信息,生成至少一个任务之后,根据至少一个任务,对至少一个目标对象执行数据处理之前,还包括:
142.根据至少一个目标对象的属性信息,在预设的任意存储单元中,确定相应的至少一个任务对应的任务存储分区,任务存储单元中包括多个任务存储分区;
143.将至少一个任务存储于对应的任务存储分区中。
144.具体实施过程中,将任务存储于任意存储单元中。一般任意存储单元的存储空间为设定值,一个任务存储单元中可以存储多个任务。利用任务进程对任意存储单元执行时,为了提高任务的执行效率,将每个任意存储单元进行分区得到多个任务存储分区。任务存储过程中,可以根据任务对应的目标对象的属性信息,例如将属性信息进行哈希计算,从而确定对应的任务存储分区,进而将任务存储于对应的任务存储分区中。
145.例如,图6示出了任务存储分区的示意图。如图6所示,设置了三个任务存储单元,分别为任务db1、任务db2、任务db3。每个任务db均划分为三个任务存储分区,每个任务存储分区中可以存储多个任务。需要说明的是,不同任务db划分的任务存储分区的数量可以相同也可以不同。
146.本技术实施例可以创建任务进程(worker)以执行任务。进一步地,任务存储分区设置有状态标记,以标明该任务存储分区中的任务是否已执行完成,可以明确的是,任务进程仅在状态标记为未完成的任务存储分区中选择,以防任务重复执行。
147.具体地,根据至少一个任务,对至少一个目标对象执行数据处理之前,还包括:
148.从标记为未完成的至少一个任务存储分区中获取至少一个任务;
149.根据至少一个任务,对至少一个目标对象执行数据处理之后,还包括:
150.确定至少一个任务存储分区中的任务均执行完毕后,将至少一个任务存储分区标记改为已完成。
151.具体实施过程中,多个任务进程从所有状态标记为未完成的任务存储分区中随机选择任务存储分区,以减少多个任务进程抢占某一个任务的场景问题。同时,针对已完成执行的分区进行标记,任务进程随机选择的任务存储分区只在未完成的任务存储分区中选择,以防任务重复执行。图7示出了多个任务进程从未完成的任务存储分区中获取任务的示意图。如图7所示,任务db3的三个任务存储分区中,只有最下面的一个任务存储分区为未完成,则图中的4个任务进程(worker)均从该任务存储分区中获取任务。
152.进一步地,为了防止任务的重复执行,本技术实施例中的任务进程抢占到任务之后,还将该任务加锁,以防止其他任务进程的重复执行。则上述从标记为未完成的至少一个任务存储分区中获取至少一个任务,包括:
153.基于创建的至少一个执行进程,根据各个任务的生成时间,从标记为未完成的任
务存储分区中获取状态为自由状态的至少一个任务;其中,一个执行进程对应一个任务;
154.通过至少一个执行进程,将相应的至少一个任务的状态从自由状态改为加锁状态。
155.具体实施过程中,如图7所示,任务按照生成时间,存储于对应的任务存储分区中,例如,在任务db1的第一个任务存储分区中,任务a为第一个生成的任务,任务b为第二个生成的任务,任务c为第三个生成的任务,则任务a、任务b、任务c依次存储。任务进程worker1随机选中该任务存储分区后,根据任务a、任务b、任务c的存储位置,或者根据任务a、任务b、任务c的生成时间,选择任务a执行,则此时任务进程worker1与任务a相对应,任务进程worker1将任务a的状态从自由状态改为加锁状态。此时,任务进程worker2也随机选中该任务存储分区,虽然任务a仍为最先产生的任务,但由于任务a的状态为加锁状态,即表明任务a已被其他任务进程执行,则任务进程worker2从余下的任务中进行选择,即选择任务b进行抢占,同样地,任务进程worker2也将任务b的状态由自由状态改为加锁状态。
156.进一步地,当任务进程异常导致任务执行未完成时,其他任务进程可以重新抢占该未完成的任务,并继续执行。具体地,根据各个任务的生成时间,从标记为未完成的任务存储分区中获取状态为自由状态的至少一个任务之后,根据至少一个任务,对至少一个目标对象执行数据处理之前,还包括:
157.通过至少一个执行进程在相应的至少一个任务的状态中增加租约时间信息;
158.根据至少一个任务,对至少一个目标对象执行数据处理,还包括:
159.确定任一个任务对应的租约时间信息到期后,任一任务由加锁状态转为自由状态;
160.通过至少一个执行进程之外的执行进程,获取任一任务,并将任一任务的状态改为加锁状态。
161.具体实施过程中,任务进程对任务的执行可能会执行成功,也有执行失败的可能。当任务进程异常导致任务执行失败时,须由其它任务进程对该任务继续执行。为了满足上述需求,本技术实施例针对每个任务设置租约时间信息,一般来说,租约时间的长度大于正常的任务进程对任务的处理时长,因此,任务进程对任务的处理需要在该租约时间内完成,若租约时间到期后,该任务仍未执行完成,则认为执行的任务进程异常,任务执行失败,该任务的加锁状态自动转为自由状态。则任务转为自由状态后,其余任务进程可以重新抢占该任务,并继续执行该任务。
162.图8示出了任务执行失败后其余任务进程继续执行该任务的示意图。如图8中的实线箭头所示,第一轮任务执行过程中,任务进程worker1选择了任务存储分区1中的任务,任务进程worker2选择了任务存储分区2中的任务,任务进程worker3选择了任务存储分区4中的任务。其中,任务进程worker2执行任务d,将任务d的状态改为加锁状态,并针对任务d设置租约时间。任务进程worker2在对任务d执行过程中异常,导致任务d执行失败,这样,在任务d的租约时间到期后,任务d的状态由加锁状态转为自由状态。任务进程worker1在执行完任务存储分区1中的任务之后,如图8中虚线箭头所示,选择了任务存储分区2。由于任务d的状态此时为自由状态,则任务进程worker1抢占任务d,并将任务d的状态再由自由状态改为加锁状态。
163.这样,任务在执行过程中,会不断修改状态,包括租约时间和任务对象偏移。在任
务进程异常导致任务未完成时,其他任务进程可以在该任务的租约时间到期后重新抢占,并按照偏移量继续执行,从而保证任务的顺利执行。
164.进一步地,由于系统处理的对象数量非常大,为了防止负载过重,本技术实施例通过多级频控来管理。具体地,从标记为未完成的至少一个任务存储分区中获取至少一个任务,包括:
165.在至少一个任务存储分区中,确定各个任务关联的对象存储单元的任务并发度;
166.从任务并发度低于设定阈值的目标对象存储单元关联的各个任务中,选取至少一个任务。
167.具体实施过程中,针对对象存储单元设置有任务并发度阈值,该阈值的计算如下所示:
168.autothreshold=2
×
(sqrt(x)+log2(x))
……
公式1
169.其中,autothreshold为对象存储单元的任务并发度阈值,x为当前时间周期内的任务总量。
170.图9示出了当天任务总量与对象存储单元的任务并发度阈值的曲线图,如图9所示,每个对象存储单元的任务并发度阈值由当前时间周期内产生的任务量动态确定。一般来说,这里的当前时间周期设置为一日,即对象存储单元的任务并发度阈值由当天产生的任务量确定。
171.这样,任务进程在选取任务的时候,会确定该任务对应的对象存储单元的任务数量,即对象存储单元的任务并发度,当对象存储单元对应的任务数量低于设定阈值时,任务进程才从该对象存储单元对应的任务中,选取任务执行。
172.这样,多个对象存储单元间公平调度,防止任务量大的对象存储单元占据所有任务进程的执行负载。
173.此外,本技术实施例还设置有过载熔断机制,如果在任务执行的时候遇到对象存储单元返回过载相关的错误码,则直接进行熔断,该对象存储单元在5分钟内不再进行任务的调度和执行。
174.以下通过具体实例说明本技术实施例提供的数据管理方法的实现过程。具体实施中的数据管理系统的整体架构如图10所示。
175.每天针对用户配置的bucket生成清单子任务,由清单系统进行执行。清单执行完成后,将过滤完成后的对象打包为文件存放至对象存储系统中,同时生成名为manifest的执行统计文件。通知生命周期系统;生命周期系统完成过滤后的对象任务的执行。
176.具体的任务执行过程如图11所示。每个任务为存放在对象存储系统中的csv文件,该文件的每一行表示一个待执行的对象信息,如图11所示,生命周期根据schema(数据库对象的集合,一般一个用户对应一个schema)信息对每行的对象的待执行信息进行解析,同时查询当前对象的状态,结合规则进行执行。但是在多版本的对象则比较复杂,由于多版本对象的时间戳存在前后历史版本的依赖,所以多版本对象的执行需要部分逆序执行。
177.生命周期在执行任务时,对于每个bucket需要一个执行报告的功能,所以收到清单汇总任务后,会创建一个finish任务,用于收集执行完成的信息。
178.与上述方法实施例相对应地,本技术实施例还提供了一种数据管理装置。图12为本技术实施例的提供的数据管理装置的结构示意图;如图12所示,该数据管理装置包括:
179.筛选单元121,用于根据目标对象存储单元对应的数据存储规则以及对象存储于所述目标对象存储单元中的存储时间点,从所述目标对象存储单元中选取至少一个目标对象,其中,所述数据存储规则至少包括对象的最大存储时长;所述数据存储规则用于在对象存储时与所述对象的属性信息相对比以确定所述对象的对象存储单元;
180.创建单元122,用于根据所述目标对象存储单元对应的数据处理规则,以及所述至少一个目标对象对应的待执行信息,生成至少一个任务;所述目标对象在上传后存储于所述目标对象存储单元,并在所述目标对象存储单元中存储的时长大于所述最大存储时长时生成所述至少一个任务;
181.执行单元123,用于根据所述至少一个任务,对所述至少一个目标对象执行数据处理。
182.可选的,还包括匹配单元124,用于:
183.接收上传的对象,并确定所述对象的属性信息;
184.将所述对象的属性信息与所述目标对象存储单元的数据存储规则进行匹配;
185.若确定所述对象的属性信息与所述目标对象存储单元的数据存储规则匹配成功,则将所述对象保存至所述目标对象存储单元中。
186.可选的,匹配单元124,具体用于:
187.针对各个对象存储单元,分别设置相应的数据存储规则,并将获得的各个数据存储规则分别转化为相应的单元特征向量;
188.将所述对象的属性信息转为相应的对象特征向量;
189.将所述对象特征向量与所述目标对象存储单元对应的单元特征向量进行匹配;
190.确定所述对象特征向量与所述目标对象存储单元对应的单元特征向量相同。
191.可选的,还包括存储单元125,用于:
192.根据所述至少一个目标对象的属性信息,在预设的任意存储单元中,确定相应的至少一个任务对应的任务存储分区,所述任务存储单元中包括多个任务存储分区;
193.将所述至少一个任务存储于对应的任务存储分区中。
194.可选的,所述任务存储分区设置有状态标记;
195.执行单元123,还用于:
196.从标记为未完成的至少一个任务存储分区中获取所述至少一个任务;
197.确定所述至少一个任务存储分区中的任务均执行完毕后,将所述至少一个任务存储分区标记改为已完成。
198.可选的,执行单元123,还用于:
199.基于创建的至少一个执行进程,根据各个任务的生成时间,从标记为未完成的任务存储分区中获取状态为自由状态的至少一个任务;其中,一个执行进程对应一个任务;
200.通过所述至少一个执行进程,将相应的至少一个任务的状态从自由状态改为加锁状态。
201.可选的,执行单元123,还用于:
202.通过所述至少一个执行进程在相应的至少一个任务的状态中增加租约时间信息;
203.确定所述任一个任务对应的租约时间信息到期后,所述任一任务由加锁状态转为自由状态;
204.通过所述至少一个执行进程之外的执行进程,获取所述任一任务,并将所述任一任务的状态改为加锁状态。
205.可选的,执行单元123,还用于:
206.在所述至少一个任务存储分区中,确定各个任务关联的对象存储单元的任务并发度;
207.从任务并发度低于设定阈值的目标对象存储单元关联的各个任务中,选取所述至少一个任务。
208.基于同一发明构思,参阅图13所示,本技术实施例还提供了一种计算机设备1300,该计算机设备1300可以为智能手机、平板电脑,手提电脑或pc机等电子设备。如图13所示,计算机设备1300包括显示单元1340、处理器1380以及存储器1320,其中,显示单元1340包括显示面板1341,用于显示由用户输入的信息或提供给用户的信息以及计算机设备1300的各种对象选择页面等,在本技术实施例中主要用于显示计算机设备1300中已安装的应用的页面、快捷窗口等。可选的,可以采用液晶显示器(liquid crystal display,lcd)或有机发光二极管(organic light

emitting diode,oled)等形式来配置显示面板1341。上述计算机设备1300能够执行如上述各个实施例中终端或处理服务器执行的任意一种方法。
209.处理器1380用于读取计算机程序,然后执行计算机程序定义的方法,例如处理器1380读取社交应用程序,从而在计算机设备1300上运行应用,在显示单元1340上显示应用的页面。处理器1380可以包括一个或多个通用处理器,还可包括一个或多个数字信号处理器(digital signal processor,dsp),用于执行相关操作,以实现本技术实施例所提供的技术方案。
210.存储器1320一般包括内存和外存,内存可以为随机存储器(ram),只读存储器(rom),以及高速缓存(cache)等。外存可以为硬盘、光盘、usb盘、软盘或磁带机等。存储器1320用于存储计算机程序和其他数据,该计算机程序包括应用对应的应用程序等,其他数据可包括操作系统或应用程序被运行后产生的数据,该数据包括系统数据(例如操作系统的配置参数)和用户数据。本技术实施例中程序指令存储在存储器1320中,处理器1380执行存储在存储器1320中的程序指令,实现前文论述的终端或处理服务器执行的任意一种方法。
211.此外,计算机设备1300还可以包括显示单元1340,用于接收输入的数字信息、字符信息或接触式触摸操作/非接触式手势,以及产生与计算机设备1300的用户设置以及功能控制有关的信号输入等。具体地,本技术实施例中,该显示单元1340可以包括显示面板1341。显示面板1341例如触摸屏,可收集用户在其上或附近的触摸操作(比如玩家使用手指、触笔等任何适合的物体或附件在显示面板1341上或在显示面板1341的操作),并根据预先设定的程式驱动对应的连接装置。可选的,显示面板1341可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1380,并能接收处理器1380发来的命令并加以执行。
212.其中,显示面板1341可以采用电阻式、电容式、红外线以及表面声波等多种类型实现。除了显示单元1340,计算机设备1300还可以包括输入单元1330,输入单元1330可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的
一种或多种。图13中是以输入单元1330包括图像输入设备1331和其他输入设备1332为例。
213.除以上之外,计算机设备1300还可以包括用于给其他模块供电的电源1390、音频电路1360、近场通信模块1370和rf电路1310。计算机设备1300还可以包括一个或多个传感器1350,例如加速度传感器、光传感器、压力传感器等。音频电路1360具体包括扬声器1361和麦克风1362等,例如用户可以使用语音控制,计算机设备1300可以通过麦克风1362采集用户的声音,可以用户的声音进行控制,并在需要提示用户时,通过扬声器1361播放对应的提示音。
214.基于同一发明构思,本技术实施例提供了一种计算机可读介质,当上述计算机可读存储介质中的指令由处理器执行时,使得上述处理器能够执行如上述各个实施例中终端或处理服务器执行的任意一种方法。
215.可选地,计算机可读介质可以是非临时性计算机可读存储介质,例如,上述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd

rom、磁带、软盘和光数据存储设备等等。
216.基于同一发明构思,本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如上述各个实施例中终端和处理服务器执行的任意一种方法。
217.程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读信号介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
218.本技术的实施方式的程序产品可以采用便携式紧凑盘只读存储器(cd

rom)并包括程序代码,并可以在计算装置上运行。然而,本技术的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被命令执行系统、装置或者器件使用或者与其结合使用。
219.可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由命令执行系统、装置或者器件使用或者与其结合使用的程序。
220.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
221.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
222.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精
神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1