CN105022739A - 数据的存储方法及装置 - Google Patents
数据的存储方法及装置 Download PDFInfo
- Publication number
- CN105022739A CN105022739A CN201410160242.7A CN201410160242A CN105022739A CN 105022739 A CN105022739 A CN 105022739A CN 201410160242 A CN201410160242 A CN 201410160242A CN 105022739 A CN105022739 A CN 105022739A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- bar
- tables
- configuration file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据的存储方法及装置,属于数据存储技术领域。所述方法包括:根据配置文件确定至少一条数据获取指令;根据每条数据获取指令从第一数据库中获取每张数据表下的至少一条第一数据;确定获取到的每条第一数据对应的键值以及每条第一数据对应的第二数据;对每条第一数据对应的键值与每条第一数据对应的第二数据进行存储,得到第二数据库。本发明确定每条第一数据对应的键值以及对应的第二数据,对每条第一数据对应的键值与每条第一数据对应的第二数据进行存储,得到第二数据库。由于配置文件具有可拓展性,当需要加载更新的数据时拓展配置文件即可,使得存储数据的过程比较简单,存储数据的可拓展性较佳,因此,存储数据的效率较高。
Description
技术领域
本发明涉及数据存储技术领域,特别涉及一种数据的存储方法及装置。
背景技术
随着现在网络的迅速发展,越来越多的人开始使用网络业务。用户在使用网络业务时,通常会对网络业务中相关数据进行查询。例如,用户在玩一个网络游戏,若某一时刻该用户需要获知另一个用户的游戏数据,此时,该用户会通过游戏提供的接口对另一个用户的游戏数据进行查询。由于数据的存储方式直接影响数据的查询过程,因此,如何对数据进行存储是提高数据查询效率的关键。
相关技术中提供了一种数据的存储方法,在该方法中,数据以数据表的形式存储在数据库中,由后台守护进程将数据库数据加载到业务服务器的共享内存中进行存储。若数据库数据存在更新,需要将数据库中新的数据表数据或者列数据加载到共享内存中时,通过修改守护进程的代码,由修改代码后的守护进程将更新的数据加载到共享内存中进行存储,后续通过访问共享内存对数据进行查询。
在实现本发明的过程中,发明人发现上述方法至少存在以下问题:
当数据量太大时,共享内存将无法装入所有数据,导致存储结构扩展性较差;另外,由于在将更新的数据加载到共享内存中进行存储时,需要对守护进程的代码进行修改,而代码修改过程比较繁琐,每次加载更新的数据都需要对代码进行修改,使得存储更新的数据的过程比较繁琐,延时较长,共享内存中数据的可拓展性较差,导致存储数据的效率较低。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种数据的存储方法。所述技术方案如下:
一方面,提供了一种数据的存储方法,所述方法包括:
根据配置文件确定至少一条数据获取指令,所述配置文件用于对第一数据库中存储的每张数据表以及每张数据表下的每一列数据的属性进行描述,每张数据表对应一条数据获取指令;
根据每条数据获取指令从所述第一数据库中获取每张数据表下的至少一条第一数据,并确定每条第一数据对应的键值以及每条第一数据对应的第二数据,所述第二数据由所述第一数据及所述第一数据中非空数据的数量构成;
对每条第一数据对应的键值与每条第一数据对应的第二数据进行存储,得到第二数据库。
另一方面,提供了一种数据的存储装置,所述装置包括:
第一确定模块,用于根据配置文件确定至少一条数据获取指令,所述配置文件用于对第一数据库中存储的每张数据表以及每张数据表下的每一列数据的属性进行描述,每张数据表对应一条数据获取指令;
第一获取模块,用于根据每条数据获取指令从所述第一数据库中获取每张数据表下的至少一条第一数据;
第二确定模块,用于确定每条第一数据对应的键值以及每条第一数据对应的第二数据,所述第二数据由所述第一数据及所述第一数据中非空数据的数量构成;
存储模块,用于对每条第一数据对应的键值与每条第一数据对应的第二数据进行存储,得到第二数据库。
本发明实施例提供的技术方案带来的有益效果是:
通过配置文件确定至少一条数据获取指令,根据每条数据获取指令从第一数据库中获取每张数据表下的至少一条第一数据,确定每条第一数据对应的键值以及每条第一数据对应的第二数据,对每条第一数据对应的键值与每条第一数据对应的第二数据进行存储。由于配置文件具有可拓展性,当需要加载更新的数据时拓展配置文件即可,使得存储数据的过程比较简单,存储数据时的可拓展性较佳,因此,存储数据的效率较高。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的数据的存储方法流程图;
图2是本发明实施例二提供的数据的存储方法流程图;
图3是本发明实施例三提供的第一种数据的存储装置结构示意图;
图4是本发明实施例三提供的第二种数据的存储装置结构示意图;
图5是本发明实施例三提供的第三种数据的存储装置结构示意图;
图6是本发明实施例三提供的第四种数据的存储装置结构示意图;
图7是本发明实施例四提供的一种服务器的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
由于相关技术在对数据进行存储时,需要由后台守护进程将数据库数据加载到业务服务器的共享内存中进行存储。若数据库数据存在更新,则需要通过修改守护进程的代码,由修改代码后的守护进程将更新的数据加载到共享内存中进行存储。当数据量太大时,共享内存无法装入所有数据,导致存储结构扩展性较差;另外,由于需要通过修改守护进程的代码来实现将更新的数据加载到共享内存中进行存储,而代码修改过程比较繁琐,每次加载更新的数据都需要对代码进行修改,使得存储更新的数据的过程比较繁琐,延时较长,共享内存中数据的可拓展性较差,导致存储数据的效率较低。
为了预防上述情况,提高存储数据时的可拓展性及效率,本发明实施例提供了一种数据的存储方法,参见图1,本实施例提供的方法流程包括:
101:根据配置文件确定至少一条数据获取指令,配置文件用于对第一数据库中存储的每张数据表以及每张数据表下的每一列数据的属性进行描述,每张数据表对应一条数据获取指令;
作为一种可选实施例,根据配置文件确定至少一条数据获取指令之后,还包括:
获取配置文件修改通知;
根据配置文件修改通知获取修改后的配置文件,以根据修改后的配置文件触发下一次的数据存储操作。
102:根据每条数据获取指令从第一数据库中获取每张数据表下的至少一条第一数据,并确定每条第一数据对应的键值以及每条第一数据对应的第二数据,第二数据由第一数据及第一数据中非空数据的数量构成;
103:对每条第一数据对应的键值与每条第一数据对应的第二数据进行存储,得到第二数据库。
作为一种可选实施例,将每条第一数据对应的键值与每条第一数据对应的第二数据进行存储之后,还包括:
对第二数据库中存储的第二数据进行更新。
作为一种可选实施例,对第二数据库中存储的第二数据进行更新,包括:
每隔预设时间检测第一数据库中是否存在增加数据的数据表;
若检测到存在增加数据的数据表,则根据配置文件确定每张增加数据的数据表对应的数据获取指令;
根据每条数据获取指令获取每张增加数据的数据表下的至少一条增加的第一数据,并确定获取到的每条增加的第一数据对应的键值以及每条增加的第一数据对应的第二数据;
将每条增加的第一数据对应的键值与每条增加的第一数据对应的第二数据存储至第二数据库,得到更新的第二数据库。
作为一种可选实施例,对第二数据库中存储的第二数据进行更新,包括:
获取异步通知请求,异步通知请求中至少包含有第一数据库中被修改的第一数据的相关信息;
根据异步通知请求及配置文件确定数据获取指令;
根据数据获取指令从第一数据库中获取修改后的第一数据;
确定修改后的第一数据对应的第二数据,得到修改后的第二数据;
将修改后的第二数据替换修改前的第二数据,得到更新的第二数据库。
作为一种可选实施例,该方法还包括:
获取数据查询请求,数据查询请求中至少包含有查询信息;
根据查询信息确定键值;
根据键值及配置文件在第二数据库中查询对应的数据。
本发明实施例提供的方法,通过配置文件确定至少一条数据获取指令,根据每条数据获取指令从第一数据库中获取每张数据表下的至少一条第一数据,确定每条第一数据对应的键值以及每条第一数据对应的第二数据,对每条第一数据对应的键值与每条第一数据对应的第二数据进行存储。由于配置文件具有可拓展性,当需要加载更新的数据时拓展配置文件即可,使得存储数据的过程比较简单,存储数据时的可拓展性较佳,因此,存储数据的效率较高。另外,在查询数据时,通过键值就能查询到对应的数据,从而查询数据的效率较高。
实施例二
为了简化数据存储过程,提高存储数据时的可拓展性及效率,进而提高数据查询的效率,本发明实施例提供了一种数据的存储方法。该方法中存储的数据的来源为第一数据库中的数据,第一数据库中的数据以数据表的形式进行存储,每张数据表由多列数据构成。结合上述实施例一的内容,对本实施例提供的方法进行举例说明。参见图2,本实施例提供的方法流程包括:
201:根据配置文件确定至少一条数据获取指令,配置文件用于对第一数据库中存储的每张数据表以及每张数据表下的每一列数据的属性进行描述;
配置文件可以包括但不限于为XML(eXtensible Markup Language,可拓展标记语言)类型的文件,本实施例不对配置文件的类型作具体限定。
例如,以配置文件为XML类型的文件为例,XML文件中可以包含每张数据表及每张数据表下的每一列数据相关的属性,如每张数据表的标识及名称、每张数据表下的每一列数据的标识及名称、每张数据表的主键名称、确定键值时需要用到的每张数据表的前缀等。
当然,配置文件中还可以包含数据表以及数据表下的每一列数据的其它类型属性,本实施例不对配置文件中包含的内容作具体限定。
由于后续需要从第一数据库中获取每张数据表下的第一数据,因此,需要先根据配置文件确定数据获取指令。其中,数据获取指令的格式与第一数据库的类型有关,例如,若第一数据库为关系型数据库,则此时数据获取指令可以为Select选择语句。又由于每张数据表对应一条数据指令,因此,根据配置文件确定的数据获取指令为至少一条。本实施例不对根据配置文件确定数据获取指令的方式作具体限定,包括但不限于:根据配置文件确定每张数据表每一列数据的名称,并同时确定获取数据的方式,根据每一列数据的名称以及获取数据的方式确定每张数据表对应的数据获取指令。
例如,现有一张数据表中一共有四列数据,该数据表的名称为t_app_info_new,其中,第一列数据对应的名称为app_id,即该列数据用来表示不同应用对应的id,第二列数据对应的名称为app_name,即该列数据用来表示不同应用的名称,第三列数据对应的名称为app_creat_name,即该列数据用来表示不同应用对应的数据的创建时间,第四列数据对应的名称为app_updata_name,即不同应用对应的数据的更新时间。以该数据表中一共有10000条数据为例,若确定获取数据的方式为将数据表内的10000条数据按照每条数据中app_id的数值升序排列后进行获取,并且获取的是升序排序结果中第1条至第500条这500条数据,此时,该数据获取指令用关系型数据库中Select语句表示如下:
Select app_id,app_name,app_creat_name,app_updata_name fromt_app_info_new order by app_id limit0,500
其中,Select语句中order by app_id子句表示将数据表t_app_info_new中的每条数据按照每条数据中app_id的数值进行升序排列,limit子句中有两项参数,第一项参数表示第一条返回数据的偏移量,第二项参数表示返回数据的总条数的最大数目。由于上述Select语句中limit子句中第一项参数与第二项参数的值分别为0和500,根据第一项参数的值可确定第一条返回数据为升序排序结果中的第一条数据,根据第二项参数的值可确定返回数据的总条数的最大数目为500条,因此,最终获取的数据便为升序排列结果中第1条至第500条这500条数据。
另外,当limit子句中第一项参数与第二项参数的值分别为0和500时,一共能获取到500条数据,相当于执行一次Select语句便能获取到500条数据。若下次还需要获取后续500条数据,此时,可将limit子句中第一项参数的数值加上500变为500,将第二项参数的数值保持为500不变,从而又能最多获取500条数据。按照上述方法,每一批次最多获取500条数据,分若干批次获取数据后,能获取到数据表中所有的数据。
按照上面的方式最终可以确定每张数据表对应的Select语句,即每张数据表对应的数据获取指令。
202:根据每条数据获取指令从第一数据库中获取每张数据表下的至少一条第一数据;
本实施例不对根据每条数据获取指令从第一数据库中获取每张数据表下的至少一条第一数据的方式作具体限定,包括但不限于:根据每条数据获取指令中获取数据的方式以及每一列数据的名称获取每条第一数据。
例如,以数据获取指令为Select语句为例,Select语句为步骤201中举例时的选择语句,获取数据时的数据表如表1所示。
表1
app_id | app_name | app_create_time | app_update_time |
Id1 | Name1 | Creat_time1 | Updata_time1 |
Id2 | Name2 | Creat_time2 | Updata_time2 |
此时,由于表1中仅有两条数据,因此,Select语句获取到的数据为两条第一数据,分别为:
第一条第一数据:Id1,Name1,Creat_time1,Updata_time1
第二条第一数据:Id2,Name2,Creat_time2,Updata_time2
需要说明的是,由于Select语句实际上获取的是升序排序结果中第1条至第500条这500条数据,此时,若表1中数据的条数不限上面的两条,数据的条数比较多,如有10000条数据,则可按照步骤201中的过程获取500条数据。
203:确定每条第一数据对应的键值以及每条第一数据对应的第二数据,第二数据由第一数据及第一数据中非空数据的数量构成;
本实施例不对确定每条第一数据对应的键值的方式作具体限定,包括但不限于:确定每条第一数据对应的数据表,并确定每张数据表在配置文件中的前缀以及每张数据表的主键包含的列数据的名称;根据每张数据表的主键包含的列数据的名称确定每条第一数据的主键对应的值;将每张数据表的前缀以及每条第一数据的主键对应的值进行组合,从而确定每条第一数据对应的键值。
例如,以数据表为表1,第一数据为步骤202中的第一条第一数据为例。若表1在配置文件中的前缀为appinfo,表1的主键包含的列数据的名称为一个,且为app_id,则第一条第一数据的主键对应的值为Id1。此时,将表1的前缀appinfo与第一条第一数据的主键对应的值为Id1进行组合,可确定第一条第一数据对应的键值为appinfo_Id1。
本实施例也不对确定每条第一数据对应的第二数据的方式作具体限定,包括但不限于:确定每条第一数据中非空数据的数量;将每条第一数据中每个非空数据转化成对应的TLV(Type/Length/Value,类型/长度/值)格式数据;将每条第一数据中非空数据的数量与每条第一数据中每个非空数据对应的TLV格式数据进行组合,从而确定每条第一数据对应的第二数据。
例如,以第一数据为步骤202中的第一条第一数据为例。若Id1,Name1,Creat_time1,Updata_time1四个数据都有值,即四个数据都为非空,此时,可确定第一条第一数据中非空数据的数量为4。若Id1,Name1,Creat_time1,Updata_time1四个数据中Updata_time1的值为空,此时可确定第一条第一数据中非空数据的数量为3。
将四个数据中的非空数据分别转化为对应的TLV格式数据,以Creat_time1为例,该数据的标识为3,长度为10,数值为14-04-08,此时,可将TLV格式数据中的每一项数据转化为对应的二进制数据,将转化后二进制数据顺序连接即可得到数据Creat_time1对应的TLV格式数据。按照上面的方式可以得到四个数据对应的TLV格式数据,再将第一条第一数据中非空数据的数量转化为二进制数据,并与四个数据对应的TLV格式数据顺序连接即可得到第一条第一数据对应的第二数据。
204:对每条第一数据对应的键值与每条第一数据对应的第二数据进行存储,得到第二数据库;
在进行存储时,每条第一数据对应的键值与每条第一数据对应的第二数据相对应,即第二数据库中每条数据由键值及对应的第二数据构成,每条数据中的键值与对应的第二数据相匹配。
其中,第二数据库可以为Key-Value分布式存储***,如redis存储***,Memcached存储***,实际操作中可以根据需要选择不同的存储***,本实施例对此不作具体限定。第二数据库可以存储在业务服务器的共享内存中,本实施例对此也不作具体限定。
由于第二数据库采用的是Key-Value分布式存储***,即NoSQL非关系型数据库,从而去掉了传统关系型数据库中的关系型特性,使得第二数据库非常容易扩展。另外,得益于无关系性,结构简单的第二数据库还能够具有非常高的读写性能,尤其在大数据量下,能够有较好的表现。
需要说明的是,步骤201至步骤204中所有的实现过程在实际操作中可由预先创建的守护进程来执行,守护进程是脱离于服务器并且在后台运行的进程,脱离于服务器能够避免守护进程在执行过程中的信息在任何服务器上显示,同时守护进程也不会被任何服务器所产生的服务器信息所打断。通过守护进程按照步骤201至步骤204的实现过程能完成第一数据库到第二数据库中数据全量加载的过程,即将第一数据库中所有的数据转化为第二数据库中的数据。
由于将每条第一数据对应的键值与每条第一数据对应的第二数据进行存储,得到第二数据库之后,还可能需要对第二数据库中存储的第二数据进行更新,根据实际情况现将更新过程分成两种方式,详细阐释如下:
第一种更新方式:每隔预设时间检测第一数据库中是否存在增加数据的数据表;若检测到存在增加数据的数据表,则根据配置文件确定每张增加数据的数据表对应的数据获取指令;根据每条数据获取指令获取每张增加数据的数据表下的至少一条增加的第一数据;确定获取到的每条增加的第一数据对应的键值以及每条增加的第一数据对应的第二数据;对每条增加的第一数据对应的键值与每条增加的第一数据对应的第二数据进行存储,得到更新的第二数据库。
本实施例不对每隔预设时间检测第一数据库中是否存在增加数据的数据表的方式作具体限定,包括但不限于:预先将第一数据库中的数据表分为两种,第一种为需要增量加载的数据表,即数据更新时会增加的数据表,第二种为不需要增量加载的数据表,即数据更新时不会增加的数据表。每张需要增量加载的数据表在增加一次数据后,可将第一数据库中每张需要增量加载的数据表的dwOldUpdateTime当前更新时间进行记录,并同时记录每张需要增量加载的数据表的dwNewUpdateTime最后更新时间。其中,每张需要增量加载的数据表在增加一次数据后,每张需要增量加载的数据表的dwOldUpdateTime与每张需要增量加载的数据表中每条第一数据的dwOldUpdateTime相同,每张需要增量加载的数据表的dwNewUpdateTime与每张需要增量加载的数据表中每条第一数据的dwNewUpdateTime相同。另外,每张需要增量加载的数据表在增加一次数据后,dwOldUpdateTime与dwNewUpdateTime是相同的,当每张需要增量加载的数据表中的第一数据增加时,每张需要增量加载的数据表的dwNewUpdateTime才会发生改变。基于上述原理,可以每隔预设时间检测第一数据库中每张需要增量加载的数据表的dwOldUpdateTime与dwNewUpdateTime是否相同,若两者不同,则能够确定所有增加数据的数据表。其中,预设时间可以根据需求进行设置,本实施例对此预设时间的值作具体限定。
由于每张需要增量加载的数据表在增加一次数据后,每张需要增量加载的数据表中每条第一数据的dwOldUpdateTime与每张需要增量加载的数据表中每条第一数据的dwNewUpdateTime相同,只有当数据表中的第一数据增加时,该第一数据的dwNewUpdateTime才会发生改变,导致与dwOldUpdateTime不同。因此,当确定所有增加数据的数据表之后,可以比较每张增加数据的数据表中每条第一数据的dwOldUpdateTime与dwNewUpdateTime是否相同,若两者不同,则能够确定所有增加数据的第一数据。
确定每张需要增量加载的数据表中所有增加数据的第一数据后,可以再根据配置文件确定每张增加数据的数据表对应的数据获取指令,根据每条数据获取指令获取每张增加数据的数据表下的至少一条增加的第一数据,确定获取到的每条增加的第一数据对应的键值以及每条增加的第一数据对应的第二数据,对每条增加的第一数据对应的键值与每条增加的第一数据对应的第二数据进行存储,得到更新的第二数据库。通过第一种更新方式中的方法步骤能够完成第一数据库到第二数据库中数据增量加载的过程,即将第一数据库中所有的增加的数据转化为第二数据库中的数据。需要说明的是,上述增量加载的实现过程可以参考上述步骤中第一数据库到第二数据库中数据全量加载的过程,此处不再赘述。另外,增量加载的过程也可由守护进程来执行,本实施例对此不作具体限定。
其中,根据上述检测第一数据库中是否存在增加数据的数据表的检测结果完成增量加载的过程后,还可以更新每张需要增量加载的数据表的dwOldUpdateTime以及每张需要增量加载的数据表中每条第一数据的dwOldUpdateTime,让其与对应的dwNewUpdateTime保持一致,以便于下次进行检测。
另外,为了保证数据能够一直处于最新状态,防止增量加载失败的情况,还可以设置一个增量计数值cnt,其中,cnt的初始数值为0。每次进行增量加载时,可判断cnt的值是否大于预设阈值。若cnt的值小于预设阈值,则按照上述步骤的方法继续进行增量加载的过程,并在增量加载结束后,将cnt的值加1。若cnt的值大于预设阈值,则直接按照上述步骤的方法进行全量加载的过程,并在全量加载结束后,将cnt的值重新置为0。其中,预设阈值的值可以根据实际需要进行选择,本实施例对此不作具体限定。
第二种更新方式:获取异步通知请求;根据异步通知请求及配置文件确定数据获取指令;根据数据获取指令从第一数据库中获取修改后的第一数据;确定修改后的第一数据对应的第二数据,得到修改后的第二数据;将修改后的第二数据替换修改前的第二数据,得到更新的第二数据库。
用户通过终端上的管理后台修改了第一数据库中存储的第一数据后,可由终端向存储第一数据库的业务服务器发送异步通知请求,其中,异步通知请求中包含有第一数据库中被修改的第一数据的相关信息,根据异步通知请求及配置文件能够确定数据获取指令。
例如,异步通知请求可以由以下三个信息构成:被修改的第一数据所处数据表的标识、主键的个数以及被修改的第一数据的主键所对应的TLV格式数据。
通过被修改的第一数据所处数据表的标识可确定数据表的名称,根据配置文件可确定该数据表中所有列数据的名称,通过主键的个数以及被修改的第一数据的主键所对应的TLV格式数据可确定被修改的第一数据的主键,从而可确定数据获取指令。以数据表的名称为t_app_info_new,被修改的第一数据的主键为Id1为例,此时,该数据获取指令用关系型数据库中Select语句表示如下:
Select app_id,app_name,app_creat_name,app_updata_name fromt_app_info_new where app_id=Id1
确定数据获取指令后,可根据数据获取指令从第一数据库中获取修改后的第一数据,确定修改后的第一数据对应的第二数据,得到修改后的第二数据,将修改后的第二数据替换修改前的第二数据,得到更新的第二数据库。其中,确定数据获取指令后的实现过程可以参考上述步骤中的内容,此处不再赘述。
另外,在上述所有实现过程中,由于获取第一数据库中的数据时,需要根据数据获取指令来进行获取,数据获取指令需要根据配置文件来确定,而配置文件的定义可能因为用户的修改而发生改变。因此,针对上述配置文件被修改的情况,在根据配置文件确定至少一条数据获取指令之后,可获取配置文件修改通知,根据配置文件修改通知获取修改后的配置文件。在下次根据配置文件确定数据获取指令时,可以根据修改后的配置文件确定数据获取指令。
例如,当配置文件的定义由于用户的修改而发生改变时。此时,可由服务器向守护进程发送信号,即配置文件修改通知。例如,若服务器上安装的是Linux类的***,则可以向守护进程发送Linux SIGUSR1信号。守护进程在接收到Linux SIGUSR1信号后,可获取修改后的配置文件,根据修改后的配置文件触发下一次的数据存储操作。下一次的数据存储操作需要根据修改后的配置文件确定至少一条数据获取指令,进而触发执行根据数据获取指令从第一数据库中获取每张数据表下的至少一条第一数据的后续步骤,具体过程同本次数据存储操作原理一致,此处不再赘述。
需要说明的是,配置文件的修改可以基于表级,也可以基于列级的。由于配置文件主要用于对第一数据库中存储的每张数据表以及每张数据表下的每一列数据的属性进行描述,因此,当第一数据库中新增加了一张数据表时,可以在配置文件中加入对该新增数据表属性的描述。当第一数据库中修改了一张数据表的属性时,可以在配置文件中对该数据表的属性重新进行描述。当第一数据库中已有的数据表中新增了一列数据时,可以在配置文件中加入对新增列数据属性的描述。当第一数据库中修改了已有的数据表中一列数据的属性时,可以在配置文件中对该列数据的属性重新进行描述。
通过对配置文件的修改能够使得下次进行全量加载或者数据更新时,能够直接通过修改的配置文件确定新的数据获取指令,从而能够方便对数据进行表级或者列级别的拓展或者修改。另外,由于通过配置文件能够实现表级或者列级别的拓展或者修改,而不用对守护进程的代码进行修改,从而使得***业务的可拓展性较佳。
可选地,通过上述步骤201至步骤204得到第二数据库之后,本实施例提供的方法在存储数据之后,还提供了一种对第二数据库中的数据进行查询的方法,具体详见后续步骤。
205:获取数据查询请求,根据数据查询请求在第二数据库中查询对应的数据,数据查询请求中至少包含有查询信息。
关于根据数据查询请求在第二数据库中查询对应的数据的方式,本实施例对此不作具体限定,包括但不限于:根据查询信息确定键值;根据键值及配置文件在第二数据库中查询对应的数据。
其中,数据查询请求中至少包含有查询信息。查询信息中可以包括待查询数据表的标识、待查询数据表中主键的个数、待查询的数据的主键对应的TLV格式数据、待查询数据的项数、待查询数据对应的标识等,本实施例不对查询信息中包含的内容作具体限定。
例如,根据查询信息中待查询数据表的标识及配置文件可确定待查询数据表对应的前缀,根据待查询数据表对应的前缀、待查询数据表中主键的个数及待查询的数据的主键对应的TLV格式数据可确定待查询数据对应的键值,根据键值在第二数据库中查询可确定对应的第二数据。根据前面步骤中第二数据的定义可知,每条第二数据由每条第一数据中非空数据的数量及每条第一数据中每个非空数据转化成对应的TLV格式数据组合而成,而每条第二数据中的每个TLV格式数据均由数据对应的标识、长度、实际二进制数值构成。因此,可以根据查询信息中待查询数据对应的标识在第二数据中的TLV格式数据中查找,确定包含有待查询数据对应的标识的TLV格式数据,从而确定待查询数据在TLV格式数据中对应的实际二进制数值。后续根据实际需求,还可将查询到的数据的二进制数值转换为十进制或者十六进制数值,本实施例对此不作具体限定。
本发明实施例提供的方法,通过配置文件确定至少一条数据获取指令,根据每条数据获取指令从第一数据库中获取每张数据表下的至少一条第一数据,确定每条第一数据对应的键值以及每条第一数据对应的第二数据,对每条第一数据对应的键值与每条第一数据对应的第二数据进行存储。由于配置文件具有可拓展性,当需要加载更新的数据时拓展配置文件即可,使得存储数据的过程比较简单,存储数据时的可拓展性较佳,因此,存储数据的效率较高。另外,在查询数据时,通过键值就能查询到对应的数据,从而查询数据的效率较高。
实施例三
本发明实施例提供了一种数据的存储装置,该装置用于执行上述实施例一或实施例二提供的数据的存储方法。参见图3,该装置包括:
第一确定模块301,用于根据配置文件确定至少一条数据获取指令,配置文件用于对第一数据库中存储的每张数据表以及每张数据表下的每一列数据的属性进行描述,每张数据表对应一条数据获取指令;
第一获取模块302,用于根据每条数据获取指令从第一数据库中获取每张数据表下的至少一条第一数据;
第二确定模块303,用于确定每条第一数据对应的键值以及每条第一数据对应的第二数据,第二数据由第一数据及第一数据中非空数据的数量构成;
存储模块304,用于对每条第一数据对应的键值与每条第一数据对应的第二数据进行存储,得到第二数据库。
作为一种可选实施例,参见图4,该装置还包括:
第二获取模块305,用于获取配置文件修改通知;
第三获取模块306,用于根据配置文件修改通知获取修改后的配置文件,以根据修改后的配置文件触发下一次的数据存储操作。
作为一种可选实施例,参见图5,该装置还包括:
更新模块307,用于对第二数据库中存储的第二数据进行更新。
作为一种可选实施例,更新模块307,包括:
检测单元,用于每隔预设时间检测第一数据库中是否存在增加数据的数据表;
第一获取单元,用于当检测到存在增加数据的数据表时,根据配置文件确定每张增加数据的数据表对应的数据获取指令;
第二获取单元,用于根据每条数据获取指令获取每张增加数据的数据表下的至少一条增加的第一数据;
第一确定单元,用于确定获取到的每条增加的第一数据对应的键值以及每条增加的第一数据对应的第二数据;
存储单元,用于将每条增加的第一数据对应的键值与每条增加的第一数据对应的第二数据存储至第二数据库,得到更新的第二数据库。
作为一种可选实施例,更新模块307,包括:
第三获取单元,用于获取异步通知请求,异步通知请求中至少包含有第一数据库中被修改的第一数据的相关信息;
第二确定单元,用于根据异步通知请求及配置文件确定数据获取指令;
第四获取单元,用于根据数据获取指令从第一数据库中获取修改后的第一数据;
第三确定单元,用于确定修改后的第一数据对应的第二数据,得到修改后的第二数据;
替换单元,用于将修改后的第二数据替换修改前的第二数据,得到更新的第二数据库。
作为一种可选实施例,参见图6,该装置还包括:
第四获取模块308,用于获取数据查询请求,数据查询请求中至少包含有查询信息;
第三确定模块309,用于根据查询信息确定键值;
查询模块310,用于根据键值及配置文件在第二数据库中查询对应的数据。
本实施例提供的装置,通过配置文件确定至少一条数据获取指令,根据每条数据获取指令从第一数据库中获取每张数据表下的至少一条第一数据,确定每条第一数据对应的键值以及每条第一数据对应的第二数据,对每条第一数据对应的键值与每条第一数据对应的第二数据进行存储。由于配置文件具有可拓展性,当需要加载更新的数据时拓展配置文件即可,使得存储数据的过程比较简单,存储数据时的可拓展性较佳,因此,存储数据的效率较高。另外,在查询数据时,通过键值就能查询到对应的数据,从而查询数据的效率较高。
实施例四
本实施例提供了一种服务器,该服务器可以用于执行上述实施例中数据的存储方法。参见图4,该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(central processing units,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作***1941,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM,FreeBSDTM等等。
一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,所述一个或者一个以上程序包含用于进行以下操作的指令:
根据配置文件确定至少一条数据获取指令,配置文件用于对第一数据库中存储的每张数据表以及每张数据表下的每一列数据的属性进行描述,每张数据表对应一条数据获取指令;
根据每条数据获取指令从第一数据库中获取每张数据表下的至少一条第一数据,并确定每条第一数据对应的键值以及每条第一数据对应的第二数据,第二数据由第一数据及第一数据中非空数据的数量构成;
对每条第一数据对应的键值与每条第一数据对应的第二数据进行存储,得到第二数据库。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,服务器的存储器中,还包含用于执行以下操作的指令:
获取配置文件修改通知;
根据配置文件修改通知获取修改后的配置文件,以根据修改后的配置文件触发下一次的数据存储操作。
在第一种可能的实施方式作为基础而提供的第三种可能的实施方式中,服务器的存储器中,还包含用于执行以下操作的指令:
对所述第二数据库中存储的第二数据进行更新。
在第三种可能的实施方式作为基础而提供的第四种可能的实施方式中,服务器的存储器中,还包含用于执行以下操作的指令:
每隔预设时间检测第一数据库中是否存在增加数据的数据表;
若检测到存在增加数据的数据表,则根据配置文件确定每张增加数据的数据表对应的数据获取指令;
根据每条数据获取指令获取每张增加数据的数据表下的至少一条增加的第一数据,并确定获取到的每条增加的第一数据对应的键值以及每条增加的第一数据对应的第二数据;
将每条增加的第一数据对应的键值与每条增加的第一数据对应的第二数据存储至第二数据库,得到更新的第二数据库。
在第三种可能的实施方式作为基础而提供的第五种可能的实施方式中,服务器的存储器中,还包含用于执行以下操作的指令:
获取异步通知请求,异步通知请求中至少包含有第一数据库中被修改的第一数据的相关信息;
根据异步通知请求及配置文件确定数据获取指令;
根据数据获取指令从第一数据库中获取修改后的第一数据;
确定修改后的第一数据对应的第二数据,得到修改后的第二数据;
将修改后的第二数据替换修改前的第二数据,得到更新的第二数据库。
在第一种可能的实施方式至第五种可能的实施方式中任一可能的实施方式作为基础而提供的第六种可能的实施方式中,服务器的存储器中,还包含用于执行以下操作的指令:
获取数据查询请求,数据查询请求中至少包含有查询信息;
根据查询信息确定键值;
根据键值及配置文件在第二数据库中查询对应的数据。
本发明提供的服务器,通过配置文件确定至少一条数据获取指令,根据每条数据获取指令从第一数据库中获取每张数据表下的至少一条第一数据,确定每条第一数据对应的键值以及每条第一数据对应的第二数据,对每条第一数据对应的键值与每条第一数据对应的第二数据进行存储。由于配置文件具有可拓展性,当需要加载更新的数据时拓展配置文件即可,使得存储数据的过程比较简单,存储数据时的可拓展性较佳,因此,存储数据的效率较高。另外,在查询数据时,通过键值就能查询到对应的数据,从而查询数据的效率较高。
实施例五
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入服务器中的计算机可读存储介质。该计算机可读存储介质存储有一个或者一个以上程序,该一个或者一个以上程序被一个或者一个以上的处理器用来执行实现数据的存储方法,该方法包括:
根据配置文件确定至少一条数据获取指令,配置文件用于对第一数据库中存储的每张数据表以及每张数据表下的每一列数据的属性进行描述,每张数据表对应一条数据获取指令;
根据每条数据获取指令从第一数据库中获取每张数据表下的至少一条第一数据,并确定每条第一数据对应的键值以及每条第一数据对应的第二数据,第二数据由第一数据及第一数据中非空数据的数量构成;
对每条第一数据对应的键值与每条第一数据对应的第二数据进行存储,得到第二数据库。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,所述根据配置文件确定至少一条数据获取指令之后,还包括:
获取配置文件修改通知;
根据配置文件修改通知获取修改后的配置文件,以根据修改后的配置文件触发下一次的数据存储操作。
在第一种可能的实施方式作为基础而提供的第三种可能的实施方式中,所述将每条第一数据对应的键值与每条第一数据对应的第二数据进行存储之后,还包括:
对第二数据库中存储的第二数据进行更新。
在第三种可能的实施方式作为基础而提供的第四种可能的实施方式中,所述对所述第二数据库中存储的第二数据进行更新,包括:
每隔预设时间检测第一数据库中是否存在增加数据的数据表;
若检测到存在增加数据的数据表,则根据配置文件确定每张增加数据的数据表对应的数据获取指令;
根据每条数据获取指令获取每张增加数据的数据表下的至少一条增加的第一数据,并确定获取到的每条增加的第一数据对应的键值以及每条增加的第一数据对应的第二数据;
将每条增加的第一数据对应的键值与每条增加的第一数据对应的第二数据存储至第二数据库,得到更新的第二数据库。
在第三种可能的实施方式作为基础而提供的第五种可能的实施方式中,所述对所述第二数据库中存储的第二数据进行更新,包括:
获取异步通知请求,异步通知请求中至少包含有第一数据库中被修改的第一数据的相关信息;
根据异步通知请求及配置文件确定数据获取指令;
根据数据获取指令从第一数据库中获取修改后的第一数据;
确定修改后的第一数据对应的第二数据,得到修改后的第二数据;
将修改后的第二数据替换修改前的第二数据,得到更新的第二数据库。
在第一种可能的实施方式至第五种可能的实施方式中任一可能的实施方式作为基础而提供的第六种可能的实施方式中,所述方法还包括:
获取数据查询请求,数据查询请求中至少包含有查询信息;
根据查询信息确定键值;
根据键值及配置文件在第二数据库中查询对应的数据。
本发明实施例提供的计算机可读存储介质,通过配置文件确定至少一条数据获取指令,根据每条数据获取指令从第一数据库中获取每张数据表下的至少一条第一数据,确定每条第一数据对应的键值以及每条第一数据对应的第二数据,对每条第一数据对应的键值与每条第一数据对应的第二数据进行存储。由于配置文件具有可拓展性,当需要加载更新的数据时拓展配置文件即可,使得存储数据的过程比较简单,存储数据时的可拓展性较佳,因此,存储数据的效率较高。另外,在查询数据时,通过键值就能查询到对应的数据,从而查询数据的效率较高。
需要说明的是:上述实施例提供的数据的存储装置在对数据进行存储时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例数据的存储装置与数据的存储方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种数据的存储方法,其特征在于,所述方法包括:
根据配置文件确定至少一条数据获取指令,所述配置文件用于对第一数据库中存储的每张数据表以及每张数据表下的每一列数据的属性进行描述,每张数据表对应一条数据获取指令;
根据每条数据获取指令从所述第一数据库中获取每张数据表下的至少一条第一数据,并确定每条第一数据对应的键值以及每条第一数据对应的第二数据,所述第二数据由所述第一数据及所述第一数据中非空数据的数量构成;
对每条第一数据对应的键值与每条第一数据对应的第二数据进行存储,得到第二数据库。
2.根据权利要求1所述的方法,其特征在于,所述根据配置文件确定至少一条数据获取指令之后,还包括:
获取配置文件修改通知;
根据所述配置文件修改通知获取修改后的配置文件,以根据所述修改后的配置文件触发下一次的数据存储操作。
3.根据权利要求1所述的方法,其特征在于,所述将每条第一数据对应的键值与每条第一数据对应的第二数据进行存储之后,还包括:
对所述第二数据库中存储的第二数据进行更新。
4.根据权利要求3所述的方法,其特征在于,所述对所述第二数据库中存储的第二数据进行更新,包括:
每隔预设时间检测所述第一数据库中是否存在增加数据的数据表;
若检测到存在增加数据的数据表,则根据配置文件确定每张增加数据的数据表对应的数据获取指令;
根据每条数据获取指令获取每张增加数据的数据表下的至少一条增加的第一数据,并确定获取到的每条增加的第一数据对应的键值以及每条增加的第一数据对应的第二数据;
将每条增加的第一数据对应的键值与每条增加的第一数据对应的第二数据存储至所述第二数据库,得到更新的第二数据库。
5.根据权利要求3所述的方法,其特征在于,所述对所述第二数据库中存储的第二数据进行更新,包括:
获取异步通知请求,所述异步通知请求中至少包含有所述第一数据库中被修改的第一数据的相关信息;
根据所述异步通知请求及所述配置文件确定数据获取指令;
根据所述数据获取指令从所述第一数据库中获取修改后的第一数据;
确定修改后的第一数据对应的第二数据,得到修改后的第二数据;
将修改后的第二数据替换修改前的第二数据,得到更新的第二数据库。
6.根据权利要求1至5中任一权利要求所述的方法,其特征在于,所述方法还包括:
获取数据查询请求,所述数据查询请求中至少包含有查询信息;
根据所述查询信息确定键值;
根据所述键值及所述配置文件在所述第二数据库中查询对应的数据。
7.一种数据的存储装置,其特征在于,所述装置包括:
第一确定模块,用于根据配置文件确定至少一条数据获取指令,所述配置文件用于对第一数据库中存储的每张数据表以及每张数据表下的每一列数据的属性进行描述,每张数据表对应一条数据获取指令;
第一获取模块,用于根据每条数据获取指令从所述第一数据库中获取每张数据表下的至少一条第一数据;
第二确定模块,用于确定每条第一数据对应的键值以及每条第一数据对应的第二数据,所述第二数据由所述第一数据及所述第一数据中非空数据的数量构成;
存储模块,用于对每条第一数据对应的键值与每条第一数据对应的第二数据进行存储,得到第二数据库。
8.根据权利要求7所述的装置,其特征在于,所述装置,还包括:
第二获取模块,用于获取配置文件修改通知;
第三获取模块,用于根据所述配置文件修改通知获取修改后的配置文件,以根据所述修改后的配置文件触发下一次的数据存储操作。
9.根据权利要求7所述的装置,其特征在于,所述装置,还包括:
更新模块,用于对所述第二数据库中存储的第二数据进行更新。
10.根据权利要求9所述的装置,其特征在于,所述更新模块,包括:
检测单元,用于每隔预设时间检测所述第一数据库中是否存在增加数据的数据表;
第一获取单元,用于当检测到存在增加数据的数据表时,根据配置文件确定每张增加数据的数据表对应的数据获取指令;
第二获取单元,用于根据每条数据获取指令获取每张增加数据的数据表下的至少一条增加的第一数据;
第一确定单元,用于确定获取到的每条增加的第一数据对应的键值以及每条增加的第一数据对应的第二数据;
存储单元,用于将每条增加的第一数据对应的键值与每条增加的第一数据对应的第二数据存储至所述第二数据库,得到更新的第二数据库。
11.根据权利要求9所述的装置,其特征在于,所述更新模块,包括:
第三获取单元,用于获取异步通知请求,所述异步通知请求中至少包含有所述第一数据库中被修改的第一数据的相关信息;
第二确定单元,用于根据所述异步通知请求及所述配置文件确定数据获取指令;
第四获取单元,用于根据所述数据获取指令从所述第一数据库中获取修改后的第一数据;
第三确定单元,用于确定修改后的第一数据对应的第二数据,得到修改后的第二数据;
替换单元,用于将修改后的第二数据替换修改前的第二数据,得到更新的第二数据库。
12.根据权利要求7至11中任一权利要求所述的装置,其特征在于,所述装置还包括:
第四获取模块,用于获取数据查询请求,所述数据查询请求中至少包含有查询信息;
第三确定模块,用于根据所述查询信息确定键值;
查询模块,用于根据所述键值及所述配置文件在所述第二数据库中查询对应的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410160242.7A CN105022739B (zh) | 2014-04-21 | 2014-04-21 | 数据的存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410160242.7A CN105022739B (zh) | 2014-04-21 | 2014-04-21 | 数据的存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105022739A true CN105022739A (zh) | 2015-11-04 |
CN105022739B CN105022739B (zh) | 2019-05-21 |
Family
ID=54412723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410160242.7A Active CN105022739B (zh) | 2014-04-21 | 2014-04-21 | 数据的存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105022739B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930492A (zh) * | 2016-05-05 | 2016-09-07 | 北京思特奇信息技术股份有限公司 | 一种将关系表数据载入缓存的***和方法 |
CN106294740A (zh) * | 2016-08-10 | 2017-01-04 | 北京创锐文化传媒有限公司 | 数据处理方法、装置及服务器 |
CN106899443A (zh) * | 2015-12-18 | 2017-06-27 | 北京神州泰岳软件股份有限公司 | 一种Netflow流量数据的采集方法和设备 |
CN107103021A (zh) * | 2016-02-23 | 2017-08-29 | 三星电子株式会社 | 计算机***和用于控制计算机的方法 |
CN107315693A (zh) * | 2016-04-26 | 2017-11-03 | 阿里巴巴集团控股有限公司 | 一种数据存储方法和装置 |
CN108399175A (zh) * | 2017-02-07 | 2018-08-14 | 阿里巴巴集团控股有限公司 | 一种数据存储、查询方法及其装置 |
CN109150930A (zh) * | 2017-06-15 | 2019-01-04 | 北京金山云网络技术有限公司 | 配置信息加载方法及装置、业务处理方法及装置 |
CN112486532A (zh) * | 2020-11-25 | 2021-03-12 | 中移(杭州)信息技术有限公司 | 配置文件的管理方法、装置、电子设备及存储介质 |
CN113626483A (zh) * | 2021-08-18 | 2021-11-09 | 重庆允成互联网科技有限公司 | 一种填写表单的前端缓存方法、***、设备及存储介质 |
CN114443581A (zh) * | 2022-04-11 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 一种下载控制方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183363A (zh) * | 2006-11-13 | 2008-05-21 | 中兴通讯股份有限公司 | 一种利用***表结构统一配置管理内存数据库的方法 |
CN101311931A (zh) * | 2007-05-21 | 2008-11-26 | Sap股份公司 | 基于值的出现的表压缩 |
CN101311930A (zh) * | 2007-05-21 | 2008-11-26 | Sap股份公司 | 具有重复值的表的块压缩 |
CN103164413A (zh) * | 2011-12-09 | 2013-06-19 | 金蝶软件(中国)有限公司 | 动态扩展业务对象的方法和*** |
-
2014
- 2014-04-21 CN CN201410160242.7A patent/CN105022739B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101183363A (zh) * | 2006-11-13 | 2008-05-21 | 中兴通讯股份有限公司 | 一种利用***表结构统一配置管理内存数据库的方法 |
CN101311931A (zh) * | 2007-05-21 | 2008-11-26 | Sap股份公司 | 基于值的出现的表压缩 |
CN101311930A (zh) * | 2007-05-21 | 2008-11-26 | Sap股份公司 | 具有重复值的表的块压缩 |
CN103164413A (zh) * | 2011-12-09 | 2013-06-19 | 金蝶软件(中国)有限公司 | 动态扩展业务对象的方法和*** |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106899443B (zh) * | 2015-12-18 | 2020-06-26 | 北京神州泰岳软件股份有限公司 | 一种Netflow流量数据的采集方法和设备 |
CN106899443A (zh) * | 2015-12-18 | 2017-06-27 | 北京神州泰岳软件股份有限公司 | 一种Netflow流量数据的采集方法和设备 |
US11301422B2 (en) | 2016-02-23 | 2022-04-12 | Samsung Electronics Co., Ltd. | System and methods for providing fast cacheable access to a key-value device through a filesystem interface |
CN107103021A (zh) * | 2016-02-23 | 2017-08-29 | 三星电子株式会社 | 计算机***和用于控制计算机的方法 |
CN107103021B (zh) * | 2016-02-23 | 2021-10-08 | 三星电子株式会社 | 计算机***和用于控制计算机的方法 |
CN107315693A (zh) * | 2016-04-26 | 2017-11-03 | 阿里巴巴集团控股有限公司 | 一种数据存储方法和装置 |
CN107315693B (zh) * | 2016-04-26 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 一种数据存储方法和装置 |
CN105930492A (zh) * | 2016-05-05 | 2016-09-07 | 北京思特奇信息技术股份有限公司 | 一种将关系表数据载入缓存的***和方法 |
CN106294740A (zh) * | 2016-08-10 | 2017-01-04 | 北京创锐文化传媒有限公司 | 数据处理方法、装置及服务器 |
CN108399175A (zh) * | 2017-02-07 | 2018-08-14 | 阿里巴巴集团控股有限公司 | 一种数据存储、查询方法及其装置 |
CN108399175B (zh) * | 2017-02-07 | 2022-04-12 | 阿里巴巴集团控股有限公司 | 一种数据存储、查询方法及其装置 |
CN109150930B (zh) * | 2017-06-15 | 2020-12-18 | 北京金山云网络技术有限公司 | 配置信息加载方法及装置、业务处理方法及装置 |
CN109150930A (zh) * | 2017-06-15 | 2019-01-04 | 北京金山云网络技术有限公司 | 配置信息加载方法及装置、业务处理方法及装置 |
CN112486532B (zh) * | 2020-11-25 | 2024-04-09 | 中移(杭州)信息技术有限公司 | 配置文件的管理方法、装置、电子设备及存储介质 |
CN112486532A (zh) * | 2020-11-25 | 2021-03-12 | 中移(杭州)信息技术有限公司 | 配置文件的管理方法、装置、电子设备及存储介质 |
CN113626483A (zh) * | 2021-08-18 | 2021-11-09 | 重庆允成互联网科技有限公司 | 一种填写表单的前端缓存方法、***、设备及存储介质 |
CN113626483B (zh) * | 2021-08-18 | 2022-04-26 | 重庆允成互联网科技有限公司 | 一种填写表单的前端缓存方法、***、设备及存储介质 |
CN114443581A (zh) * | 2022-04-11 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 一种下载控制方法、装置、设备及存储介质 |
CN114443581B (zh) * | 2022-04-11 | 2022-06-17 | 苏州浪潮智能科技有限公司 | 一种下载控制方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105022739B (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105022739A (zh) | 数据的存储方法及装置 | |
CN107402992B (zh) | 一种分布式NewSQL数据库***和全文检索建立方法 | |
Bacon et al. | Spanner: Becoming a SQL system | |
Nguyen et al. | A study of repetitiveness of code changes in software evolution | |
CN102521254B (zh) | 异构数据库的统一访问方法 | |
CN110795455A (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
US9507820B1 (en) | Data modeling system for runtime schema extensibility | |
US20180046675A1 (en) | Automatic adjustment of an execution plan for a query | |
US7676456B2 (en) | System and method for controlling database access | |
CN104765731A (zh) | 数据库查询优化方法和设备 | |
US10783142B2 (en) | Efficient data retrieval in staged use of in-memory cursor duration temporary tables | |
CN105989015B (zh) | 一种数据库扩容方法和装置以及访问数据库的方法和装置 | |
EP1909198A2 (en) | Semantical partitioning of data | |
CN107016115B (zh) | 数据导出方法、装置、计算机可读存储介质及电子设备 | |
CN104899291A (zh) | 关系型数据库的多维分析的方法及装置 | |
CN104317964A (zh) | 一种基于iBatis的对象关系映射方法及*** | |
US20170322960A1 (en) | Storing mid-sized large objects for use with an in-memory database system | |
CN109634585B (zh) | 一种基于表单自适应展示和更新服务端数据的方法 | |
CN103902565A (zh) | 一种数据访问关系的确定方法及装置 | |
CN108959391B (zh) | 展现数据库集群架构图的设备、***、方法、存储介质 | |
CN108959454B (zh) | 一种提示子句指定方法、装置、设备及存储介质 | |
Koliopoulos et al. | Towards automatic memory tuning for in-memory big data analytics in clusters | |
Kim et al. | Parallel processing of multiple graph queries using MapReduce | |
CN115443456A (zh) | 关系数据库中的迭代查询构造处理 | |
US10311051B1 (en) | Storing modeling alternatives with unitized data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |