CN107679136A - 拉链表的存储方法及存储*** - Google Patents
拉链表的存储方法及存储*** Download PDFInfo
- Publication number
- CN107679136A CN107679136A CN201710866192.8A CN201710866192A CN107679136A CN 107679136 A CN107679136 A CN 107679136A CN 201710866192 A CN201710866192 A CN 201710866192A CN 107679136 A CN107679136 A CN 107679136A
- Authority
- CN
- China
- Prior art keywords
- data
- full dose
- slide fastener
- fastener table
- time
- 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
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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Slide Fasteners (AREA)
Abstract
本发明公开了拉链表的存储方法及存储***。存储方法包括以下步骤:S1、从用户端获取当天的全量数据,并从拉链表中获取前一天的全量数据;所述拉链表包括结束时间字段;S2、判断当天的全量数据与前一天的全量数据是否存在相同的第一数据;若判断为是,执行步骤S3;S3、将全量数据中的第二数据存储于拉链表中的对应的分区中,并标记所述第二数据的结束时间为大于当前时刻;所述第二数据为当天的全量数据中除第一数据之外的数据。本发明在不影响搜索效果的前提下,大大节约了存储空间。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种拉链表的存储方法及存储***。
背景技术
随着大数据技术的普及,越来越多的传统数据库数据被移到HIVE(一种数据仓库工具)中存储。现有技术中,将每天获得的拉链表存储在对应的分区中,虽然这样可以查询到历史上任意一天的数据,但是会带来巨大的存储空间的浪费。
发明内容
本发明要解决的技术问题是为了克服现有技术中的拉链表的存储方式会造成巨大的存储空间浪费的缺陷,提供一种拉链表的存储方法及存储***。
本发明是通过下述技术方案来解决上述技术问题:
一种拉链表的存储方法,其特点在于,所述存储方法包括以下步骤:
S1、从用户端获取当天的全量数据,并从拉链表中获取前一天的全量数据;所述拉链表包括结束时间字段;
S2、判断当天的全量数据与前一天的全量数据是否存在相同的第一数据;若判断为是,执行步骤S3;
S3、将全量数据中的第二数据存储于拉链表中的对应的分区中,并标记所述第二数据的结束时间为大于当前时刻;所述第二数据为当天的全量数据中除第一数据之外的数据。
较佳地,所述拉链表还包括起始时间字段;
步骤S2还包括:
判断所述第二数据中是否有新增数据;
若判断为是,步骤S3还包括:
在将所述新增数据存储于拉链表中的对应的分区中时,将所述新增数据的起始时间标记为当前时刻。
较佳地,步骤S2还包括:
判断所述第二数据中是否有删除数据;所述删除数据记录在前一天的全量数据中,未记录在当天的全量数据中;
若判断为是,步骤S3还包括:
将前一天的全量数据中的删除数据的结束时间标记为当前时刻。
较佳地,步骤S2还包括:
判断所述第二数据中是否有更新数据;所述更新数据在前一天的全量数据与当天的全量数据中的数据内容不相同;
若判断为是,步骤S3还包括:
将前一天的全量数据中的更新数据的结束时间标记为当前时刻;并将当天的全量数据中的更新数据的起始时间标记为当前时刻,结束时间标记为大于当前时刻。
本发明还提供一种拉链表的存储***,其特点在于,所述存储***包括:
数据获取模块,用于从用户端获取当天的全量数据,并从拉链表中获取前一天的全量数据;所述拉链表包括结束时间字段;
判断模块,用于判断当天的全量数据与前一天的全量数据是否存在相同的第一数据;若判断为是,调用存储模块和时间标记模块;
所述存储模块用于将全量数据中的第二数据存储于拉链表中的对应的分区中;
所述时间标记模块用于将第二数据的结束时间标记为大于当前时刻;
所述第二数据为当天的全量数据中除第一数据之外的数据。
较佳地,所述拉链表还包括起始时间字段;
所述判断模块还用于判断所述第二数据中是否有新增数据;若判断为是,在存储模块将所述新增数据存储于拉链表中时,调用所述时间标记模块;
所述时间标记模块将所述新增数据的起始时间标记为当前时刻。
较佳地,所述判断模块还用于判断所述第二数据中是否有删除数据,所述删除数据记录在前一天的全量数据中,未记录在当天的全量数据中;若判断为是,则调用所述时间标记模块;
所述时间标记模块将前一天的全量数据中的删除数据的结束时间标记为当前时刻。
较佳地,所述判断模块还用于判断所述第二数据中是否有更新数据,所述更新数据在前一天的全量数据与当天的全量数据中的数据内容不相同;若判断为是,则调用所述时间标记模块;
所述时间标记模块将前一天的全量数据中的更新数据的结束时间标记为当前时刻,并将当天的全量数据中的更新数据的起始时间标记为当前时刻,结束时间标记为大于当前时刻。
本发明的积极进步效果在于:本发明仅存储当天的全量数据中与前一天的全量数据不同的数据,并通过标记当天的全量数据的结束时间的方式,使得本发明在不影响搜索效果的前提下,大大节约了存储空间。
附图说明
图1为本发明实施例1的拉链表的存储方法的流程图。
图2为本发明实施例2的拉链表的存储***的模块示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
如图1所示,本实施例的拉链表的存储方法包括以下步骤:
步骤101、从用户端获取当天的全量数据,并从拉链表中获取前一天的全量数据。
其中,拉链表包括结束时间字段和起始时间字段,结束时间字段和起始时间字段可在用户新建拉链表时添加。起始时间表征拉链表中的数据的存储时间,结束时间大于起始时间,且一般为一个很大的日期(也即距离当天很远的一个日期),比如3000年1月1日。
全量数据一般每天均会进行获取,并将同天获得的全量数据中需要存储的数据(也就是以下所述的第二数据)存储在相同的分区中,也就是说,若当前为2015年4月5号,则将第二数据存储于拉链表时,将当天存储的第二数据的起始时间标记为2015年4月5号,结束时间标记为3000年1月1日。
步骤102、判断当天的全量数据与前一天的全量数据是否存在相同的第一数据。若判断为是,则说明当天的全量数据与前一天的全量数据中存在相同数据(也即第一数据),存储两次相同的数据较多余,则执行步骤103。若判断为否,则说明当天的全量数据与前一天的全量数据完全不相同,则执行步骤103’。
步骤103、将全量数据中的第二数据存储于拉链表中的对应的分区中,并标记所述第二数据的结束时间为大于当前时刻,也就是上述所说的一个很大的日期。
其中,第二数据为当天的全量数据中除第一数据之外的数据,也就是当天的全量数据中与前一天的全量数据不相同的数据。
步骤103’、将当天的全量数据存储于拉链表中的对应的分区中,并将当天的全量数据的结束时间均标记为大于当前时刻。也即当当天的全量数据与前一天的全量数据完全不相同时,不对当天的全量数据做任何操作直接存储于拉链表的对应的分区中。
从而,本实施例的存储方法可大大节约存储空间,尤其对那些每天数据变化量很少的拉链表。例如,一张拉链表每天的数据变化量为x(假设每天变化量不变),存储天数为n天,拉链表所占空间的百分比为原来的(1+x+…+xn)/n。假设每天的变化量为20%,存储了4天,则一张拉链表所占空间仅为原来的31.2%。且当存储时间越长,拉链表的数量越多,则可节省的空间就越大。
本实施例中,步骤102中还可进一步判断第二数据中是否有新增数据。若当天的全量数据中存在新增数据;则步骤103中,在将新增数据存储于拉链表中的对应的分区中时,还将新增数据的起始时间标记为当前时刻。此时,拉链表中新增数据的起始时间为当前时刻(若当前为2015年4月5号,则起始时间为2015年4月5号),结束时间为一个很大的日期(例如,3000年1月1日)。
其中,新增数据为记录在当天的全量数据中,但未记录在拉链表中的数据。也即若拉链表为订单数据拉链表,新增数据也即为当天新增加的订单。若当天为4月5号,则将新增数据存储于拉链表时记录新增数据的起始时间为4月5号,结束时间标记可标记为3000年1月1日。若用户查询4月4号之前的有效订单,则不会显示该订单数据;若用户查询4月5之后包括当天的有效订单,则会显示该订单数据(除非之后对该订单有进行修改或删除)。
本实施例中,步骤102中还可进一步判断第二数据中是否有删除数据。若存在删除数据,则步骤103中还将拉链表中前一天的全量数据中的删除数据的结束时间标记为当前时刻。
其中,该删除数据为记录在前一天的全量数据中,但未记录在当天的全量数据中的数据。同样以订单数据拉链表为例,删除数据为当天(4月5号)删除的订单,也就是说,拉链表中存储有该订单数据信息,而当天的全量数据中已无该订单数据记录,说明订单数据的有效时间至今天为止,则将拉链表中的删除数据的结束时间重新标记为当前时刻,也即4月5号。此时,若用户查询订单建立日至4月4号之前的有效订单,则会显示该订单数据;若用户查询4月5之后的有效订单,则不会显示该订单数据。
本实施例中,步骤102中还可进一步判断第二数据中是否有更新数据。若存在更新数据,则步骤103中将拉链表中的前一天的全量数据中的更新数据的结束时间标记为当前时刻;并将当天的全量数据中的更新数据的起始时间标记为当前时刻,结束时间标记为大于当前时刻。
其中,更新数据在前一天的全量数据与当天的全量数据中的数据内容不相同。同样以订单数据拉链表为例,若当天(4月5号)用户更新了订单的数量或价格等数据内容,则将拉链表中的该订单的结束时间重新标记为4月5号,而将第二数据存储于拉链表时,将第二数据中的该订单的起始时间标记为4月5号,结束时间标记为一个很大的日期,例如3000年1月1日。当用户查询4月4号之前的有效订单,则显示的订单为用户未更新订单数量或价格等数据内容的订单;若用户查询4月5之后的有效订单,则显示的订单为用户已更新订单数量或价格等数据内容的订单。
从而,本实施例的存储方法不仅大大节约了存储空间,且用户可查询到任意一天的历史数据,不会影响用户体验。
实施例2
如图2所示,本实施例的拉链表的存储***包括数据获取模块1、判断模块2、存储模块3和时间标记模块4。数据获取模块1用于从用户端获取当天的全量数据,并从拉链表中获取前一天的全量数据。其中,拉链表中包括结束时间字段和起始时间字段。判断模块2用于判断当天的全量数据与前一天的全量数据是否存在相同数据;若判断为是,调用存储模块3和时间标记模块4。存储模块3用于将全量数据中的第二数据存储于拉链表的对应的分区中。时间标记模块4用于将第二数据的结束时间标记为大于当前时刻。其中,第二数据为当天的全量数据中除第一数据之外的数据。本实施例中的结束时间和起始时间的定义与实施例1中相同,此处不再赘述。
本实施例中,判断模块还用于判断第二数据中是否有新增数据,新增数据记录在当天的全量数据中,未记录在前一天的全量数据中;若判断为是,则调用时间标记模块。时间标记模块将新增数据的起始时间标记为当前时刻,结束时间标记为大于当前时刻。
本实施例中,判断模块还用于判断第二数据中是否有删除数据,删除数据记录在前一天的全量数据中,未记录在当天的全量数据中;若判断为是,则调用所述时间标记模块。时间标记模块将前一天的全量数据中的删除数据的结束时间标记为当前时刻。
本实施例中,判断模块还用于判断第二数据中是否有更新数据,更新数据在前一天的全量数据与当天的全量数据中的数据内容不相同;若判断为是,则调用时间标记模块。时间标记模块将前一天的全量数据中的更新数据的结束时间标记为当前时刻;将当天的全量数据中的更新数据的起始时间标记为当前时刻,结束时间标记为大于当前时刻。
从而,本实施例的存储***不仅大大节约了存储空间,且用户可查询到任意一天的历史数据,不会影响用户体验。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (8)
1.一种拉链表的存储方法,其特征在于,所述存储方法包括以下步骤:
S1、从用户端获取当天的全量数据,并从拉链表中获取前一天的全量数据;所述拉链表包括结束时间字段;
S2、判断当天的全量数据与前一天的全量数据是否存在相同的第一数据;若判断为是,执行步骤S3;
S3、将全量数据中的第二数据存储于拉链表中的对应的分区中,并标记所述第二数据的结束时间为大于当前时刻;所述第二数据为当天的全量数据中除第一数据之外的数据。
2.如权利要求1所述的拉链表的存储方法,其特征在于,所述拉链表还包括起始时间字段;
步骤S2还包括:
判断所述第二数据中是否有新增数据;
若判断为是,步骤S3还包括:
在将所述新增数据存储于拉链表中的对应的分区中时,将所述新增数据的起始时间标记为当前时刻。
3.如权利要求1所述的拉链表的存储方法,其特征在于,步骤S2还包括:
判断所述第二数据中是否有删除数据;所述删除数据记录在前一天的全量数据中,未记录在当天的全量数据中;
若判断为是,步骤S3还包括:
将前一天的全量数据中的删除数据的结束时间标记为当前时刻。
4.如权利要求1所述的拉链表的存储方法,其特征在于,步骤S2还包括:
判断所述第二数据中是否有更新数据;所述更新数据在前一天的全量数据与当天的全量数据中的数据内容不相同;
若判断为是,步骤S3还包括:
将前一天的全量数据中的更新数据的结束时间标记为当前时刻;并将当天的全量数据中的更新数据的起始时间标记为当前时刻,结束时间标记为大于当前时刻。
5.一种拉链表的存储***,其特征在于,所述存储***包括:
数据获取模块,用于从用户端获取当天的全量数据,并从拉链表中获取前一天的全量数据;所述拉链表包括结束时间字段;
判断模块,用于判断当天的全量数据与前一天的全量数据是否存在相同的第一数据;若判断为是,调用存储模块和时间标记模块;
所述存储模块用于将全量数据中的第二数据存储于拉链表中的对应的分区中;
所述时间标记模块用于将第二数据的结束时间标记为大于当前时刻;
所述第二数据为当天的全量数据中除第一数据之外的数据。
6.如权利要求5所述的拉链表的存储***,其特征在于,所述拉链表还包括起始时间字段;
所述判断模块还用于判断所述第二数据中是否有新增数据;若判断为是,在存储模块将所述新增数据存储于拉链表中时,调用所述时间标记模块;
所述时间标记模块将所述新增数据的起始时间标记为当前时刻。
7.如权利要求5所述的拉链表的存储***,其特征在于,所述判断模块还用于判断所述第二数据中是否有删除数据,所述删除数据记录在前一天的全量数据中,未记录在当天的全量数据中;若判断为是,则调用所述时间标记模块;
所述时间标记模块将前一天的全量数据中的删除数据的结束时间标记为当前时刻。
8.如权利要求5所述的拉链表的存储***,其特征在于,所述判断模块还用于判断所述第二数据中是否有更新数据,所述更新数据在前一天的全量数据与当天的全量数据中的数据内容不相同;若判断为是,则调用所述时间标记模块;
所述时间标记模块将前一天的全量数据中的更新数据的结束时间标记为当前时刻,并将当天的全量数据中的更新数据的起始时间标记为当前时刻,结束时间标记为大于当前时刻。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710866192.8A CN107679136A (zh) | 2017-09-22 | 2017-09-22 | 拉链表的存储方法及存储*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710866192.8A CN107679136A (zh) | 2017-09-22 | 2017-09-22 | 拉链表的存储方法及存储*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107679136A true CN107679136A (zh) | 2018-02-09 |
Family
ID=61136587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710866192.8A Pending CN107679136A (zh) | 2017-09-22 | 2017-09-22 | 拉链表的存储方法及存储*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107679136A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110096509A (zh) * | 2019-05-16 | 2019-08-06 | 普元信息技术股份有限公司 | 大数据环境下实现历史数据拉链表存储建模处理的***及方法 |
CN112527833A (zh) * | 2020-12-04 | 2021-03-19 | 青岛海尔科技有限公司 | 用于拉链表的数据存储方法、设备及计算机可读存储介质 |
CN112699126A (zh) * | 2020-12-31 | 2021-04-23 | 五八有限公司 | 数据存储方法、装置、电子设备及存储介质 |
CN112735144A (zh) * | 2020-12-28 | 2021-04-30 | 浙江大华技术股份有限公司 | 套牌识别方法、装置、计算机设备和存储介质 |
CN112905805A (zh) * | 2021-03-05 | 2021-06-04 | 北京中经惠众科技有限公司 | 知识图谱构建方法及装置、计算机设备和存储介质 |
CN113342834A (zh) * | 2021-06-18 | 2021-09-03 | 青岛全掌柜科技有限公司 | 一种解决大数据***中历史数据变化的方法 |
CN113641676A (zh) * | 2021-08-20 | 2021-11-12 | 烽火通信科技股份有限公司 | 一种时序处理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678392A (zh) * | 2012-09-20 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 一种数据增量合并的方法及其装置 |
CN103902701A (zh) * | 2014-03-31 | 2014-07-02 | 北京车商汇软件有限公司 | 一种数据存储***和存储方法 |
CN105095484A (zh) * | 2015-08-17 | 2015-11-25 | 北京京东世纪贸易有限公司 | 一种数据拉链方法 |
US20150339329A1 (en) * | 2013-03-14 | 2015-11-26 | International Business Machines Corporation | Row-based data filtering at a database level |
-
2017
- 2017-09-22 CN CN201710866192.8A patent/CN107679136A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678392A (zh) * | 2012-09-20 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 一种数据增量合并的方法及其装置 |
US20150339329A1 (en) * | 2013-03-14 | 2015-11-26 | International Business Machines Corporation | Row-based data filtering at a database level |
CN103902701A (zh) * | 2014-03-31 | 2014-07-02 | 北京车商汇软件有限公司 | 一种数据存储***和存储方法 |
CN105095484A (zh) * | 2015-08-17 | 2015-11-25 | 北京京东世纪贸易有限公司 | 一种数据拉链方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110096509A (zh) * | 2019-05-16 | 2019-08-06 | 普元信息技术股份有限公司 | 大数据环境下实现历史数据拉链表存储建模处理的***及方法 |
CN112527833A (zh) * | 2020-12-04 | 2021-03-19 | 青岛海尔科技有限公司 | 用于拉链表的数据存储方法、设备及计算机可读存储介质 |
CN112735144A (zh) * | 2020-12-28 | 2021-04-30 | 浙江大华技术股份有限公司 | 套牌识别方法、装置、计算机设备和存储介质 |
CN112699126A (zh) * | 2020-12-31 | 2021-04-23 | 五八有限公司 | 数据存储方法、装置、电子设备及存储介质 |
CN112905805A (zh) * | 2021-03-05 | 2021-06-04 | 北京中经惠众科技有限公司 | 知识图谱构建方法及装置、计算机设备和存储介质 |
CN112905805B (zh) * | 2021-03-05 | 2023-09-15 | 北京中经惠众科技有限公司 | 知识图谱构建方法及装置、计算机设备和存储介质 |
CN113342834A (zh) * | 2021-06-18 | 2021-09-03 | 青岛全掌柜科技有限公司 | 一种解决大数据***中历史数据变化的方法 |
CN113641676A (zh) * | 2021-08-20 | 2021-11-12 | 烽火通信科技股份有限公司 | 一种时序处理方法及装置 |
CN113641676B (zh) * | 2021-08-20 | 2024-06-21 | 烽火通信科技股份有限公司 | 一种时序处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107679136A (zh) | 拉链表的存储方法及存储*** | |
CN103544207B (zh) | 一种图片加载显示的方法与*** | |
US20020186239A1 (en) | Viewer system and method allocating a degree of importance to a network address based upon frequency of display | |
EP2924594A1 (en) | Data encoding and corresponding data structure in a column-store database | |
CN104391725A (zh) | 页面展示方法和页面展示装置 | |
CN113568995A (zh) | 基于检索条件的动态瓦片地图制作方法及瓦片地图*** | |
CN109242417A (zh) | 保单批量修改方法、装置、计算机设备和存储介质 | |
EP2988226A1 (en) | Electronic document data updating method and device | |
CN108563658A (zh) | 一种多平台间数据同步更新的方法和装置 | |
CN106557499A (zh) | HBase二级索引创建方法和装置 | |
CN109033523B (zh) | 一种基于三维cad模型的装配工艺规程生成***与方法 | |
CN109388644B (zh) | 一种数据更新方法及装置 | |
CN106503169A (zh) | 图片处理方法和装置 | |
US8787979B2 (en) | Method and terminal for displaying cell phone menu with personalized setting | |
CN108108166B (zh) | 一种多平台间贴图处理方法及*** | |
CN112418875B (zh) | 跨平台税务智能客服语料迁移方法及装置 | |
US20160299880A1 (en) | Method and device for updating web page | |
CN103530111A (zh) | 一种流程定义的获取方法及装置 | |
CN112559647A (zh) | 一种地图图层数据的更新方法和装置 | |
CN109756780B (zh) | 一种视频处理的方法及装置 | |
CN107643959A (zh) | 镜像文件处理方法和装置 | |
CN108205559A (zh) | 一种数据管理方法及其设备 | |
CN108196921B (zh) | 单据开发方法、装置、计算机设备和存储介质 | |
JPH0844846A (ja) | 地図利用システム | |
CN110413587A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180209 |
|
RJ01 | Rejection of invention patent application after publication |