CN110309233A - 数据存储的方法、装置、服务器和存储介质 - Google Patents
数据存储的方法、装置、服务器和存储介质 Download PDFInfo
- Publication number
- CN110309233A CN110309233A CN201810266526.2A CN201810266526A CN110309233A CN 110309233 A CN110309233 A CN 110309233A CN 201810266526 A CN201810266526 A CN 201810266526A CN 110309233 A CN110309233 A CN 110309233A
- Authority
- CN
- China
- Prior art keywords
- data
- column
- state data
- page
- history state
- 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
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- 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/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- 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/22—Indexing; Data structures therefor; Storage structures
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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
-
- 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/2379—Updates performed during online database operations; commit 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
Abstract
本发明公开了一种数据存储的方法、装置、服务器和存储介质,属于数据处理技术领域。方法包括:从数据库中确定待转储的数据项的历史态数据,以及确定所述历史态数据的业务需求;根据所述业务需求,确定所述历史态数据的目标存储格式;根据所述目标存储格式,对所述历史态数据进行转储。本发明中,根据该业务需求对应的目标存储格式,对该历史态数据进行转储。从而不仅存储了数据项的全态数据(当前态数据、过渡态数据和历史态数据),还能灵活的以不同的存储格式存储历史态数据,提高了灵活性。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种数据存储的方法、装置、服务器和存储介质。
背景技术
在数据处理系统中,尤其是OLAP(OnlineAnalytical Processing,联机实时分析)处理系统、数据仓库、大数据分析等场景中,经常需要从数据库中获取数据,并基于获取的数据进行分析处理。由于业务可能不断更新,因此,一个数据项逻辑上会有多个状态对应的版本数据,这样,一个数据项的全态(当前态、过渡态和历史态)数据会得到保存,从而便于系统追踪历史态数据,充分挖掘数据的价值(任何数据都有价值,历史态的数据不能丢失)。如何存储数据项的全态数据就变得极有意义。
对于目前的数据库(例如PostgreSQL或者MySQL),服务器会定时清除数据库中的历史态数据。然而当历史态数据被清除后,服务器无法从数据库中追踪到历史态的数据,无法进行数据追踪和分析,导致上述数据存储的机制不完善。
发明内容
本发明实施例提供了一种数据存储的方法、装置、服务器和存储介质,可以解决相关技术的问题,技术方案如下:
一方面,本发明实施例提供了一种数据存储的方法,所述方法包括:
从数据库中确定待转储的数据项的历史态数据,以及确定所述历史态数据的业务需求;
根据所述业务需求,确定所述历史态数据的目标存储格式;
根据所述目标存储格式,对所述历史态数据进行转储。
另一方面,本发明实施例提供了一种数据存储的装置,所述装置包括:
第一确定模块,用于从数据库中确定待转储的数据项的历史态数据,以及确定所述历史态数据的业务需求;
第二确定模块,用于根据所述业务需求,确定所述历史态数据的目标存储格式;
存储模块,用于根据所述目标存储格式,对所述历史态数据进行转储。
另一方面,本发明实施例提供了一种服务器,所述服务器包括:处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由所述处理器加载并执行以实现如以上所述的数据存储的方法中所执行的操作。
另一方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由处理器加载并执行以实现如上述所述的数据存储的方法中所执行的操作。
在本发明实施例中,服务器从数据库中确定待转储的数据项的历史态数据,以及确定该历史态数据的业务需求;根据该业务需求对应的目标存储格式,对该历史态数据进行转储。从而不仅存储了数据项的全态数据(当前态数据、过渡态数据和历史态数据),还能灵活的以不同的存储格式存储历史态数据,提高了灵活性。
附图说明
图1-1是本发明实施例提供的一种数据存储的应用环境的示意图;
图1-2是本发明实施例提供的一种数据项的多版本数据的逻辑存储格式的示意图;
图2-1是本发明实施例提供的一种数据存储的方法流程图;
图2-2是本发明实施例提供的一种行存格式的数据存储结构的示意图;
图2-3是本发明实施例提供的一种列存格式的数据存储结构的示意图;
图2-4是本发明实施例提供的一种cache的结构示意图;
图3-1是本发明实施例提供的一种数据存储的装置结构示意图;
图3-2是本发明实施例提供的另一种数据存储的装置结构示意图
图3-3是本发明实施例提供的另一种数据存储的装置结构示意图;
图4是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种数据存储的应用环境,参见图1-1,该应用环境包括:终端101和服务器102。该终端101可以通过网络来访问服务器102,从服务器102的数据库获取某个数据项的版本数据,从而根据该数据项的版本数据进行事务型处理或者分析型处理等。
终端101可以为手机终端、PAD(Portable Android Device,可携带安卓设备)终端或者电脑终端等任一安装具有数据访问功能的应用的设备。服务器102中包括数据库,该数据库中存储至少一个元组,一个元组存储一个数据项的一个或多个版本数据。
在相关技术中,服务器102会定时清除数据库中的数据项的历史态数据,仅存储数据项的当前态数据和过渡态数据。由于任何数据都有价值,数据项的历史态数据不能丢失;当该数据项的历史态数据被清除后,服务器102无法从数据库中追踪到历史态数据,进而无法进行数据追踪和分析。
而在本发明实施例中,对于数据库中数据项的历史态数据,服务器102可以通过转储的方式来存储,而不会通过清理的方式清理掉。也即服务器102中存储了一个数据项的全态数据。其中,全态是指一个数据项的不同生命周期状态,包括当前态、过渡态和历史态。并且,服务器102在对数据项的历史态数据进行转储时,服务器102可以基于终端101对该数据项的历史态数据的业务需求,确定该数据项的历史态数据的目标存储格式,基于该目标存储格式对该数据项的历史态数据进行转储,从而不仅保证了数据项的版本数据的完整性,还能灵活的以不同的存储格式存储该数据项的历史态数据,提高了灵活性以及终端读取历史态数据的效率。并且,本发明中对该数据项的历史态数据进行转储,从而数据库中存储该数据项的任意状态的数据,进而支持终端101对任意时间段内增量数据的获取和计算,为实现时态数据库提供了一种新的思路和方法。
在本发明实施例中,该数据项的当前态数据和过渡态数据以行存格式进行存储,而该数据项的历史态数据由业务需求确定是通过行存格式或者列存格式进行转储。因此,对于同一个数据项的当前态数据、过渡态数据和历史态数据用行存格式和列存格式混合格式存储,从而实现HTAP(Hybrid transactional/analytical processing,事务型、分析型、事务分析混合型)数据库的功能。
需要说明的一点是,传统的HTAP含义是指数据以行列混合格式存储。而本发明实施例中的HTAP的含义不同于传统的HTAP含义,本发明实施例中的HTAP是指该数据项的当前态数据和过渡态数据以行存格式进行存储,而该数据项的历史态数据由业务需求决定为行存格式或者列存格式。也即本发明实施例中的HTAP是指对同一个数据项的不同版本数据用行列混合格式存储。其中,该数据项的当前态数据和过渡态数据存储在内存中;该数据项的历史态数据可以存储在内存中,也可以存储在数据页面中。
需要说明的另一点是,该数据项的当前态数据是指该数据项的最新的k个版本数据;该数据项的过渡态数据是指存储在过渡页面中的数据;该数据项的历史态数据是指该数据项的数据中除该当前态数据和过渡态数据以外的其他数据。k的取值可以根据需要进行设置并更改,在本发明实施例中,对k的取值不作具体限定。例如,k的默认取值可以为10。
当该数据项的历史态数据的目标存储格式为列存格式时。参见图1-2,当该数据项包括n个版本数据时,分别为V1~Vn。V1~Vn-k为历史态数据,Vn-k+1~Vn为当前态数据,则服务器102将V1~Vn-k以列存格式进行存储,将Vn-k+1~Vn以行存格式进行存储。
本发明实施例提供了一种数据存储的方法,该方法的执行主体可以为服务器。参见图2-1,该方法包括:
步骤201:服务器从数据库中确定待转储的数据项的历史态数据。
数据库引擎定期执行类似PostgreSQL的VACUUM操作和MySQL的Purge操作,但不是删除历史态数据,而是将数据库中的数据项的历史态数据进行转储。转储的时机采用定时机制,定时启动。因此,服务器每个预设时长,从数据库中确定待转储的数据项的历史态数据。该预设时长可以根据需要进行设置并更改,在本发明实施例中,对预设时长不作具体限定。该数据项可以为该数据库中的任一数据项。
步骤202:服务器确定该数据项的历史态数据的业务需求。
当终端从服务器中读取该数据项的历史态数据之前,终端向服务器发送该数据项的历史态数据的业务需求。服务器接收该数据项的历史态数据的业务需求。其中,该业务需求可以为事务型处理或者分析型应用。
步骤203:服务器根据该业务需求,确定该数据项的历史态数据的目标存储格式。
不同的业务需求对应不同的数据存储格式,也即服务器中存储业务需求和存储格式的对应关系。相应的,本步骤可以为:服务器根据该业务需求,从业务需求和存储格式的对应关系中获取该数据项的历史态数据的目标存储格式。
例如,当该数据项的历史态数据的业务需求为事务型处理时,该数据项的历史态数据的目标存储格式为行存格式;当该数据项的历史态数据的业务需求为分析型应用时,该数据项的目标存储格式为列存格式。
步骤204:服务器根据该目标存储格式,对该数据项的历史态数据进行转储。
当该目标存储格式为行存格式时,服务器将该数据项的历史态数据以行存格式进行转储。当该目标存储格式为列存格式时,服务器将该数据项的历史态数据以列存格式进行转储。行存格式的历史态数据可以以内存式结构存储在数据库中,也可以以数据页面式结构存储在数据库中。
(一):当该目标存储格式为行存格式,且该数据项的历史态数据以数据页面式结构存储在数据库中时,本步骤可以通过以下步骤(1)至(3)实现,包括:
(1):服务器将该数据项的历史态数据存储在行存数据页面的页体的元组中。
行存数据页面包括页头、页头和页尾。其中,页头之后是页体,页体之后是页尾。该页头用于存储事务标识,该页体用于存放至少一个元组,每个元组中存储数据项的版本数据;该页尾用于存储该页体中的元组的元组信息。服务器将该数据项的历史态信息存储在元组中。该行存数据页面中的元组从页头方向向页尾方向依次存储。
需要说明的是,一个元组中可以存储一个数据项的多个版本数据,每个版本数据有一个隐含列xid,该xid用于存储该版本数据的操作事务的事务标识。在同一个行存数据页面中,最少存放一个数据项的一个版本数据,最多存放同一个数据项k个版本数据。其中,一个元组中存储几个版本数据的信息,被该元组的x表示;例如,当x的值为3,则表示该元组中存储3个版本数据。由于一个元组中可能存储一个数据项的多个版本数据,因此多个版本数据的数据项可能存在跨页的情况,当行存数据页面分裂时,将该元组的元组信息中的“next”指向下一个行存数据页面。
(2):服务器基于该行存数据页面中的元组,确定该行存数据页面中的最早版本数据的事务标识,将该事务标识存储在该行存数据页面的页头中。
页头中有一个xid_min域,该xid_min域用于存储该行存数据页面内所有元组的所有版本数据中最早版本数据的事务标识。该事务标识可以用于构建页面级别的事务标识索引,从而加快基于事务快照的数据查询。
事务标识是一个二元组,由{t_min,t_xmax}构成,其中,t_min是指事务的诞生时刻。t_xmax是指事务的消亡时刻。由于该最早版本数据的事务标识为一个一元组的值。则该最早版本数据的事务标识为该事务标识中的t_min或t_xmax。相应的,服务器基于该行存数据页面中的元组,确定该元组中最早版本数据的事务标识的步骤可以为:
1):当该元组由插入操作生成,或者为由更新操作生成的旧版本时,则服务器将该元组的诞生时刻作为该最早版本数据的事务标识。
当该元组由插入操作生成,或者该元组是更新操作生成的旧版本时,则该元组只有t_min有值,t_xmax为NULL(无效的),则服务器将该元组的t_min作为该最早版本数据的事务标识。
2):当该元组由删除操作生成,或者为由更新操作生成的新版本时,则服务器将该元组的消亡时刻作为该最早版本数据的事务标识。
当该元组由删除操作生成,或者为由更新操作生成的新版本时,则t_min和t_xmax均有值,服务器将t_xmax作为该最早版本数据的事务标识。
(3):服务器确定该元组的元组信息,将该元组信息存储在该行存数据页面的页尾中。
页尾位于行存数据页面的最底部。该行存页尾用于存储元组信息,该页尾还用于存储数据页面的校验信息。其中,元组在行存数据页面中从页头方向向页尾方向依次存储,而元组的元组信息从页尾方向向页头方向依次存储。因此,元组和元组信息形成一个从两头靠向中间的过程,直到中间的空余空间不再能存放下一个元组和下一个元组的元组信息为止。
其中,该元组的元组信息为该元组的相关信息。该元组的元组信息包括:
a)tpleID:该元组的标识;
b)xid:该元组中所有版本数据中最早版本数据的事务标识。
c)next指向本行存页面中该元组的偏移或该元组的一部分版本数据存在的其他页面的位置。
d)i:标识该元组在该行存数据页面内的版本个数。
e)至少一个列信息,该元组有x个列对象时,则该元组信息有x个列信息,一个列对象对应一个列信息。
其中,该列信息指示以列存格式存储的列对象以及列对象的多版本信息的存放位置。列信息包括:列ID、段地址、页地址和页面偏移。该列ID用于标识该列对象。该段地址、页地址和页面偏移合并用于标识该列对象的存储位置。列对象为列存格式的数据,且该列存格式的数据一般为冷数据,在外存中存储。
该历史态数据可以以传统的数据页面式结构进行存储,还可以以内存式结构存储。在本发明实施例中,对行存格式的存储结构不作具体限定。在本发明实施例中,以将该历史态数据以传统的数据页面式结构存储为例进行了说明。相应的,行存格式的行存数据页面如图2-2所示。行存格式的行存数据页面包括页头、页体和页尾。页头中存储元组中最早版本数据的事务标识。页体中存储多个元组,一个元组中存储一个数据项的一个或者多个版本数据。并且元组从页头方向向页尾方向依次存储。页尾中用于存储页面校验信息和多个元组的元组信息,且元组信息从页尾方向向页头方向依次存储。其中,元组信息包括元组标识tupleID、所有版本数据中最早版本数据的事务标识xid,指向本行存数据页面中元组的偏移或本元组的一部分版本数据存放的其他页面的位置next和列信息。其中,列信息包括标识列对象的列ID、段地址、页地址和页偏移。
需要说明的是,在本发明实施例中,将行存格式的历史态数据以数据页面式结构为例进行了说明。但是本发明实施例中,并不限于数据页面式结构。在内存中也适用,也即在本发明实施例中也可以通过内存式结构存储该历史态数据。当以内存式结构存储该历史态数据时,去掉页头,并且将页尾中存储的元组信息和页面校验信息用HASH(查询)表等数据结构管理起来即可。也即服务器将该元组的元组信息和页面校验信息存储在HASH表中。
需要说明的是,行存数据页面位于内存中,从而可以提高数据库引擎的响应速度。
(二):当目标存储格式为列存格式时,该数据项的历史态数据以数据页面式结构存储在该数据库中时,服务器根据该目标存储格式,对该历史态数据进行转储的步骤可以通过以下步骤(a)至(c)实现,包括:
(a):服务器将该数据项的历史态数据存储在该列存数据页面的页体的列中。
列存数据页面包括页头、页体和页尾。其中,页头之后是页体,页体之后是页尾。该页体用于存储事务标识,该页体用于存放至少一个列,每个列中存储数据项的版本数据;该页尾用于存储该页体中的列的列信息。服务器将该数据项的历史态数据存储在列中,该列存数据页面中的列从页头方向向页尾方向依次存储。
其中,每个列包括列标识,该列标识用于标识该列。每个列中还包括多个元组列,每个元组列中包括元组标识、该元组列中存储的版本数据的个数。其中,该元组标识用于标识该元组列。每个版本数据用一个二元组{xid,value}表示操作该版本数据的事务标识。
(b):服务器基于该列存数据页面中的列,确定最早版本数据的事务标识和最新版本数据的事务标识,将该最早版本数据的事务标识和该最新版本数据的事务标识存储在该列存数据页面的页头中。
其中,页头中有一个xid_min域和一个xid_max域。xid_min域用于存储列存数据页面中所有版本数据的最早事务标识,xid_max域用于存储列存数据页面中所有版本数据的最新事务标识。其中,该最早事务标识和该最新事务标识可以用于构建事务标识索引,便于后续根据历史事务快照的事务标识快速定位列信息,从而进行数据查询。
(c):服务器确定该列的列信息,将该列信息存储在列存数据页面的页尾中。
页尾位于列存数据页面的最底部。该页尾用于存储列的列信息,该页尾还用于存储列存数据页面的校验信息。其中,列在列存数据页面中从页头方向向页尾方向依次存储,而列的列信息从页尾方向向页头方向依次存储。因此,列和列信息形成一个从两头靠向中间的过程,直到中间的空余空间不能再存放下一个列和下一个列的列信息为止。其中,该列的列信息包括列标识和该列在该列存数据页面中的偏移。
列存数据页面如图2-3所示。列存数据页面包括页头、页体和页尾。页头中存储最早事务标识和最新事务标识。页体中用于存储列或者元组列,列中包括列标识。元组列中包括元组标识tupleID。该元组列中存储的版本数据的数目y。其中,每个版本数据用一个二元组{xid,value}表示操作该版本数据的事务标识。列或者元组列从页头方向向页尾方向依次存储。页尾用于存储页面校验信息和多个列信息,列信息从页尾方向向页头方向依次存储。
需要说明的是,列存数据页面在外存中存储。在内存中可以基于该列存数据页面构建cache,从而基于该cache进行数据访问,从而加速访问,提高访问效率。cache中存储事务标识,如图2-4所示。并且,列存格式的历史态数据使用段页式管理结构,可以有效利用诸如表空间等概念,在转储时将列存数据页面独立、连续地在外存进行存储,这样便于在列存上执行针对列的计算。
在本发明实施例中,服务器可以直接将历史态数据从行存格式转储为列存格式,或者将历史态数据从行存格式转储为行存格式。但是行存数据页面或者列存数据页面可能不满,直接将该数据项的历史态数据转储到行存数据页面或者列存数据页面中,容易造成存储空间的浪费。因此,为了避免存储空间的浪费,服务器在内存中为每一个元组建立一个内存的行存页,以及为每一个列建立一个内存的列存页,该行存页或者列存页称为转储过渡页面。当对该数据项的历史态数据进行转储时,将该数据项的历史态数据存储在该转储过渡页面;当该转储过渡页面中存满版本数据时,服务器将该转储过渡页面中的版本数据转储至行存数据页面或者列存数据页面中,从而完成行存数据页面或者列存数据页面物理持久化存储。
在服务器将该转储过渡页面中的版本数据转储至列存数据页面中时,服务器可以对该转储过渡页面中的列信息进行压缩,将该转储过渡页面中的其他信息和压缩后的列信息转储至列存数据页面中,从而节省存储空间。
在本发明实施例中,内存中对于同一个转储过渡页面,服务器可以将该转储过渡页面扩展为一个extend,该extent中包括多个该转储过渡页面。也即对于同一列,连续有n个这样的页面,则服务器在一个extent写满版本数据时,服务器将该extent中的版本数据转储至列存数据页面中,从而进一步提高了压缩效率。
需要说明的是,在本发明实施例中,位于内存中的转储过渡页面,由于该转储过渡页面中的版本数据的事务标识唯一,因此可以将该转储过渡页面中的版本数据的事务标识和该转储过渡页面的页面标识存储在HASH表中,这样可以基于该事务标识,从该HASH表中查找该转储过渡页面,从而快速定位该转储过渡页面。
服务器通过以上步骤201-204对该数据项的历史态数据进行转储之后,服务器通过以下步骤205建立该数据库中的版本数据的索引,以便于后续基于该索引进行数据读取。
步骤205:服务器确定该数据项的历史态数据的索引,建立该历史态数据的索引和存储地址的对应关系。
当该历史态数据的目标存储格式为行存格式时,该历史态数据的索引为行存索引;当该历史态数据的目标存储格式为列存格式时,该历史态数据的索引为列存索引。其中,服务器确定该历史态数据的索引的步骤可以为:
(一):当该目标存储格式为列存格式时,服务器将该历史态数据的最早事务标识作为该历史态数据的行存索引,或者将该历史态数据所在数据表的主键和该历史态数据的最早事务标识组成该历史态数据的行存索引。
(二):当该目标存储格式为列存格式时,服务器将该历史态数据的最早事务标识和最新事务标识组成该历史态数据的列存索引;或者,将该历史态数据所在数据表的主键、该历史态数据的最早事务标识和最新事务标识组成该历史态数据的列存索引。
在本发明实施例中,服务器建立该历史态数据的索引和存储地址的对应关系,从而服务器可以基于该历史态数据的索引快速定位并读取该历史态数据,从而提高了读取效率。并且,在转储过渡页面、列存数据页面中建立基于页面上的xid_min和xid_max的索引,能够加快列数据的查找。并且,将转储过渡页面(或extend)和列存数据页面的地址信息,记载在列的元数据中,便于快速查找到列的源。
服务器存储该历史态数据之后,终端可以通过以下步骤206基于事务快照从服务器中获取该事务快照对应的增量数据。
步骤206:服务器接收数据获取指令,该数据获取指令用于获取该事务快照对应的版本数据。
当终端想要从服务器中读取增量数据时,终端向服务器发送数据获取指令,该数据获取指令中携带该事务快照。服务器接收该数据获取指令,从该数据获取指令中获取该事务快照。
步骤207:服务器获取该事务快照对应的事务的事务标识。
该事务快照中包括事务标识,服务器从该事务快照中提取事务标识。需要说明的是,本发明实施例中的事务标识可以为创建该事务快照的时间戳。因此,事务标识可以与时间戳互相转换,从而确保能实现时态数据库中的“事务时间”属性。
步骤208:服务器根据该事务标识,从数据库中读取该事务标识对应的版本数据,并输出该版本数据。
对于任一一个给定的事务快照,服务器根据该事务快照中的事务标识在行存索引和列存索引中进行查找。由于基于该事务快照用于获取历史态数据,而历史态数据可能以列存格式进行存储。因此,服务器优先在列存索引中进行查找,当列存索引中不存在该事务标识之后,在转储过渡页面中查找,当该转储过渡页面中不存在该事务标识时,才在行存索引中进行查找,从而提高了查询效率。并且,基于上述建立的索引,在数据寻址时可以有效加快寻址过程。相应的,本步骤可以通过以下步骤(1)至(5)实现,包括:
(1):服务器根据该事务标识,在该数据库的列存索引中进行查找。
由于该数据库的列存索引在内存中常驻。因此,服务器直接在内存的列索引中查找该事务标识。当该列索引中查找到该事务标识时,执行步骤(2);当该列索引中没有查找到该事务标识时,执行步骤(3)。
(2):当该列存索引中查找到该事务标识时,服务器根据该事务标识对应的存储地址,从数据库的列存数据页面中读取该事务标识对应的版本数据,结束。
服务器中存储事务标识和存储地址的对应关系。服务器根据该事务标识,从事务标识和存储地址的对应关系中获取待读取的版本数据的存储地址,根据该存储地址,从该列存数据页面中读取该事务标识对应的版本数据。
(3):当该列存索引中没有查找到该事务标识时,服务器根据该事务标识,在该数据库的转储过渡页面中进行查找。
当该数据库的行存索引中查找到该事务标识时,执行步骤(4);当该行存索引中没有查找到该事务标识时,执行步骤(5)。
(4):当该转储过渡页面中查找到该事务标识时,服务器根据该事务标识对应的存储地址,从数据库的转储过渡页面中读取该事务标识对应的版本数据,结束。
本步骤和步骤(2)相似,在此不再赘述。
(5):当该转储过渡页面中没有查找到该事务标识时,服务器根据该事务标识,在该行存索引中进行查找;当在该行存索引中查找到该事务标识时,根据该事务标识对应的存储地址,从该数据库的转储过渡页面中读取该事务标识对应的版本数据。
在本步骤中,服务器读取到该事务标识对应的版本数据之后,服务器将该版本数据发送给终端。
需要说明的是,该历史态数据中存储事务发生的开始时间和结束时间,事务发生的开始时间和结束时间为实现时态数据库中的事务时态提供了物理基础;且该历史态数据、事务发生的开始时间和结束时间用于确定指定的历史时间段内数据的变化情况,从而满足事物时态的语义。由此可见,基于上述内容可知,可以以较低代价,实现“双时态数据库”。
在本发明实施例中,服务器将数据项的历史态数据根据业务需求对应的目标存储格式进行转储,使得一个数据项的历史版本数据都得以保存,从而为时态数据库的实现提供了一个很好的途径。该途径适用于使用了MVCC(Multi-Version Concurrency Control,多版本并发控制)技术做并发访问控制技术的任何关系型数据库或者非关系型数据库。变清理历史态数据为转储历史态数据,使得在现有的数据库中以较少代价即可实现时态数据库。并且,在本发明实施例中,将数据项的当前态数据和过渡态数据以行存格式进行存储,将该数据项的历史态数据以列存格式(或者行存格式)进行转储,区分了历史态数据和当前态数据,并且同一个数据库中同时以行存格式和列存格式存储数据,客观上支持了时态的HTAP数据库系统。并且将历史态数据和当前态数据存储在同一个数据库中,避免了数据仓库耗时复杂的工作,节约了存储和计算的资源。
在本发明实施例中,服务器从数据库中确定待转储的数据项的历史态数据,以及确定该历史态数据的业务需求;根据该业务需求对应的目标存储格式,对该历史态数据进行转储。从而不仅存储了数据项的全态数据(当前态数据、过渡态数据和历史态数据),还能灵活的以不同的存储格式存储历史态数据,提高了灵活性。
本发明实施例提供了一种数据存储的装置,该装置可以应用在服务器中,用于执行上述数据存储的装置。参见图3-1,该装置包括:
第一确定模块301,用于从数据库中确定待转储的数据项的历史态数据,以及确定该历史态数据的业务需求;
第二确定模块302,用于根据该业务需求,确定该历史态数据的目标存储格式;
存储模块303,用于根据该目标存储格式,对该历史态数据进行转储。
在一个可能的实现方式中,该数据库为事务型、分析型、事务分析混合型HTAP数据库,该目标存储格式为行存格式或者列存格式,且该数据项的当前态数据和过渡态数据以行存格式存储在该数据库中。
在一个可能的实现方式中,该当前态数据以内存式结构存储在该数据库中,该历史态数据以内存式结构或者数据页面式结构存储在该数据库中。
在一个可能的实现方式中,当该目标存储格式为行存格式,该存储模块303,还用于将该历史态数据存储在该行存数据页面的页体的元组中;
该存储模块303,还用于基于该行存数据页面中的元组,确定该元组中最早版本数据的事务标识,将该事务标识存储在该行存数据页面的页头中;
该存储模块303,还用于确定该元组的元组信息,将该元组信息存储在该行存数据页面的页尾中。
在一个可能的实现方式中,该存储模块303,还用于当该元组由插入操作生成或者为由更新操作生成的旧版本时,将该元组的诞生时刻作为该最早版本数据的事务标识;当该元组由删除操作生成或者为由更新操作生成的新版本时,将该元组的消亡时刻作为该最早版本数据的事务标识。
在一个可能的实现方式中,该存储模块303,还用于当该元组中的多个版本数据存储在该行存数据页面和下一个行存数据页面时,在该元组信息中添加该下一个行存数据页面的页面标识。
在一个可能的实现方式中,该存储模块303,还用于将该历史态数据存储在该列存数据页面的页体的列中;基于该列存数据页面中的列,确定最早版本数据的事务标识和最新版本数据的事务标识,将该最早事务标识和该最新事务标识存储在该列存数据页面的页头中;确定该列的列信息,将该列信息存储在该列存数据页面的页尾中。
在一个可能的实现方式中,该存储模块303,还用于将该历史态数据存储在该转储过渡页面中;当该转储过渡页面中存满版本数据时,当该目标存储格式为行存格式,将该转储过渡页面中的历史态数据转储至行存数据页面中;当该目标存储格式为列存格式,将该转储过渡页面中的历史态数据转储至列存数据页面中。
在一个可能的实现方式中,该存储模块303,还用于对该转储过渡页面中的列信息进行压缩,将该转储过渡页面中的其他信息和压缩后的列信息转储至该列存数据页面中。
在一个可能的实现方式中,参见图3-2,该装置还包括:
第三确定模块304,用于确定该历史态数据的索引,该索引为行存索引或者列存索引;
建立模块305,用于建立该历史态数据的索引和存储地址的对应关系。
在一个可能的实现方式中,第三确定模块304,还用于当该目标存储格式为列存格式时,将该历史态数据的最早事务标识作为该历史态数据的行存索引,或者将该历史态数据所在数据表的主键和该历史态数据的最早事务标识组成该历史态数据的行存索引;
第三确定模块304,还用于当该目标存储格式为列存格式时,将该历史态数据的最早事务标识和最新事务标识组成该历史态数据的列存索引;或者,将该历史态数据所在数据表的主键、该历史态数据的最早事务标识和最新事务标识组成该历史态数据的列存索引。
在一个可能的实现方式中,参见图3-3,该装置还包括:
接收模块306,用于接收数据获取指令,该数据获取指令用于获取该事务快照对应的版本数据;
第一获取模块307,用于获取该事务快照对应的事务的事务标识;
查找模块308,用于根据该事务标识,在该列存索引中进行查找;
第二获取模块309,用于当在该列存索引中查找到该事务标识时,根据该事务标识对应的存储地址,从该数据库的列存数据页面中读取该事务标识对应的版本数据。
在一个可能的实现方式中,查找模块308,用于当在该列存索引中没有查找到该事务标识时,根据该事务标识,在该数据库的转储过渡页面中进行查找;
第二获取模块309,用于当在该数据库的转储过渡页面中查找到该事务标识时,根据该事务标识对应的存储地址,从该数据库的转储过渡页面中读取该事务标识对应的版本数据。
在一个可能的实现方式中,查找模块308,还用于当在该数据库的转储过渡页面中没有查找到该事务标识时,根据该事务标识,在该行存索引中进行查找;
第二获取模块309,用于当在该行存索引中查找到该事务标识时,根据该事务标识对应的存储地址,从该数据库的行存数据页面中读取该事务标识对应的版本数据。
在一个可能的实现方式中,所述历史态数据中存储事务发生的开始时间和结束时间,事务发生的开始时间和结束时间为实现时态数据库中的事务时态提供了物理基础;且所述历史态数据、事务发生的开始时间和结束时间用于确定指定的历史时间段内数据的变化情况。
在本发明实施例中,服务器从数据库中确定待转储的数据项的历史态数据,以及确定该历史态数据的业务需求;根据该业务需求对应的目标存储格式,对该历史态数据进行转储。从而不仅存储了数据项的全态数据(当前态数据、过渡态数据和历史态数据),还能灵活的以不同的存储格式存储历史态数据,提高了灵活性。
图4是本发明实施例提供的一种服务器的结构示意图,该服务器400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU)401和一个或一个以上的存储器402,其中,所述存储器402中存储有至少一条指令,所述至少一条指令由所述处理器401加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质应用于服务器,该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,该指令、该程序、该代码集或该指令集由处理器加载并执行以实现上述实施例的数据存储的方法中服务器所执行的操作。
需要说明的是:上述实施例提供的数据存储的装置在数据存储时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据存储的装置与数据存储的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (19)
1.一种数据存储的方法,其特征在于,所述方法包括:
从数据库中确定待转储的数据项的历史态数据,以及确定所述历史态数据的业务需求;
根据所述业务需求,确定所述历史态数据的目标存储格式;
根据所述目标存储格式,对所述历史态数据进行转储。
2.根据权利要求1所述的方法,其特征在于,所述数据库为事务型、分析型、事务分析混合型HTAP数据库,所述目标存储格式为行存格式或者列存格式,且所述数据项的当前态数据和过渡态数据以行存格式存储在所述数据库中。
3.根据权利要求2所述的方法,其特征在于,所述当前态数据以内存式结构存储在所述数据库中,所述历史态数据以内存式结构或者数据页面式结构存储在所述数据库中。
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标存储格式,对所述历史态数据进行转储,包括:
根据所述目标存储格式,将所述历史数据转储至所述目标存储格式对应的数据页面中。
5.根据权利要求4所述的方法,其特征在于,当所述目标存储格式为行存格式时,所述根据所述目标存储格式,将所述历史数据转储至所述目标存储格式对应的数据页面中,包括:
将所述历史态数据存储在行存数据页面的页体的元组中;
基于所述行存数据页面中的元组,确定所述元组中最早版本数据的事务标识,将所述事务标识存储在所述行存数据页面的页头中;
确定所述元组的元组信息,将所述元组信息存储在所述行存数据页面的页尾中。
6.根据权利要求5所述的方法,其特征在于,所述基于所述行存数据页面中的元组,确定所述元组中最早版本数据的事务标识,包括:
当所述元组由插入操作生成或者为由更新操作生成的旧版本时,将所述元组的诞生时刻作为所述最早版本数据的事务标识;
当所述元组由删除操作生成或者为由更新操作生成的新版本时,将所述元组的消亡时刻作为所述最早版本数据的事务标识。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当所述元组中的多个版本数据存储在所述行存数据页面和下一个行存数据页面时,在所述元组信息中添加所述下一个行存数据页面的页面标识。
8.根据权利要求4所述的方法,其特征在于,当所述目标存储格式为列存格式时,所述根据所述目标存储格式,将所述历史数据转储至所述目标存储格式对应的数据页面中,包括:
将所述历史态数据存储在列存数据页面的页体的列中;
基于所述列存数据页面中的列,确定最早版本数据的事务标识和最新版本数据的事务标识,将所述最早事务标识和所述最新事务标识存储在所述列存数据页面的页头中;
确定所述列的列信息,将所述列信息存储在所述列存数据页面的页尾中。
9.根据权利要求4所述的方法,其特征在于,所述根据所述目标存储格式,对所述历史态数据进行转储,包括:
将所述历史态数据存储在转储过渡页面中;
当所述转储过渡页面中存满版本数据时,当所述目标存储格式为行存格式,将所述转储过渡页面中的历史态数据转储至行存数据页面中;
当所述目标存储格式为列存格式,将所述转储过渡页面中的历史态数据转储至列存数据页面中。
10.根据权利要求9所述的方法,其特征在于,所述将所述转储过渡页面中的历史态数据转储至列存数据页面中,包括:
对所述转储过渡页面中的列信息进行压缩,将所述转储过渡页面中的其他信息和压缩后的列信息转储至所述列存数据页面中。
11.根据权利要求1-10任一所述的方法,其特征在于,所述方法还包括:
确定所述历史态数据的索引,所述索引为行存索引或者列存索引;
建立所述历史态数据的索引和存储地址的对应关系。
12.根据权利要求11所述的方法,其特征在于,所述确定所述历史态数据的索引,包括:
当所述目标存储格式为列存格式时,将所述历史态数据的最早事务标识作为所述历史态数据的行存索引,或者将所述历史态数据所在数据表的主键和所述历史态数据的最早事务标识组成所述历史态数据的行存索引;
当所述目标存储格式为列存格式时,将所述历史态数据的最早事务标识和最新事务标识组成所述历史态数据的列存索引;或者,将所述历史态数据所在数据表的主键、所述历史态数据的最早事务标识和最新事务标识组成所述历史态数据的列存索引。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
接收数据获取指令,所述数据获取指令用于获取所述事务快照对应的版本数据;
获取所述事务快照对应的事务的事务标识;
根据所述事务标识,在所述列存索引中进行查找;
当在所述列存索引中查找到所述事务标识时,根据所述事务标识对应的存储地址,从所述数据库的列存数据页面中读取所述事务标识对应的版本数据。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
当在所述列存索引中没有查找到所述事务标识时,根据所述事务标识,在所述数据库的转储过渡页面中进行查找;
当在所述数据库的转储过渡页面中查找到所述事务标识时,根据所述事务标识对应的存储地址,从所述数据库的转储过渡页面中读取所述事务标识对应的版本数据。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
当在所述数据库的转储过渡页面中没有查找到所述事务标识时,根据所述事务标识,在所述行存索引中进行查找;
当在所述行存索引中查找到所述事务标识时,根据所述事务标识对应的存储地址,从所述数据库的行存数据页面中读取所述事务标识对应的版本数据。
16.根据权利要求1-10任一所述的方法,其特征在于,所述历史态数据中存储事务发生的开始时间和结束时间,事务发生的开始时间和结束时间为实现时态数据库中的事务时态提供了物理基础;且所述历史态数据、事务发生的开始时间和结束时间用于确定指定的历史时间段内数据的变化情况。
17.一种数据存储的装置,其特征在于,所述装置包括:
第一确定模块,用于从数据库中确定待转储的数据项的历史态数据,以及确定所述历史态数据的业务需求;
第二确定模块,用于根据所述业务需求,确定所述历史态数据的目标存储格式;
存储模块,用于根据所述目标存储格式,对所述历史态数据进行转储。
18.一种服务器,其特征在于,所述服务器包括:处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由所述处理器加载并执行以实现如权利要求1至16任一权利要求所述的数据存储的方法中所执行的操作。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由处理器加载并执行以实现如权利要求1至16任一权利要求所述的数据存储的方法中所执行的操作。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810266526.2A CN110309233B (zh) | 2018-03-28 | 2018-03-28 | 数据存储的方法、装置、服务器和存储介质 |
PCT/CN2019/075421 WO2019184618A1 (zh) | 2018-03-28 | 2019-02-19 | 数据存储的方法、装置、服务器和存储介质 |
US16/890,469 US11275759B2 (en) | 2018-03-28 | 2020-06-02 | Data storage method and apparatus, server, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810266526.2A CN110309233B (zh) | 2018-03-28 | 2018-03-28 | 数据存储的方法、装置、服务器和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110309233A true CN110309233A (zh) | 2019-10-08 |
CN110309233B CN110309233B (zh) | 2022-11-15 |
Family
ID=68062569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810266526.2A Active CN110309233B (zh) | 2018-03-28 | 2018-03-28 | 数据存储的方法、装置、服务器和存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11275759B2 (zh) |
CN (1) | CN110309233B (zh) |
WO (1) | WO2019184618A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858759A (zh) * | 2020-07-08 | 2020-10-30 | 平凯星辰(北京)科技有限公司 | 一种基于共识算法的htap数据库 |
US11531594B2 (en) | 2018-11-30 | 2022-12-20 | Tencent Technology (Shenzhen) Company Limited | Data recovery method and apparatus, server, and computer-readable storage medium |
WO2024008024A1 (zh) * | 2022-07-04 | 2024-01-11 | 华为云计算技术有限公司 | 一种基于对象存储服务的跨区域转储方法及相关装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11797523B2 (en) | 2020-12-18 | 2023-10-24 | Microsoft Technology Licensing, Llc | Schema and data modification concurrency in query processing pushdown |
US11860829B2 (en) * | 2020-12-18 | 2024-01-02 | Microsoft Technology Licensing, Llc | Page split detection and affinity in query processing pushdowns |
CN117529714A (zh) * | 2021-06-19 | 2024-02-06 | 华为技术有限公司 | 用于为迁移rdbms推荐存储格式的方法和系统 |
CN115438114B (zh) * | 2022-11-09 | 2023-03-24 | 浪潮电子信息产业股份有限公司 | 存储格式转换方法、系统、装置、电子设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62245348A (ja) * | 1986-04-18 | 1987-10-26 | Hitachi Ltd | データベース更新方法 |
US5832508A (en) * | 1996-09-18 | 1998-11-03 | Sybase, Inc. | Method for deallocating a log in database systems |
US6694340B1 (en) * | 1998-09-24 | 2004-02-17 | International Business Machines Corporation | Technique for determining the age of the oldest reading transaction with a database object |
US20080222209A1 (en) * | 2007-03-09 | 2008-09-11 | Fujitsu Limited | Database management method and database management apparatus |
US20120310934A1 (en) * | 2011-06-03 | 2012-12-06 | Thomas Peh | Historic View on Column Tables Using a History Table |
CN105989192A (zh) * | 2015-03-17 | 2016-10-05 | 日本电气株式会社 | 列存储数据库管理系统 |
CN106127066A (zh) * | 2016-06-15 | 2016-11-16 | 青岛恒金源电子科技有限公司 | 一种基于云盘的历史数据文件安全保护方法及系统 |
CN106874437A (zh) * | 2017-02-04 | 2017-06-20 | 中国人民大学 | 面向数据库一体机的内存数据仓库行列存储转换实现方法 |
CN107682395A (zh) * | 2017-08-24 | 2018-02-09 | 潍坊科技学院 | 一种大数据云计算运行系统及方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838844B (zh) * | 2014-03-03 | 2018-01-19 | 珠海市君天电子科技有限公司 | 一种键值对数据存储、传输方法及装置 |
CN105528425A (zh) * | 2015-12-08 | 2016-04-27 | 普元信息技术股份有限公司 | 云计算环境下基于文件实现异步数据存储的方法 |
CN106127006A (zh) | 2016-06-26 | 2016-11-16 | 深圳市智汇十方科技有限公司 | 一种移动终端的用户管理方法和系统 |
US10922296B2 (en) * | 2017-03-01 | 2021-02-16 | Sap Se | In-memory row storage durability |
CN107273403A (zh) * | 2017-04-24 | 2017-10-20 | 西安电子科技大学 | 一种历史数据收集及存储的方法 |
US10614069B2 (en) * | 2017-12-01 | 2020-04-07 | Palantir Technologies Inc. | Workflow driven database partitioning |
-
2018
- 2018-03-28 CN CN201810266526.2A patent/CN110309233B/zh active Active
-
2019
- 2019-02-19 WO PCT/CN2019/075421 patent/WO2019184618A1/zh active Application Filing
-
2020
- 2020-06-02 US US16/890,469 patent/US11275759B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62245348A (ja) * | 1986-04-18 | 1987-10-26 | Hitachi Ltd | データベース更新方法 |
US5832508A (en) * | 1996-09-18 | 1998-11-03 | Sybase, Inc. | Method for deallocating a log in database systems |
US6694340B1 (en) * | 1998-09-24 | 2004-02-17 | International Business Machines Corporation | Technique for determining the age of the oldest reading transaction with a database object |
US20080222209A1 (en) * | 2007-03-09 | 2008-09-11 | Fujitsu Limited | Database management method and database management apparatus |
US20120310934A1 (en) * | 2011-06-03 | 2012-12-06 | Thomas Peh | Historic View on Column Tables Using a History Table |
CN105989192A (zh) * | 2015-03-17 | 2016-10-05 | 日本电气株式会社 | 列存储数据库管理系统 |
CN106127066A (zh) * | 2016-06-15 | 2016-11-16 | 青岛恒金源电子科技有限公司 | 一种基于云盘的历史数据文件安全保护方法及系统 |
CN106874437A (zh) * | 2017-02-04 | 2017-06-20 | 中国人民大学 | 面向数据库一体机的内存数据仓库行列存储转换实现方法 |
CN107682395A (zh) * | 2017-08-24 | 2018-02-09 | 潍坊科技学院 | 一种大数据云计算运行系统及方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11531594B2 (en) | 2018-11-30 | 2022-12-20 | Tencent Technology (Shenzhen) Company Limited | Data recovery method and apparatus, server, and computer-readable storage medium |
CN111858759A (zh) * | 2020-07-08 | 2020-10-30 | 平凯星辰(北京)科技有限公司 | 一种基于共识算法的htap数据库 |
CN111858759B (zh) * | 2020-07-08 | 2021-06-11 | 平凯星辰(北京)科技有限公司 | 一种基于共识算法的htap数据库系统 |
WO2024008024A1 (zh) * | 2022-07-04 | 2024-01-11 | 华为云计算技术有限公司 | 一种基于对象存储服务的跨区域转储方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110309233B (zh) | 2022-11-15 |
US11275759B2 (en) | 2022-03-15 |
US20200293545A1 (en) | 2020-09-17 |
WO2019184618A1 (zh) | 2019-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10180946B2 (en) | Consistent execution of partial queries in hybrid DBMS | |
CN110309233A (zh) | 数据存储的方法、装置、服务器和存储介质 | |
CN107391653B (zh) | 一种分布式NewSQL数据库系统及图片数据储存方法 | |
CN107423422B (zh) | 基于网格的空间数据分布式存储及检索方法和系统 | |
US10360146B2 (en) | Group garbage collection for multi-version concurrency control in database systems | |
CN110825748B (zh) | 利用差异化索引机制的高性能和易扩展的键值存储方法 | |
CN102521406B (zh) | 海量结构化数据复杂查询任务的分布式查询方法和系统 | |
EP3170106B1 (en) | High throughput data modifications using blind update operations | |
CN102521405B (zh) | 支持高速加载的海量结构化数据存储、查询方法和系统 | |
US7418544B2 (en) | Method and system for log structured relational database objects | |
US10572508B2 (en) | Consistent query execution in hybrid DBMS | |
CN106716409A (zh) | 基于查询需求从行存储数据库自适应地构建和更新列存储数据库的方法和系统 | |
CN110209528B (zh) | 数据备份方法、装置、服务器以及存储介质 | |
CN102779138B (zh) | 实时数据的硬盘存取方法 | |
CN109521959A (zh) | 一种基于ssd-smr磁盘混合键值存储系统数据组织方法 | |
CN102955792A (zh) | 一种实时全文搜索引擎事务处理的实现方法 | |
CN104239377A (zh) | 跨平台的数据检索方法及装置 | |
CN110134335A (zh) | 一种基于键值对的rdf数据管理方法、装置及存储介质 | |
US11921704B2 (en) | Version control interface for accessing data lakes | |
CN103365987A (zh) | 一种基于共享磁盘架构的集群数据库系统及数据处理方法 | |
Athanassoulis et al. | Online updates on data warehouses via judicious use of solid-state storage | |
CN109213760B (zh) | 非关系数据存储的高负载业务存储及检索方法 | |
CN103353891A (zh) | 数据库管理系统及其数据处理方法 | |
US20240086362A1 (en) | Key-value store and file system | |
US20230409545A1 (en) | Version control interface supporting time travel access of a data lake |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230919 Address after: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |