CN117742567A - 数据存储方法、装置、电子设备以及存储介质 - Google Patents
数据存储方法、装置、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN117742567A CN117742567A CN202211111852.9A CN202211111852A CN117742567A CN 117742567 A CN117742567 A CN 117742567A CN 202211111852 A CN202211111852 A CN 202211111852A CN 117742567 A CN117742567 A CN 117742567A
- Authority
- CN
- China
- Prior art keywords
- field
- data
- processed
- attribute
- read
- 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
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000013500 data storage Methods 0.000 title claims abstract description 62
- 238000013507 mapping Methods 0.000 claims description 114
- 238000001514 detection method Methods 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 18
- 238000005070 sampling Methods 0.000 claims description 13
- 230000006978 adaptation Effects 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 230000002829 reductive effect Effects 0.000 abstract description 34
- 230000005540 biological transmission Effects 0.000 abstract description 8
- 230000000670 limiting effect Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000007906 compression Methods 0.000 description 10
- 230000006835 compression Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000033228 biological regulation Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000013144 data compression Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000005012 migration Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000036961 partial effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 231100000989 no adverse effect Toxicity 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Abstract
本公开实施例提供了一种数据存储方法、装置、电子设备以及存储介质。所述方法包括:确定待处理实体数据中各个待处理属性字段的字段状态;所述字段状态能够描述待处理属性字段的读写使用频率情况;依据待处理属性字段的字段状态,确定与待处理属性字段适配的目标存储;采用所述目标存储对所述待处理属性字段的字段数据进行读写。本公开方案,通过引入待处理属性字段的字段状态确定与待处理属性字段适配的目标存储,以对待处理属性字段的字段数据进行读写,能够在实体属性数量快速增长情况下对数据存储效率进行优化,降低了数据的存储资源成本和网络传输带宽。
Description
技术领域
本公开实施例涉及数据处理技术领域,尤其涉及一种数据存储方法、装置、电子设备以及存储介质。
背景技术
互联网应用拥有大量的线上数据,而且数据还在不断快速增长。就数据库而言,将每一类数据对象的个体称为实体,按照增长方式可分为两类,一类是实体数量增长,另一类是实体属性数量增长。尤其实体属性数量增长,实体本身不会出现快速增长,但在实体的各种属性会随着业务需求而不断增加,在应用发展到一定阶段后,实体量级趋于饱和,但其属性对应于应用上的不同权益开关、搜索或推荐条件下的标签等,会呈现快速增长的态势,从而在数据存储上引起一定的难度,很难高效率地进行数据存储。
发明内容
本公开提供一种数据存储方法、装置、电子设备以及存储介质,以实现在实体属性数量快速增长情况下对数据存储效率进行优化。
第一方面,本公开实施例提供了一种数据存储方法,所述方法包括:
确定待处理实体数据中各个待处理属性字段的字段状态;所述字段状态能够描述待处理属性字段的读写使用频率情况;
依据待处理属性字段的字段状态,确定与待处理属性字段适配的目标存储;
采用所述目标存储对所述待处理属性字段的字段数据进行读写。
第二方面,本公开实施例还提供了一种数据存储装置,所述装置包括:
字段状态确定模块,用于确定待处理实体数据中各个待处理属性字段的字段状态;所述字段状态能够描述待处理属性字段的读写使用频率情况;
目标存储确定模块,用于依据待处理属性字段的字段状态,确定与待处理属性字段适配的目标存储;
字段数据读写模块,用于采用所述目标存储对所述待处理属性字段的字段数据进行读写。
第三方面,本公开实施例还提供了一种数据存储电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本公开任意实施例所述的数据存储方法。
第四方面,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开任意实施例所述的数据存储方法。
本公开实施例提供了一种数据存储方法,确定待处理实体数据中各个待处理属性字段的字段状态;字段状态能够描述待处理属性字段的读写使用频率情况;依据待处理属性字段的字段状态,确定与待处理属性字段适配的目标存储;采用目标存储对待处理属性字段的字段数据进行读写。本公开方案,通过引入待处理属性字段的字段状态确定与待处理属性字段适配的目标存储,以对待处理属性字段的字段数据进行读写,能够在实体属性数量快速增长情况下对数据存储效率进行优化,降低了数据的存储资源成本和网络传输带宽。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1是本公开实施例所提供的一种数据存储方法的流程图;
图2是本公开实施例所提供的一种目标存储的示意图;
图3是本公开实施例所提供的另一种数据存储方法的流程图;
图4是本公开实施例所提供的又一种数据存储方法的流程图;
图5是本公开实施例所提供的一种待处理属性字段的编解码的示意图;
图6是本公开实施例所提供的又一种数据存储方法的流程图;
图7是本公开实施例所提供的一种数据存储装置的结构示意图;
图8是本公开实施例所提供的一种数据存储电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当依据相关法律法规通过恰当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其它满足相关法律法规的方式也可应用于本公开的实现方式中。
可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。
图1为本公开实施例所提供的一种数据存储方法的流程图,本公开实施例适用于对实体数据中的属性字段数据进行优化存储的情形,该方法可以由数据存储装置来执行,该装置可以通过软件和/或硬件的形式实现,可选的,通过电子设备来实现,该电子设备可以是移动终端、PC端或服务器等。如图1所示,本公开实施例中提供的数据存储方法,可包括以下步骤:
S110、确定待处理实体数据中各个待处理属性字段的字段状态;字段状态能够描述待处理属性字段的读写使用频率情况。
其中,待处理实体数据可以是指等待被进行读写操作的实体数据。待处理属性字段可以是指等待被进行读写操作的描述实体数据属性的字段。具体的,属性字段可以包括属性名称和属性值。示例性的,以用户实体数据为例,对于大多数应用来说,用户资料服务是一个基本的数据服务。用户可以通过该服务设置个人资料信息,如昵称、头像、个性化签名等基础信息,也可以设置朋友权限、作品可见性等权益信息,同时可以在个人页查看相关的数据。这些个人资料信息可以认为是用户实体数据的属性,用户实体数据的属性可以通过多个属性字段来表示。例如,假设个人资料信息中的昵称是张三,可以将属性表示为{昵称:张三},其中,昵称为属性名称,张三为属性值。其中,字段状态可以是指属性字段的使用活跃状态,可以用于描述待处理属性字段的读写使用频率情况。示例性的,字段状态可以划分为冷字段、常规字段或者热字段等状态。其中,冷字段可以是指读写使用频率较低的字段;常规字段可以是指读写使用频率一般的字段;热字段可以是指读写使用频率较高的字段。
需要说明的是,用户属性经过长时期的更迭,属性字段数量高达上千,但是读写请求中字段使用情况并不相同,有相当一部分的历史老字段不再使用或使用频率很低,因此属于冷字段。其中,历史老字段可以包括但不限于以下几种情况:(1)、已废弃字段,如某个特定时间的活动功能,过期之后不再访问,但数据一直被存储;(2)、历史老版本/下线功能,之前早期应用软件版本写入,现在基本没有读写流量;(3)、早期打的标签,目前已经不再更新和读取;(4)、关联应用字段,如今已经完成拆分,关联部分确定可以删除;(5)、测试字段,离线环境标记用于测试,非线上真实用户。
本实施例中,可以通过读写使用频率阈值比较的方式确定待处理实体数据中各个待处理属性字段的字段状态。在一个可选示例中,预先设定第一读写使用频率阈值和第二读写使用频率阈值,并且第一读写使用频率阈值小于第二读写使用频率阈值。其中,第一读写使用频率阈值可以作为判断冷字段的依据,第二读写使用频率阈值可以作为判断热字段的依据。若待处理属性字段的读写使用频率小于第一读写使用频率阈值,则可以判定待处理属性字段的字段状态为冷字段;若待处理属性字段的读写使用频率大于或等于第一读写使用频率阈值且小于第二读写使用频率阈值,则可以判定待处理属性字段的字段状态为常规字段;若待处理属性字段的读写使用频率大于或等于第二读写使用频率阈值,则可以判定待处理属性字段的字段状态为热字段。
在另一个可选示例中,可预先设定一个第三读写使用频率阈值,第三读写使用频率阈值可以作为判断区分冷字段与热字段的依据,若待处理属性字段的读写使用频率小于第三读写使用频率阈值,则可以判定待处理属性字段的字段状态为冷字段;若待处理属性字段的读写使用频率大于或者等于第三读写使用频率阈值,则可以判定待处理属性字段的字段状态为热字段,实现待处理属性字段是属于冷字段还是热字段的判断。
作为一种可选的但非限定性的实现方式,待处理实体数据可以包括但不限于以下至少一项内容:数据仓库工具中的存量实体数据、数据写请求对应要写入的实体数据以及数据读请求对应要读取的实体数据。
其中,数据仓库工具可以是指一种用于存储、查询和分析存储在数据库中的大规模数据的工具,可以用于数据提取、转化和加载。例如,数据仓库工具可以是hive。具体的,hive是基于Hadoop的一个数据仓库工具,能将结构化的数据文件映射为一张数据库表,并可以提供SQL(Structured Query Language,结构化查询语言)查询功能。其中,存量实体数据可以是指已存储在数据库中的实体数据。数据写请求可以用于指示进行数据的写操作。数据读请求可以用于指示进行数据的读操作。
S120、依据待处理属性字段的字段状态,确定与待处理属性字段适配的目标存储。
其中,目标存储可以是指用于储存待处理属性字段的数据库。示例性的,目标存储可以为内存型数据库或磁盘型数据库。其中,内存型数据库可以是指将数据放在内存中直接操作的数据库。磁盘型数据库可以是指将数据放在磁盘上进行管理的数据库。需要说明的是,相对于磁盘来说,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比于从磁盘上访问能够极大地提高应用的性能,但是内存的成本高于磁盘。因此,相比于磁盘数据库来说,内存型数据库的数据读写速度较快且应用性能较高,但是数据库资源成本较高。
本实施例中,可以依据待处理属性字段的字段状态确定与待处理属性字段适配的目标存储。示例性的,参见图2,以字段状态为冷字段或者非冷字段(常规字段或热字段)为例,由于冷字段的读写使用频率较低,可以将冷字段存储于构建成本较低的磁盘型数据库,同时将读写使用频率较高的非冷字段存储于数据读写速度较快的内存型数据库,从而达到兼顾数据读写速度和数据库资源成本的目的。
作为一种可选的但非限定性的实现方式,依据待处理属性字段的字段状态,确定与待处理属性字段适配的目标存储,包括但不限于步骤A1-A2:
步骤A1:若检测到待处理属性字段的字段状态属于第一字段状态,则从不同数据库中选择第一类数据库作为与待处理属性字段适配的目标存储;其中,第一字段状态对应的读写使用频率大于预设频率值。
其中,第一字段状态可以用于指示读写使用频率较高的字段,例如热字段和常规字段。具体的,第一字段状态对应的读写使用频率大于预设频率值,即读写使用频率较高。其中,预设频率值可以是指预先设定的读写使用频率值。第一类数据库可以是指数据读写速度较快的数据库。本实施例中,如果检测到待处理属性字段的字段状态属于第一字段状态,则可以从不同数据库中选择第一类数据库(如内存型数据库)作为与待处理属性字段适配的目标存储,从而能够在数据量较大时有效保证数据的读写速度,提高应用性能。
步骤A2:若检测到待处理属性字段的字段状态属于第二字段状态,则从不同数据库中选择第二类数据库作为与待处理属性字段适配的目标存储;其中,第二字段状态对应的读写使用频率小于预设频率值,第一类数据库的读写响应速度大于第二类数据库的读写响应速度。
其中,第二字段状态可以用于指示读写使用频率较低的字段,例如冷字段。具体的,第二字段状态对应的读写使用频率小于预设频率值,即读写使用频率较低。第二类数据库可以是指资源成本较低的数据库。具体的,第一类数据库的读写响应速度大于第二类数据库的读写响应速度。读写响应速度可以是指对数据读写请求的响应速度。可以理解的是,读写响应速度越快,表明数据读写速度越快,因此,第一类数据库的数据读写速度大于第二类数据库的数据读写速度。本实施例中,如果检测到待处理属性字段的字段状态属于第二字段状态,则可以从不同数据库中选择第二类数据库(如磁盘型数据库)作为与待处理属性字段适配的目标存储,从而能够有效降低资源成本,提高资源复用性。
采用上述方式,可以根据不同字段状态选择合适的目标存储,当读写使用频率较高时选择数据读写速度较快的数据库,从而有效保证了数据读写速度,提高应用性能;当读写使用频率较低时选择资源成本较低的数据库,从而有效降低了资源成本,提高资源复用性。
作为一种可选的但非限定性的实现方式,第一类数据库为内存型数据库,第二类数据库为磁盘型数据库。
S130、采用目标存储对待处理属性字段的字段数据进行读写。
其中,字段数据可以是指与属性字段相关的数据。具体的,字段数据可以包括属性名称数据和属性值数据。本实施例中,在确定与待处理属性字段适配的目标存储之后,可以采用目标存储对待处理属性字段的字段数据进行读写。示例性的,假设待处理属性字段的字段状态为冷字段,则与该待处理属性字段适配的目标存储可以为磁盘型数据库。在该情况下,可以采用磁盘型数据库对待处理属性字段的字段数据进行读写操作。
作为一种可选的但非限定性的实现方式,在采用目标存储对待处理属性字段的字段数据进行读写之后,还可包括但不限于步骤B1-B2:
步骤B1:在对数据仓库工具中的存量实体数据迁移后,通过扫描存量实体数据逐条比对新存储的属性字段的字段数据与原始存储的属性字段的字段数据是否一致。
本实施例中,为了保证写操作后的数据正确性和完整性,可以增加数据一致性校验环节以校验新存储与原始存储中的数据是否一致。其中,原始存储可以理解为未进行读写操作前进行的存储。具体的,在对数据仓库工具中的存量实体数据进行迁移之后,可以通过扫描全部存量实体数据,逐条比对新存储的属性字段的字段数据与原始存储的属性字段的字段数据是否一致,以实现存量实体数据的一致性校验。其中,存量实体数据的校验为一次性的批量处理。
步骤B2:在数据写请求对应要写入的实体数据写入时,通过异步任务比对新存储的属性字段的字段数据与原始存储的属性字段的字段数据是否一致。
本实施例中,在数据写请求对应要写入的实体数据进行写入时,可以通过异步任务处理比对新存储的属性字段的字段数据与原始存储的属性字段的字段数据是否一致,以实现对增量实体数据的一致性校验。如果存在不一致的实体数据,则通过打点监控和告警通知服务负责人,以便及时处理和修复。
采用上述方式,可以对写操作的实体数据进行一致性校验,从而能够保证写操作后的数据正确性和完整性。
作为一种可选的但非限定性的实现方式,在采用目标存储对待处理属性字段的字段数据进行读写之后,还可包括但不限于以下过程:
对比读新存储接口与读原始存储接口,通过接口返回结果校验读新存储接口的属性字段的字段数据与读原始存储接口的属性字段的字段数据的一致性。
其中,接口返回结果可以作为判断数据一致性的依据。读新存储接口可以是指执行数据读操作时数据读入的存储接口。读原始存储接口可以是指执行数据读操作时数据读出的存储接口。本实施例中,在采用目标存储对待处理属性字段的字段数据进行读写之后,还可以对比读新存储接口与读原始存储接口,通过接口返回结果校验读新存储接口的属性字段的字段数据与读原始存储接口的属性字段的字段数据的一致性。此外,由于读请求的量级通常比较大,因此可以通过采样的方式进行对比。
采用上述方式,可以对读操作的实体数据进行一致性校验,从而能够保证读操作后的数据正确性和完整性。
本公开实施例的技术方案,确定待处理实体数据中各个待处理属性字段的字段状态;字段状态能够描述待处理属性字段的读写使用频率情况;依据待处理属性字段的字段状态,确定与待处理属性字段适配的目标存储;采用目标存储对待处理属性字段的字段数据进行读写。采用本公开实施例的技术方案,通过引入待处理属性字段的字段状态确定与待处理属性字段适配的目标存储,以对待处理属性字段的字段数据进行读写,能够在实体属性数量快速增长情况下对数据存储效率进行优化,降低了数据的存储资源成本和网络传输带宽。
图3为本公开实施例中提供的另一种数据存储方法的流程图。本公开实施例在上述实施例的基础上对前述实施例进行进一步优化,本公开实施例可以与上述一个或者多个实施例中各个可选方案结合。如图3所示,本公开实施例中提供的数据存储方法,可包括以下步骤:
S210、确定待处理实体数据所要使用的预设字段状态映射表;预设字段状态映射表中预先记录标注不同属性字段所归属的字段状态;字段状态能够描述待处理属性字段的读写使用频率情况。
其中,预设字段状态映射表可以是指预先建立的字段状态映射表。其中,字段状态能够描述待处理属性字段的读写使用频率情况。具体的,预设字段状态映射表中预先记录标注不同属性字段所归属的字段状态,即预设字段状态映射表中包括了属性字段与属性字段的字段状态之间的映射关系,通过预设字段状态映射表可以知晓属性字段所归属的字段状态是什么。
S220、通过查询预设字段状态映射表,确定待处理实体数据中待处理属性字段的字段状态。
本实施例中,可以通过查询预设字段状态映射表,确定待处理实体数据中待处理属性字段的字段状态。具体的,首先在预设字段状态映射表中查找到待处理实体数据中的待处理属性字段,然后根据属性字段与字段状态之间的映射关系,可以直接确定出待处理实体数据中待处理属性字段的字段状态。
作为一种可选的但非限定性的实现方式,在确定待处理实体数据使用的字段状态映射表之前,还可包括但不限于以下过程:
对数据写请求对应的属性字段进行打点检测,用以解析出被更新和使用的属性字段进行预设字段状态映射表的生成;和/或,
对数据读接口对应的属性字段进行抽样打点检测,用以解析出被读取和使用的属性字段进行预设字段状态映射表的生成;和/或,
对数据仓库工具中导出的实体数据中属性字段分布进行解析,用以解析出满足预设分布条件的属性字段进行预设字段状态映射表的生成。
其中,打点检测可以用于观测哪些属性字段在被更新和使用。抽样打点检测可以用于采用抽样打点检测的方式观测哪些属性字段在被读取和使用。属性字段分布可以用于描述属性字段的属性分布情况。示例性的,属性字段分布可以包括属性字段的占用容量和用户数量等分布情况。预设分布条件可以是指预先设定的属性字段分布条件,可以用于对属性字段分布进行限定。示例性的,可以设定占用容量阈值和用户数量阈值,通过这两个阈值设置预设分布条件。
本实施例中,在确定待处理实体数据使用的字段状态映射表之前,可以基于metrics(监控打点系统)指标平台对数据写请求对应的属性字段进行打点检测,用以解析出被更新和使用的属性字段进行预设字段状态映射表的生成;和/或,对数据读接口对应的属性字段进行抽样打点检测,用以解析出被读取和使用的属性字段进行预设字段状态映射表的生成;和/或,对数据仓库工具中导出的实体数据中属性字段分布进行解析,用以解析出满足预设分布条件的属性字段进行预设字段状态映射表的生成。
需要说明的是,由于读流量通常较高,为避免全量打点检测带来性能变差的问题,因而对数据读接口对应的属性字段进行抽样打点检测。此外,通过对数据仓库工具中导出的实体数据中属性字段分布进行解析,可以得到属性字段的画像特征,进而可以依据该画像特征选择满足预设分布条件的属性字段进行预设字段状态映射表的生成,例如优先将占用容量高、用户数量多的属性字段映射为冷字段。其中,画像特征可以用于描述属性字段分布特点。
采用上述方式,通过属性字段的打点检测和/或属性字段分布解析,可以对各个属性字段的字段状态进行标注,从而生成预设字段状态映射表,以便后续通过查询预设字段状态映射表快速确定出待处理属性字段的字段状态。
作为一种可选的但非限定性的实现方式,在确定待处理实体数据所要使用的预设字段状态映射表之后,还可包括但不限于步骤C1-C2:
步骤C1:对预设字段状态映射表中记录的各个属性字段的读写流量进行检测。
其中,读写流量可以用于反映数据读写使用频率。具体的,读写流量增减变化与数据读写使用频率增减变化呈现正向关系,即若读写流量增加,则可以表明数据读写使用频率增加;相反的,若读写流量减少,则表明数据读写使用频率减少。本实施例中,通过对预设字段状态映射表中记录的各个属性字段的读写流量进行检测,可以确定出各个属性字段的读写流量变化情况,具体表现为读写流量增加或者读写流量减少。
步骤C2:依据对各个属性字段的读写流量检测结果,对预设字段状态映射表中记录的不同属性字段所归属的字段状态进行更新调整,用以基于更新后的预设字段状态映射表对字段状态改变的属性字段的字段数据进行迁移。
其中,读写流量检测结果可以用于表征各属性字段的读写流量变化情况,具体可以是读写流量增加或读写流量减少。需要说明的是,目前用户资料服务作为业务和存储的中间层并不能主动感知到属性字段下线,因此造成属性字段随着业务需求而源源不断增加,但并未对下线的属性字段做进一步处理。
本实施例中,可以通过建立属性字段生命周期管理机制,实现对属性字段所归属的字段状态进行更新调整,以保障属性字段增长的可持续性。具体的,可以依据对各个属性字段的读写流量检测结果,对预设字段状态映射表中记录的不同属性字段所归属的字段状态进行更新调整,进而基于更新后的预设字段状态映射表对字段状态改变的属性字段的字段数据进行迁移。示例性的,假设某个属性字段的初始字段状态为冷字段,该属性字段存储于磁盘型数据库中。若该属性字段在某段时期内突然流行,则可以通过对属性字段的读写流量进行检测得到读写流量检测结果为读写流量大幅度增加,当其达到了热字段的读写流量水平时,可以将该属性字段的字段状态从初始的冷字段更新为热字段,并将原来存储于磁盘型数据库的该属性字段的字段数据迁移至内存型数据库。
需要说明的是,本实施例对进行字段数据迁移的执行周期不做任何限定,可以根据属性字段的增长速度和存储容量进行灵活调整。例如,可以半年进行一次字段数据迁移。
采用上述方式,可以通过建立属性字段生命周期管理机制对各个属性字段的读写流量进行检测,从而能够对预设字段状态映射表中记录的不同属性字段所归属的字段状态进行更新调整,保障了属性字段增长的可持续性。
S230、依据待处理属性字段的字段状态,确定与待处理属性字段适配的目标存储。
S240、采用目标存储对待处理属性字段的字段数据进行读写。
本公开实施例的技术方案,确定待处理实体数据所要使用的预设字段状态映射表;预设字段状态映射表中预先记录标注不同属性字段所归属的字段状态;通过查询预设字段状态映射表,确定待处理实体数据中待处理属性字段的字段状态。采用本公开实施例的技术方案,能够在实体属性数量快速增长情况下对数据存储效率进行优化,降低了数据的存储资源成本和网络传输带宽,同时可以通过查询预设字段状态映射表,快速确定待处理实体数据中待处理属性字段的字段状态。
图4为本公开实施例中提供的又一种数据存储方法的流程图。本公开实施例在上述实施例的基础上对前述实施例进行进一步优化,本公开实施例可以与上述一个或者多个实施例中各个可选方案结合。如图4所示,本公开实施例中提供的数据存储方法,可包括以下步骤:
S310、确定待处理实体数据中各个待处理属性字段的字段状态;字段状态能够描述待处理属性字段的读写使用频率情况。
S320、依据待处理属性字段的字段状态,确定与待处理属性字段适配的目标存储。
S330、查询待处理属性字段对应键值对中待处理字段名适配的数字序列标识。
本实施例是针对待处理实体数据中的数据仓库工具中的存量实体数据和数据写请求对应要写入的实体数据对待处理属性字段中的待处理字段名进行编码。其中,键值对可以是指一种数据存储的格式。具体的,就数据存储格式而言,用户实体具有唯一的用户标识(例如id号),实体的属性可以通过json字符串方式存储,该存储方式是一种典型的键值对(key-value)形式。其中,key为字段名(即属性名称),value为字段数据取值(即属性值)。例如,在键值对{"nickname":"张三","visibility":0}中,字段名包括nickname(昵称)和visibility(可见性),对应的字段数据取值分别为张三和0(表示不可见)。待处理字段名可以是指等待被进行读写操作的属性字段的字段名称。数字序列标识可以是指用于对字段名进行唯一标识的数字序列。
作为一种可选的但非限定性的实现方式,查询待处理属性字段对应键值对中待处理字段名适配的数字序列标识,还可包括但不限于以下过程:
通过预设编码映射表查询待处理属性字段对应键值对中待处理字段名适配的数字序列标识;
其中,预设编码映射表中记录不同字段名到数字序列标识的映射关联关系,至少部分字段名映射关联的数字序列标识按照字段名使用频率进行赋值。
其中,预设编码映射表可以是指预先设定的将字段名编码成数字序列标识的对应关系映射表。具体的,预设编码映射表中记录了不同字段名到数字序列标识的映射关联关系,且至少部分字段名映射关联的数字序列标识按照字段名使用频率进行赋值。示例性的,对属性字段的字段名按照使用频率从小到大的顺序,从1开始,每个字段名唯一对应一个数字序列标识,由此可以建立记录字段名到数字序列标识的映射关联关系的预设编码映射表。其中,字段名使用频率越高,则数字序列标识越小,占用存储空间越小,数据压缩率越高。
需要说明的是,实体属性在数据库里表示为单独的extra字段,一个实体及其属性在数据库中记录为一行。随着业务的不断迭代,实体的属性数量不断增加,json字符串长度越来越大,导致服务在成本、性能、可用性和可扩展性等方面面临诸多问题,因此可通过属性字段编码压缩进一步优化存储容量空间。这里所说的属性字段编码压缩与现有技术中的数据压缩算法(例如ZSTD、LZ4和SNAPPY等)不同。在现有技术中,数据压缩算法是通过对数据进行特定压缩编码,不同压缩算法具有不同的压缩比,线上服务根据响应时间和计算性能等要求选择合适的压缩算法。数据压缩算法虽然可以减少存储容量,但会为数据的编码和解码带来一定的计算成本开销,尤其对于线上海量并发请求的服务,其响应时间是一个重要指标,编解码过程会增加处理延迟,容易导致用户体验降低。本实施例中,可以通过查询预设编码映射表将属性字段中的字段名进行编码,查表的时间复杂度为O(1),因此不会带来额外的计算开销,对于写接口的数据写入延迟不会产生负面影响。
采用上述方式,可以通过查询预设编码映射表对属性字段中的字段名进行快速编码,能够有效降低实体数据存储容量,节约存储资源;以数字序列标识表示字段名,节省存储空间,无需限制属性字段的命名长度,提高了业务友好度;减小了单个实体的数据存储容量,防止由于字段名过长导致写请求失败,提高了服务可用性;由于每个属性字段的占用存储空间变小,实体数据属性的总体占用空间变小,因而在有限的缓存空间下能够存储更多的实体数据,提高了缓存命中率,降低了写接口数据延迟;通过属性字段压缩编码使得实体属性所需要的存储空间减小,有效降低了网络传输数据包大小,节省了网络带宽。
S340、将待处理字段名适配的数字序列标识与待处理属性字段的字段数据取值作为新的键值对写入目标存储。
本实施例中,在查询待处理属性字段对应键值对中待处理字段名适配的数字序列标识之后,可以用数字序列标识代替待处理字段名,从而将待处理字段名适配的数字序列标识与待处理属性字段的字段数据取值作为新的键值对写入目标存储。示例性的,假设键值对为{"allow_friend_visible_swith":1},即待处理字段名为allow_friend_visible_swith,字段数据取值为1。如果通过查询预设编码映射表确定待处理字段名适配的数字序列标识为39,则可以确定编码压缩后得到的新的键值对为{"39":1},此时可以将{"39":1}写入目标存储,由此可看出字段名的容量占用明显减小。
参见图5,响应于数据写请求,可以通过预设编码映射表查询待处理属性字段对应键值对中待处理字段名适配的数字序列标识,进而根据待处理字段名适配的数字序列标识和待处理属性字段的字段数据取值对属性字段进行编码,并将编码后的新的键值对写入内存型数据库。
本公开实施例的技术方案,查询待处理属性字段对应键值对中待处理字段名适配的数字序列标识;将待处理字段名适配的数字序列标识与待处理属性字段的字段数据取值作为新的键值对写入目标存储。采用本公开实施例的技术方案,能够在实体属性数量快速增长情况下对数据存储效率进行优化,降低了数据的存储资源成本和网络传输带宽,同时可以通过属性字段编码压缩将待处理字段名快速压缩为与之适配的数字序列标识,能够有效降低实体数据存储容量,节约存储资源;以数字序列标识表示字段名,节省存储空间,无需限制属性字段的命名长度,提高了业务友好度;减小了单个实体的数据存储容量,防止由于字段名过长导致写请求失败,提高了服务可用性;由于每个属性字段的占用存储空间变小,实体数据属性的总体占用空间变小,因而在有限的缓存空间下能够存储更多的实体数据,提高了缓存命中率,降低了写接口数据延迟;通过属性字段压缩编码使得实体属性所需要的存储空间减小,有效降低了网络传输数据包大小,节省了网络带宽。
图6为本公开实施例所提供的又一种数据存储方法的流程图。本公开实施例在上述实施例的基础上对前述实施例进行进一步优化,本公开实施例可以与上述一个或者多个实施例中各个可选方案结合。如图6所示,本公开实施例中提供的数据存储方法,可包括以下步骤:
S410、确定待处理实体数据中各个待处理属性字段的字段状态;字段状态能够描述待处理属性字段的读写使用频率情况。
S420、依据待处理属性字段的字段状态,确定与待处理属性字段适配的目标存储。
S430、从目标存储中读取待处理属性字段对应键值对记录的数字序列标识。
本实施例是针对待处理实体数据中的数据读请求对应要读取的实体数据对待处理属性字段中的待处理字段名进行解码还原本实施例中,首先从目标存储中读取待处理属性字段对应键值对记录的数字序列标识。
S440、查询与键值对记录的数字序列标识适配的字段名,将适配的字段名与键值对记录的字段数据取值进行封装返回。
本实施例中,在读取完待处理属性字段对应键值对记录的数字序列标识后,需要进一步查询与键值对记录的数字序列标识适配的字段名,并将适配的字段名与键值对记录的字段数据取值进行封装返回。
作为一种可选的但非限定性的实现方式,查询与键值对记录的数字序列标识适配的字段名,还可包括但不限于以下过程:
通过预设解码映射表查询待处理属性字段对应键值对记录的数字序列标识适配的字段名;
其中,预设解码映射表中记录不同数字序列标识到字段名的映射关联关系,至少部分数字序列标识按照数字序列标识关联的字段名使用频率进行赋值。
其中,预设解码映射表可以是指预先设定的将数字序列标识解码成字段名的对应关系映射表。具体的,预设解码映射表中记录了不同数字序列标识到字段名的映射关联关系,至少部分数字序列标识按照数字序列标识关联的字段名使用频率进行赋值。其中,对至少部分数字序列标识的赋值方式可以参见上述预设编码映射表中对至少部分数字序列标识的赋值过程,此处不再赘述。
本实施例中,可以通过查询预设解码映射表对数字序列标识进行快速解码,查表的时间复杂度为O(1),因此不会带来额外的计算开销,对于读接口的数据读取延迟不会产生负面影响。
参见图5,为了响应数据读请求,首先从内存型数据库中读取待处理属性字段对应键值对记录的数字序列标识,然后通过预设解码映射表对查询待处理属性字段对应键值对记录的数字序列标识进行解码,得到待处理属性字段对应键值对记录的数字序列标识适配的字段名,以对待处理属性字段的原始字段名进行还原。
采用上述方式,可以通过预设解码映射表对数字序列标识进行快速解码,从而将数字序列标识解析还原成真实的属性字段,能够有效降低实体数据存储容量,节约存储资源;以数字序列标识表示字段名,节省存储空间,无需限制属性字段的命名长度,提高了业务友好度;减小了单个实体的数据存储容量,提高了服务可用性;由于每个属性字段的占用存储空间变小,实体数据属性的总体占用空间变小,因而在有限的缓存空间下能够存储更多的实体数据,提高了缓存命中率,降低了读接口数据延迟。
作为一种可选的但非限定性的实现方式,在查询与键值对记录的数字序列标识适配的字段名之后,还可包括但不限于步骤D1-D2:
步骤D1:若未查询到与键值对记录的数字序列标识适配的字段名,则确定适配的字段名是否为原始存储对应的原字符串名。
其中,原字符串名可以是指原始存储中用于表示字段名的字符串名称。本实施例中,在查询与键值对记录的数字序列标识适配的字段名之后,若未查询到与键值对记录的数字序列标识适配的字段名,则可以进一步确定适配的字段名是否为原始存储对应的原字符串名。需要说明的是,为了确保数据的容错性,在响应数据读请求的过程中,若出现解码失败的情况,可以通过查询预设编码映射表来判断适配的字段名是否为原始存储对应的原字符串名。
步骤D2:若是,则将原始存储对应的原字符串名与键值对记录的字段数据取值进行封装返回。
本实施例中,如果适配的字段名是原始存储对应的原字符串名,则可以将原始存储对应的原字符串名与键值对记录的字段数据取值进行封装返回,能够兼容原始存储的数据解析,避免出现偶然的数据写脏但读取失败的情况;如果适配的字段名不是原始存储对应的原字符串名,则向服务负责人报告解码错误,以便对解码错误进行及时处理。其中,若一个用户对一个资源做了修改,此时另外一个用户正好读取了这条被修改的记录,然后第一个用户放弃修改,使得数据回到被修改之前,而在该情况下会导致读取的数据与原始存储数据不同,这两个不同的结果即为脏读。
采用上述方式,能够兼容原始存储的数据解析,避免出现偶然的数据写脏但读取失败的情况,从而确保所读取数据的容错性。
本公开实施例的技术方案,从目标存储中读取待处理属性字段对应键值对记录的数字序列标识;查询与键值对记录的数字序列标识适配的字段名,将适配的字段名与键值对记录的字段数据取值进行封装返回。采用本公开实施例的技术方案,能够在实体属性数量快速增长情况下对数据存储效率进行优化,降低了数据的存储资源成本和网络传输带宽,同时可以通过预设解码映射表对数字序列标识进行快速解码,从而将数字序列标识解析还原成真实的属性字段,能够有效降低实体数据存储容量,节约存储资源;以数字序列标识表示字段名,节省存储空间,无需限制属性字段的命名长度,提高了业务友好度;减小了单个实体的数据存储容量,提高了服务可用性;由于每个属性字段的占用存储空间变小,实体数据属性的总体占用空间也变小,因而在有限的缓存空间下能够存储更多的实体数据,提高了缓存命中率,降低了读接口数据延迟。
图7为本公开实施例所提供的一种数据存储装置的结构示意图,本公开实施例适用于对实体数据中的属性字段数据进行优化存储的情形,该装置可以通过软件和/或硬件的形式实现,并一般集成在任何具有网络通信功能的电子设备上,该电子设备可以是但不限于移动终端、PC电脑或服务器等。如图7所示,所述装置包括:字段状态确定模块510、目标存储确定模块520以及字段数据读写模块530;其中:
字段状态确定模块510,用于确定待处理实体数据中各个待处理属性字段的字段状态;所述字段状态能够描述待处理属性字段的读写使用频率情况;
目标存储确定模块520,用于依据待处理属性字段的字段状态,确定与待处理属性字段适配的目标存储;
字段数据读写模块530,用于采用所述目标存储对所述待处理属性字段的字段数据进行读写。
在本公开实施例的一种可选方案中,可选的,所述字段状态确定模块510,用于:
确定待处理实体数据所要使用的预设字段状态映射表;所述预设字段状态映射表中预先记录标注不同属性字段所归属的字段状态;
通过查询所述预设字段状态映射表,确定所述待处理实体数据中待处理属性字段的字段状态。
在本公开实施例的一种可选方案中,可选的,所述字段状态确定模块510,还用于:
在确定待处理实体数据使用的字段状态映射表之前,对数据写请求对应的属性字段进行打点检测,用以解析出被更新和使用的属性字段进行所述预设字段状态映射表的生成;和/或,
对数据读接口对应的属性字段进行抽样打点检测,用以解析出被读取和使用的属性字段进行所述预设字段状态映射表的生成;和/或,
对数据仓库工具中导出的实体数据中属性字段分布进行解析,用以解析出满足预设分布条件的属性字段进行所述预设字段状态映射表的生成。
在本公开实施例的一种可选方案中,可选的,所述目标存储确定模块520,用于:
若检测到所述待处理属性字段的字段状态属于第一字段状态,则从不同数据库中选择第一类数据库作为与所述待处理属性字段适配的目标存储;
若检测到所述待处理属性字段的字段状态属于第二字段状态,则从不同数据库中选择第二类数据库作为与所述待处理属性字段适配的目标存储;
其中,所述第一字段状态对应的读写使用频率大于预设频率值,所述第二字段状态对应的读写使用频率小于预设频率值,所述第一类数据库的读写响应速度大于所述第二类数据库的读写响应速度。
在本公开实施例的一种可选方案中,可选的,所述第一类数据库为内存型数据库,所述第二类数据库为磁盘型数据库。
在本公开实施例的一种可选方案中,可选的,所述字段状态确定模块510,还用于:
在确定待处理实体数据所要使用的预设字段状态映射表之后,对预设字段状态映射表中记录的各个属性字段的读写流量进行检测;
依据对各个属性字段的读写流量检测结果,对预设字段状态映射表中记录的不同属性字段所归属的字段状态进行更新调整,用以基于更新后的预设字段状态映射表对字段状态改变的属性字段的字段数据进行迁移。
在本公开实施例的一种可选方案中,可选的,所述字段数据读写模块530,包括:
数字序列标识查询单元,用于查询所述待处理属性字段对应键值对中待处理字段名适配的数字序列标识;
目标存储写入单元,用于将所述待处理字段名适配的数字序列标识与所述待处理属性字段的字段数据取值作为新的键值对写入所述目标存储。
在本公开实施例的一种可选方案中,可选的,所述数字序列标识查询单元,用于:
通过预设编码映射表查询所述待处理属性字段对应键值对中待处理字段名适配的数字序列标识;
其中,所述预设编码映射表中记录不同字段名到数字序列标识的映射关联关系,至少部分字段名映射关联的数字序列标识按照字段名使用频率进行赋值。
在本公开实施例的一种可选方案中,可选的,所述字段数据读写模块530,还包括:
数字序列标识读取单元,用于从所述目标存储中读取待处理属性字段对应键值对记录的数字序列标识;
第一字段封装单元,用于查询与所述键值对记录的数字序列标识适配的字段名,将所述适配的字段名与所述键值对记录的字段数据取值进行封装返回。
在本公开实施例的一种可选方案中,可选的,所述字段数据取值封装单元,用于:
通过预设解码映射表查询所述待处理属性字段对应键值对记录的数字序列标识适配的字段名;
其中,所述预设解码映射表中记录不同数字序列标识到字段名的映射关联关系,至少部分数字序列标识按照数字序列标识关联的字段名使用频率进行赋值。
在本公开实施例的一种可选方案中,可选的,所述字段数据读写模块530,还包括:
字段名确定单元,用于在查询与所述键值对记录的数字序列标识适配的字段名之后,若未查询到与所述键值对记录的数字序列标识适配的字段名,则确定所述适配的字段名是否为原始存储对应的原字符串名;
第二字段封装单元,用于若是,则将原始存储对应的原字符串名与所述键值对记录的字段数据取值进行封装返回。
在本公开实施例的一种可选方案中,可选的,所述待处理实体数据包括以下至少一项内容:数据仓库工具中的存量实体数据、数据写请求对应要写入的实体数据以及数据读请求对应要读取的实体数据。
在本公开实施例的一种可选方案中,可选的,所述装置还包括:
第一字段数据判断模块,用于在采用所述目标存储对所述待处理属性字段的字段数据进行读写之后,在对数据仓库工具中的存量实体数据迁移后,通过扫描存量实体数据逐条比对新存储的属性字段的字段数据与原始存储的属性字段的字段数据是否一致;
第二字段数据判断模块,用于在数据写请求对应要写入的实体数据写入时,通过异步任务比对新存储的属性字段的字段数据与原始存储的属性字段的字段数据是否一致。
在本公开实施例的一种可选方案中,可选的,所述装置还包括:
第三字段数据判断模块,用于在采用所述目标存储对所述待处理属性字段的字段数据进行读写之后,对比读新存储接口与读原始存储接口,通过接口返回结果校验所述读新存储接口的属性字段的字段数据与所述读原始存储接口的属性字段的字段数据的一致性。
本公开实施例所提供的数据存储装置可执行本公开任意实施例所提供的数据存储方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,上述装置所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本公开实施例的保护范围。
图8为本公开实施例所提供的一种数据存储电子设备的结构示意图。下面参考图8,其示出了适于用来实现本公开实施例的电子设备(例如图8中的终端设备或服务器)500的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图8示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM 502以及RAM 503通过总线504彼此相连。编辑/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图8示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
本公开实施例提供的电子设备与上述实施例提供的数据存储方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例与上述实施例具有相同的有益效果。
本公开实施例提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所提供的数据存储方法。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:响应于触摸操作请求,确定目标设备关联的目标触摸操作信息;依据所述目标触摸操作信息,确定在所述目标设备执行目标交互操作时适配的惯用交互触发条件信息;依据所述惯用交互触发条件信息,对所述目标设备的目标交互操作进行适配控制。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,示例1提供了一种数据存储方法,所述方法包括:
确定待处理实体数据中各个待处理属性字段的字段状态;所述字段状态能够描述待处理属性字段的读写使用频率情况;
依据待处理属性字段的字段状态,确定与待处理属性字段适配的目标存储;
采用所述目标存储对所述待处理属性字段的字段数据进行读写。
示例2根据示例1所述的方法,确定待处理实体数据中待处理属性字段的字段状态,包括:
确定待处理实体数据所要使用的预设字段状态映射表;所述预设字段状态映射表中预先记录标注不同属性字段所归属的字段状态;
通过查询所述预设字段状态映射表,确定所述待处理实体数据中待处理属性字段的字段状态。
示例3根据示例2所述的方法,在确定待处理实体数据使用的字段状态映射表之前,还包括:
对数据写请求对应的属性字段进行打点检测,用以解析出被更新和使用的属性字段进行所述预设字段状态映射表的生成;和/或,
对数据读接口对应的属性字段进行抽样打点检测,用以解析出被读取和使用的属性字段进行所述预设字段状态映射表的生成;和/或,
对数据仓库工具中导出的实体数据中属性字段分布进行解析,用以解析出满足预设分布条件的属性字段进行所述预设字段状态映射表的生成。
示例4根据示例1所述的方法,依据待处理属性字段的字段状态,确定与待处理属性字段适配的目标存储,包括:
若检测到所述待处理属性字段的字段状态属于第一字段状态,则从不同数据库中选择第一类数据库作为与所述待处理属性字段适配的目标存储;
若检测到所述待处理属性字段的字段状态属于第二字段状态,则从不同数据库中选择第二类数据库作为与所述待处理属性字段适配的目标存储;
其中,所述第一字段状态对应的读写使用频率大于预设频率值,所述第二字段状态对应的读写使用频率小于预设频率值,所述第一类数据库的读写响应速度大于所述第二类数据库的读写响应速度。
示例5根据示例4所述的方法,所述第一类数据库为内存型数据库,所述第二类数据库为磁盘型数据库。
示例6根据示例2所述的方法,在确定待处理实体数据所要使用的预设字段状态映射表之后,还包括:
对预设字段状态映射表中记录的各个属性字段的读写流量进行检测;
依据对各个属性字段的读写流量检测结果,对预设字段状态映射表中记录的不同属性字段所归属的字段状态进行更新调整,用以基于更新后的预设字段状态映射表对字段状态改变的属性字段的字段数据进行迁移。
示例7根据示例1所述的方法,采用所述目标存储对所述待处理属性字段的字段数据进行读写,包括:
查询所述待处理属性字段对应键值对中待处理字段名适配的数字序列标识;
将所述待处理字段名适配的数字序列标识与所述待处理属性字段的字段数据取值作为新的键值对写入所述目标存储。
示例8根据示例7所述的方法,查询所述待处理属性字段对应键值对中待处理字段名适配的数字序列标识,包括:
通过预设编码映射表查询所述待处理属性字段对应键值对中待处理字段名适配的数字序列标识;
其中,所述预设编码映射表中记录不同字段名到数字序列标识的映射关联关系,至少部分字段名映射关联的数字序列标识按照字段名使用频率进行赋值。
示例9根据示例1所述的方法,采用所述目标存储对所述待处理属性字段的字段数据进行读写,包括:
从所述目标存储中读取待处理属性字段对应键值对记录的数字序列标识;
查询与所述键值对记录的数字序列标识适配的字段名,将所述适配的字段名与所述键值对记录的字段数据取值进行封装返回。
示例10根据示例9所述的方法,查询与所述键值对记录的数字序列标识适配的字段名,包括:
通过预设解码映射表查询所述待处理属性字段对应键值对记录的数字序列标识适配的字段名;
其中,所述预设解码映射表中记录不同数字序列标识到字段名的映射关联关系,至少部分数字序列标识按照数字序列标识关联的字段名使用频率进行赋值。
示例11根据示例9所述的方法,在查询与所述键值对记录的数字序列标识适配的字段名之后,还包括:
若未查询到与所述键值对记录的数字序列标识适配的字段名,则确定所述适配的字段名是否为原始存储对应的原字符串名;
若是,则将原始存储对应的原字符串名与所述键值对记录的字段数据取值进行封装返回。
示例12根据示例1所述的方法,所述待处理实体数据包括以下至少一项内容:数据仓库工具中的存量实体数据、数据写请求对应要写入的实体数据以及数据读请求对应要读取的实体数据。
示例13根据示例1所述的方法,在采用所述目标存储对所述待处理属性字段的字段数据进行读写之后,还包括:
在对数据仓库工具中的存量实体数据迁移后,通过扫描存量实体数据逐条比对新存储的属性字段的字段数据与原始存储的属性字段的字段数据是否一致;
在数据写请求对应要写入的实体数据写入时,通过异步任务比对新存储的属性字段的字段数据与原始存储的属性字段的字段数据是否一致。
示例14根据示例1所述的方法,在采用所述目标存储对所述待处理属性字段的字段数据进行读写之后,还包括:
对比读新存储接口与读原始存储接口,通过接口返回结果校验所述读新存储接口的属性字段的字段数据与所述读原始存储接口的属性字段的字段数据的一致性。
根据本公开的一个或多个实施例,示例15还提供了一种数据存储装置,所述数据存储装置包括:
字段状态确定模块,用于确定待处理实体数据中各个待处理属性字段的字段状态;所述字段状态能够描述待处理属性字段的读写使用频率情况;
目标存储确定模块,用于依据待处理属性字段的字段状态,确定与待处理属性字段适配的目标存储;
字段数据读写模块,用于采用所述目标存储对所述待处理属性字段的字段数据进行读写。
根据本公开的一个或多个实施例,示例16还提供了一种数据存储电子设备,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如示例1-14中任一所述的数据存储方法。
根据本公开的一个或多个实施例,示例17还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如示例1-14中任一所述的数据存储方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (14)
1.一种数据存储方法,其特征在于,所述方法包括:
确定待处理实体数据中各个待处理属性字段的字段状态;所述字段状态能够描述待处理属性字段的读写使用频率情况;
依据待处理属性字段的字段状态,确定与待处理属性字段适配的目标存储;
采用所述目标存储对所述待处理属性字段的字段数据进行读写。
2.根据权利要求1所述的方法,其特征在于,确定待处理实体数据中待处理属性字段的字段状态,包括:
确定待处理实体数据所要使用的预设字段状态映射表;所述预设字段状态映射表中预先记录标注不同属性字段所归属的字段状态;
通过查询所述预设字段状态映射表,确定所述待处理实体数据中待处理属性字段的字段状态。
3.根据权利要求2所述的方法,其特征在于,在确定待处理实体数据使用的字段状态映射表之前,还包括:
对数据写请求对应的属性字段进行打点检测,用以解析出被更新和使用的属性字段进行所述预设字段状态映射表的生成;和/或,
对数据读接口对应的属性字段进行抽样打点检测,用以解析出被读取和使用的属性字段进行所述预设字段状态映射表的生成;和/或,
对数据仓库工具中导出的实体数据中属性字段分布进行解析,用以解析出满足预设分布条件的属性字段进行所述预设字段状态映射表的生成。
4.根据权利要求1所述的方法,其特征在于,依据待处理属性字段的字段状态,确定与待处理属性字段适配的目标存储,包括:
若检测到所述待处理属性字段的字段状态属于第一字段状态,则从不同数据库中选择第一类数据库作为与所述待处理属性字段适配的目标存储;
若检测到所述待处理属性字段的字段状态属于第二字段状态,则从不同数据库中选择第二类数据库作为与所述待处理属性字段适配的目标存储;
其中,所述第一字段状态对应的读写使用频率大于预设频率值,所述第二字段状态对应的读写使用频率小于预设频率值,所述第一类数据库的读写响应速度大于所述第二类数据库的读写响应速度。
5.根据权利要求2所述的方法,其特征在于,在确定待处理实体数据所要使用的预设字段状态映射表之后,还包括:
对预设字段状态映射表中记录的各个属性字段的读写流量进行检测;
依据对各个属性字段的读写流量检测结果,对预设字段状态映射表中记录的不同属性字段所归属的字段状态进行更新调整,用以基于更新后的预设字段状态映射表对字段状态改变的属性字段的字段数据进行迁移。
6.根据权利要求1所述的方法,其特征在于,采用所述目标存储对所述待处理属性字段的字段数据进行读写,包括:
查询所述待处理属性字段对应键值对中待处理字段名适配的数字序列标识;
将所述待处理字段名适配的数字序列标识与所述待处理属性字段的字段数据取值作为新的键值对写入所述目标存储。
7.根据权利要求6所述的方法,其特征在于,查询所述待处理属性字段对应键值对中待处理字段名适配的数字序列标识,包括:
通过预设编码映射表查询所述待处理属性字段对应键值对中待处理字段名适配的数字序列标识;
其中,所述预设编码映射表中记录不同字段名到数字序列标识的映射关联关系,至少部分字段名映射关联的数字序列标识按照字段名使用频率进行赋值。
8.根据权利要求1所述的方法,其特征在于,采用所述目标存储对所述待处理属性字段的字段数据进行读写,包括:
从所述目标存储中读取待处理属性字段对应键值对记录的数字序列标识;
查询与所述键值对记录的数字序列标识适配的字段名,将所述适配的字段名与所述键值对记录的字段数据取值进行封装返回。
9.根据权利要求8所述的方法,其特征在于,查询与所述键值对记录的数字序列标识适配的字段名,包括:
通过预设解码映射表查询所述待处理属性字段对应键值对记录的数字序列标识适配的字段名;
其中,所述预设解码映射表中记录不同数字序列标识到字段名的映射关联关系,至少部分数字序列标识按照数字序列标识关联的字段名使用频率进行赋值。
10.根据权利要求8所述的方法,其特征在于,在查询与所述键值对记录的数字序列标识适配的字段名之后,还包括:
若未查询到与所述键值对记录的数字序列标识适配的字段名,则确定所述适配的字段名是否为原始存储对应的原字符串名;
若是,则将原始存储对应的原字符串名与所述键值对记录的字段数据取值进行封装返回。
11.根据权利要求1所述的方法,其特征在于,在采用所述目标存储对所述待处理属性字段的字段数据进行读写之后,还包括:
在对数据仓库工具中的存量实体数据迁移后,通过扫描存量实体数据逐条比对新存储的属性字段的字段数据与原始存储的属性字段的字段数据是否一致;或者,
在数据写请求对应要写入的实体数据写入时,通过异步任务比对新存储的属性字段的字段数据与原始存储的属性字段的字段数据是否一致;或者,
对比读新存储接口与读原始存储接口,通过接口返回结果校验所述读新存储接口的属性字段的字段数据与所述读原始存储接口的属性字段的字段数据的一致性。
12.一种数据存储装置,其特征在于,所述装置包括:
字段状态确定模块,用于确定待处理实体数据中各个待处理属性字段的字段状态;所述字段状态能够描述待处理属性字段的读写使用频率情况;
目标存储确定模块,用于依据待处理属性字段的字段状态,确定与待处理属性字段适配的目标存储;
字段数据读写模块,用于采用所述目标存储对所述待处理属性字段的字段数据进行读写。
13.一种数据存储电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-11中任一所述的数据存储方法。
14.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-11中任一所述的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211111852.9A CN117742567A (zh) | 2022-09-13 | 2022-09-13 | 数据存储方法、装置、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211111852.9A CN117742567A (zh) | 2022-09-13 | 2022-09-13 | 数据存储方法、装置、电子设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117742567A true CN117742567A (zh) | 2024-03-22 |
Family
ID=90257807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211111852.9A Pending CN117742567A (zh) | 2022-09-13 | 2022-09-13 | 数据存储方法、装置、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117742567A (zh) |
-
2022
- 2022-09-13 CN CN202211111852.9A patent/CN117742567A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10560465B2 (en) | Real time anomaly detection for data streams | |
US20190068690A1 (en) | Automated management of resource attributes across network-based services | |
CN110019080B (zh) | 数据访问方法和装置 | |
CN111352902A (zh) | 日志处理方法、装置、终端设备及存储介质 | |
CN109543891B (zh) | 容量预测模型的建立方法、设备及计算机可读存储介质 | |
CN111291103A (zh) | 接口数据的解析方法、装置、电子设备及存储介质 | |
US9514176B2 (en) | Database update notification method | |
US9374417B1 (en) | Dynamic specification auditing for a distributed system | |
CN115825312B (zh) | 色谱检测数据交互方法、装置、设备和计算机可读介质 | |
US11178197B2 (en) | Idempotent processing of data streams | |
CN115168362A (zh) | 数据处理方法、装置、可读介质及电子设备 | |
CN113918659A (zh) | 数据操作方法、装置、存储介质及电子设备 | |
CN111885184A (zh) | 高并发场景下热点访问关键字处理方法和装置 | |
CN117742567A (zh) | 数据存储方法、装置、电子设备以及存储介质 | |
CN113986921A (zh) | 一种黑名单查询方法、系统、电子设备及存储介质 | |
US11500837B1 (en) | Automating optimizations for items in a hierarchical data store | |
CN111460020B (zh) | 用于解析消息的方法、装置、电子设备和介质 | |
CN114637969A (zh) | 目标对象的鉴权方法及装置 | |
CN108846141B (zh) | 一种离线缓存加载方法及装置 | |
CN113297267A (zh) | 数据缓存和任务处理方法、装置、设备以及存储介质 | |
CN110784479B (zh) | 一种数据校验方法、装置、电子设备及存储介质 | |
CN114297157B (zh) | 文件处理方法、装置、设备及介质 | |
CN113362097B (zh) | 一种用户确定方法和装置 | |
CN110716885B (zh) | 数据管理方法、装置、电子设备和存储介质 | |
CN114925087A (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 |