CN106951490B - 一种实时更正数据的存储与缓存读取方法 - Google Patents
一种实时更正数据的存储与缓存读取方法 Download PDFInfo
- Publication number
- CN106951490B CN106951490B CN201710149222.3A CN201710149222A CN106951490B CN 106951490 B CN106951490 B CN 106951490B CN 201710149222 A CN201710149222 A CN 201710149222A CN 106951490 B CN106951490 B CN 106951490B
- Authority
- CN
- China
- Prior art keywords
- data
- time
- cache
- reading
- storage table
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000013500 data storage Methods 0.000 claims abstract description 47
- 230000003139 buffering effect Effects 0.000 claims description 18
- 238000013523 data management Methods 0.000 abstract description 2
- 230000000007 visual effect Effects 0.000 abstract 1
- 230000008901 benefit Effects 0.000 description 2
- 238000004886 process control Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Images
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/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/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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
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)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种大规模实时更正数据的存储与缓存读取方法,属于计算机数据管理技术领域。本发明面向工业物联网、气象信息网中出现的一类重要的实时更正数据,数据读取以按时间维度的批量读取为主,数据量大且需要进行实时更正。本发明方法实现数据存储、数据直接读取与数据缓存读取,既能快速返回数据,又支持更正数据的实时更新,并通过缓存提升用户获取速度的时间。本发明克服了目前的分布式系统中广泛存在的大规模实时更正数据存储和读取性能无法达到要求的难题,方法直观有效、便于使用。
Description
技术领域
本发明涉及一种实时更正数据的存储与缓存读取方法,属于计算机数据管理技术领域。
背景技术
实时数据是指从过程控制系统中实时采集的数据、向过程控制系统实时发送的数据以及对实时数据进行各种实时计算直接产生的中间数据。实时数据可来自传感器(如GPS等)、摄像头、新闻消息、卫星、雷达、股票行情、服务器日志、传统缓存或者分布式系统(如Hadoop、Spark)中的数据。实时数据具有时效性,随着时间的推移,实时数据值就会逐渐失去价值。众多行业及工作都能够从实时数据的处理方案中获得助益,例如天气预报通过实时气象数据提高预报准确率、工业设备通过实时监控数据提高健康状况等等。实时数据能够通过管理数据实时变化迅速建立起形势判断,最终将其转化为能够提升企业业绩的决策工具。
在现实生活中,对于实时数据的读取,典型的需求为按照时间维度读取。例如:中国气象局观测到全球气温的实时情况;春运期间客流群体的流向情况。对于此类需求,为加快读取速度,在存储的时候就将数据按照时间维度存储较为合适,存取的粒度较粗,可以是该时间的全量数据或部分数据。但由于观测设备或网络传输的原因,经常会发现小部分数据是错误的,需要进行及时更正。例如某些车辆的传感器出现误差,气温观测仪出现故障。因此,会有部分数据需要进行更正(通常情况下此类数据只是全量数据的一小部分),且数据更正的时间并不相同、更正请求随时可能出现。因此,存储实时更正数据变得相当困难,既要能够支持按时间维度的全量读取,又要满足小量数据的更正。
此外,由于实时数据的全量读取数据量相当大,为了加快读取的时间,需要能够设计一种缓存读取的方式,根据用户的读取习惯,当读取当前数据的时候,提前缓存下一份数据,以提供给用户更好的存取速度和体验。
发明内容
本发明的目的是提出一种实时更正数据的存储与缓存读取方法,解决目前分布式系统中,实时更正数据的存储和读取性能无法达到多数工业级应用要求的问题。
本发明提出的实时更正数据的存储与缓存读取方法,包括以下步骤:
(1)数据存储,具体步骤如下:
(1-1)建立数据存储表T1和更新数据存储表T2,所述的数据存储表T1用于存储设定时刻下的数据,数据存储表T1以该设定时刻为主键或索引项,数据存储表T1中相邻数据的时刻间隔为Tt,存储数据的有效时间为Tm,所述的更新数据存储表T2用于存储对数据存储表T1中存储的数据进行更新的信息,以数据的更新时刻tu为主键或索引项;
(1-2)按照时刻间隔Tt,获取当前时刻tc的待处理实时数据,将当前时刻tc获取的待处理实时数据存成一个文件,以文件形式存放在T1表中,同时删除数据存储表T1和更新数据存储表T2中数据获取时刻小于tc-Tm的数据;
(1-3)获取更新的数据,若数据的更新时刻tu大于tc-Tm,则把新数据存储在更新数据存储表T2中;
(2)数据读取,具体步骤如下:
数据直接读取:
(2-1)从数据存储表T1中读取设定时刻ta的数据D1;
(2-2)从更新数据存储表T2读取设定时刻ta的更新数据D2;
(2-3)用更新数据D2中的更新数据替代数据D1中相对应的数据;
(2-4)将读取数据D1返回用户;
或数据缓存读取:
(2-5)建立一个预读取队列Qc和一个缓存C1,其中预读取队列Qc存储缓存时刻,缓存C1用于存储该缓存时刻的数据;
(2-6)从缓存C1中读取设定时刻ta的数据,判断缓存C1中是否存在设定时刻ta的数据,若设定时刻ta的数据在缓存C1中,则读取缓存C1中设定时刻ta的数据,返回给用户,进行步骤(2-11),若设定时刻ta的数据不在缓存C1中,则进行步骤(2-7);
(2-7)从数据存储表T1中读取设定时刻ta的数据D1;
(2-8)从更新数据存储表T2读取设定时刻ta的更新数据D2;
(2-9)用更新数据D2中的更新数据替代数据D1中相对应的数据,记更新后的数据为D1;
(2-10)将上述步骤(2-9)中更新后的数据D1返回给用户,并将数据D1存入缓存C1中,进行步骤(2-11);
(2-11)将设定时刻ta的前、后在时段(ta-Tn)~(ta+Tn)内的所有时刻放入预读取队列Qc,其中Tn为一个设定时段,取值为上述步骤(1-1)中时刻间隔Tt的2~5倍;
(2-12)对预读取队列Qc进行判断,若预读取队列Qc为空,则进行步骤(2-18),若预读取队列Qc不为空,则进行步骤(2-13);
(2-13)对预读取队列Qc中的每一个缓存时刻tg进行判断,若与缓存时刻tg相对应的数据不在缓存C1中,且缓存时刻tg在时段(ta-Tn)~(ta+Tn)中,则进行步骤(2-14),若与缓存时刻tg相对应的数据不在缓存C1中,且缓存时刻tg不在时段(ta-Tn)~(ta+Tn),或与缓存时刻tg相对应的数据在缓存C1中,且缓存时刻tg在时段(ta-Tn)~(ta+Tn),或与缓存时刻tg相对应的数据在缓存C1中,且缓存时刻tg不在时段(ta-Tn)~(ta+Tn),则进行步骤(2-18);
(2-14)从数据存储表T1中读取设定时刻tg的数据D1,
(2-15)从更新数据存储表T2读取设定时刻tg的更新数据D2;
(2-16)用更新数据D2中的更新数据替代数据D1中相对应的数据;
(2-17)将更新后的设定时刻tg的数据D1存入缓存C1中;
(2-18)遍历缓存C1中的所有数据,对与该数据相对应的时刻进行判断,若该数据时刻不在(ta-Tn)~(ta+Tn)中,则在缓存C1中删除该数据,若该数据时刻在(ta-Tn)~(ta+Tn)中,则在缓存C1中保留该数据。
本发明提出的实时更正数据的存储与缓存读取方法,其优点是:
1、本发明方法可以针对实时更正数据提出一种存储与缓存读取方法,解决了有更正需求的实时数据存储难的问题,既能支持快速的读取,又能保证实时更新的数据立即生效。
2、本发明通过缓存读取的方式,大幅提高了读取的速度,给用户更好的读取体验,缓存数据的大小可由用户根据实际情况进行指定,配置灵活方便。
3、本发明既可运行在传统关系型缓存,又可以运行在NoSQL等分布式缓存上,使其具备应对大数据中实时更正数据的存储与处理能力。
4、本发明方法具有很强的适应性,能够适用于工业物联网数据、气象信息网数据等多种常见的实时更正数据。
附图说明
图1是本发明方法中涉及的数据缓存读取流程框图。
具体实施方式
本发明提出的实时更正数据的存储与缓存读取方法,包括以下步骤:
(1)数据存储,具体步骤如下:
(1-1)建立数据存储表T1和更新数据存储表T2,所述的数据存储表T1用于存储设定时刻下的数据,数据存储表T1以该设定时刻为主键或索引项,数据存储表T1中相邻数据的时刻间隔为Tt,存储数据的有效时间为Tm,所述的更新数据存储表T2用于存储对数据存储表T1中存储的数据进行更新的信息,以数据的更新时刻tu为主键或索引项;
(1-2)按照时刻间隔Tt,获取当前时刻tc的待处理实时数据,将当前时刻tc获取的待处理实时数据存成一个文件,以文件形式存放在T1表中,同时删除数据存储表T1和更新数据存储表T2中数据获取时刻小于tc-Tm的数据;
(1-3)获取更新的数据,若数据的更新时刻tu大于tc-Tm,则把新数据存储在更新数据存储表T2中;
(2)数据读取,具体步骤如下:
数据直接读取:
(2-1)从数据存储表T1中读取设定时刻ta的数据D1;
(2-2)从更新数据存储表T2读取设定时刻ta的更新数据D2;
(2-3)用更新数据D2中的更新数据替代数据D1中相对应的数据;
(2-4)将读取数据D1返回用户;
或数据缓存读取:
(2-5)建立一个预读取队列Qc和一个缓存C1,其中预读取队列Qc存储缓存时刻,缓存C1用于存储该缓存时刻的数据;
(2-6)从缓存C1中读取设定时刻ta的数据,判断缓存C1中是否存在设定时刻ta的数据,若设定时刻ta的数据在缓存C1中,则读取缓存C1中设定时刻ta的数据,返回给用户,进行步骤(2-11),若设定时刻ta的数据不在缓存C1中,则进行步骤(2-7);
(2-7)从数据存储表T1中读取设定时刻ta的数据D1;
(2-8)从更新数据存储表T2读取设定时刻ta的更新数据D2;
(2-9)用更新数据D2中的更新数据替代数据D1中相对应的数据,记更新后的数据为D1;
(2-10)将上述步骤(2-9)中更新后的数据D1返回给用户,并将数据D1存入缓存C1中,进行步骤(2-11);
(2-11)将设定时刻ta的前、后在时段(ta-Tn)~(ta+Tn)内的所有时刻放入预读取队列Qc,其中Tn为一个设定时段,取值为上述步骤(1-1)中时刻间隔Tt的2~5倍;
(2-12)对预读取队列Qc进行判断,若预读取队列Qc为空,则进行步骤(2-18),若预读取队列Qc不为空,则进行步骤(2-13);
(2-13)对预读取队列Qc中的每一个缓存时刻tg进行判断,若与缓存时刻tg相对应的数据不在缓存C1中,且缓存时刻tg在时段(ta-Tn)~(ta+Tn)中,则进行步骤(2-14),若与缓存时刻tg相对应的数据不在缓存C1中,且缓存时刻tg不在时段(ta-Tn)~(ta+Tn),或与缓存时刻tg相对应的数据在缓存C1中,且缓存时刻tg在时段(ta-Tn)~(ta+Tn),或与缓存时刻tg相对应的数据在缓存C1中,且缓存时刻tg不在时段(ta-Tn)~(ta+Tn),则进行步骤(2-18);
(2-14)从数据存储表T1中读取设定时刻tg的数据D1,
(2-15)从更新数据存储表T2读取设定时刻tg的更新数据D2;
(2-16)用更新数据D2中的更新数据替代数据D1中相对应的数据;
(2-17)将更新后的设定时刻tg的数据D1存入缓存C1中;
(2-18)遍历缓存C1中的所有数据,对与该数据相对应的时刻进行判断,若该数据时刻不在(ta-Tn)~(ta+Tn)中,则在缓存C1中删除该数据,若该数据时刻在(ta-Tn)~(ta+Tn)中,则在缓存C1中保留该数据。
Claims (1)
1.一种实时更正数据的存储与缓存读取方法,其特征在于该方法包括以下步骤:
(1)数据存储,具体步骤如下:
(1-1)建立数据存储表T1和更新数据存储表T2,所述的数据存储表T1用于存储设定时刻下的数据,数据存储表T1以该设定时刻为主键或索引项,数据存储表T1中相邻数据的时刻间隔为Tt,存储数据的有效时间为Tm,所述的更新数据存储表T2用于存储对数据存储表T1中存储的数据进行更新的信息,以数据的更新时刻tu为主键或索引项;
(1-2)按照时刻间隔Tt,获取当前时刻tc的待处理实时数据,将当前时刻tc获取的待处理实时数据存成一个文件,以文件形式存放在T1表中,同时删除数据存储表T1和更新数据存储表T2中数据获取时刻小于tc-Tm的数据;
(1-3)获取更新的数据,若数据的更新时刻tu大于tc-Tm,则把新数据存储在更新数据存储表T2中;
(2)数据读取,具体步骤如下:
数据直接读取:
(2-1)从数据存储表T1中读取设定时刻ta的数据D1;
(2-2)从更新数据存储表T2读取设定时刻ta的更新数据D2;
(2-3)用更新数据D2中的更新数据替代数据D1中相对应的数据;
(2-4)将读取数据D1返回用户;
或数据缓存读取:
(2-5)建立一个预读取队列Qc和一个缓存C1,其中预读取队列Qc存储缓存时刻,缓存C1用于存储该缓存时刻的数据;
(2-6)从缓存C1中读取设定时刻ta的数据,判断缓存C1中是否存在设定时刻ta的数据,若设定时刻ta的数据在缓存C1中,则读取缓存C1中设定时刻ta的数据,返回给用户,进行步骤(2-11),若设定时刻ta的数据不在缓存C1中,则进行步骤(2-7);
(2-7)从数据存储表T1中读取设定时刻ta的数据D1;
(2-8)从更新数据存储表T2读取设定时刻ta的更新数据D2;
(2-9)用更新数据D2中的更新数据替代数据D1中相对应的数据,记更新后的数据为D1;
(2-10)将上述步骤(2-9)中更新后的数据D1返回给用户,并将数据D1存入缓存C1中,进行步骤(2-11);
(2-11)将设定时刻ta的前、后在时段(ta-Tn)~(ta+Tn)内的所有时刻放入预读取队列Qc,其中Tn为一个设定时段,取值为上述步骤(1-1)中时刻间隔Tt的2~5倍;
(2-12)对预读取队列Qc进行判断,若预读取队列Qc为空,则进行步骤(2-18),若预读取队列Qc不为空,则进行步骤(2-13);
(2-13)对预读取队列Qc中的每一个缓存时刻tg进行判断,若与缓存时刻tg相对应的数据不在缓存C1中,且缓存时刻tg在时段(ta-Tn)~(ta+Tn)中,则进行步骤(2-14),若与缓存时刻tg相对应的数据不在缓存C1中,且缓存时刻tg不在时段(ta-Tn)~(ta+Tn),或与缓存时刻tg相对应的数据在缓存C1中,且缓存时刻tg在时段(ta-Tn)~(ta+Tn),或与缓存时刻tg相对应的数据在缓存C1中,且缓存时刻tg不在时段(ta-Tn)~(ta+Tn),则进行步骤(2-18);
(2-14)从数据存储表T1中读取设定时刻tg的数据D1,
(2-15)从更新数据存储表T2读取设定时刻tg的更新数据D2;
(2-16)用更新数据D2中的更新数据替代数据D1中相对应的数据;
(2-17)将更新后的设定时刻tg的数据D1存入缓存C1中;
(2-18)遍历缓存C1中的所有数据,对与该数据相对应的时刻进行判断,若该数据时刻不在(ta-Tn)~(ta+Tn)中,则在缓存C1中删除该数据,若该数据时刻在(ta-Tn)~(ta+Tn)中,则在缓存C1中保留该数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710149222.3A CN106951490B (zh) | 2017-03-14 | 2017-03-14 | 一种实时更正数据的存储与缓存读取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710149222.3A CN106951490B (zh) | 2017-03-14 | 2017-03-14 | 一种实时更正数据的存储与缓存读取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106951490A CN106951490A (zh) | 2017-07-14 |
CN106951490B true CN106951490B (zh) | 2020-09-18 |
Family
ID=59467917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710149222.3A Active CN106951490B (zh) | 2017-03-14 | 2017-03-14 | 一种实时更正数据的存储与缓存读取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106951490B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255909B (zh) * | 2017-07-27 | 2020-08-04 | 平安科技(深圳)有限公司 | 基于Oracle数据库的数据表备份方法及服务器 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100343846C (zh) * | 2003-09-28 | 2007-10-17 | 华为技术有限公司 | 一种数据间差异性的分析比较方法 |
US20090049184A1 (en) * | 2007-08-15 | 2009-02-19 | International Business Machines Corporation | System and method of streaming data over a distributed infrastructure |
CN101141622B (zh) * | 2007-10-23 | 2010-05-19 | 张伟华 | 网络视频连接信息的交互式编辑及扩展表现方法 |
CN105955983A (zh) * | 2016-04-18 | 2016-09-21 | 国电南瑞科技股份有限公司 | 一种用于超大规模电网调控系统的历史采样数据缓存方法 |
CN106055655A (zh) * | 2016-05-31 | 2016-10-26 | 广州艾媒数聚信息咨询股份有限公司 | 一种实时数据的存储方法及装置、访问方法及系统 |
CN106407360B (zh) * | 2016-09-07 | 2020-07-24 | 广州视源电子科技股份有限公司 | 一种数据的处理方法及装置 |
-
2017
- 2017-03-14 CN CN201710149222.3A patent/CN106951490B/zh active Active
Non-Patent Citations (2)
Title |
---|
《PISA: an Index for Aggregating Big Time Series Data》;Xiangdong Huang等;《CIKM"16: PROCEEDINGS OF THE 2016 ACM CONFERENCE ON INFORMATION AND KNOWLEDGE MANAGEMENT》;20161031;第979-988页 * |
《海量气象数据实时解析与存储系统的设计与实现》;王若曈等;《计算机工程与科学》;20151130;第37卷(第11期);第2046-2054页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106951490A (zh) | 2017-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9767138B2 (en) | In-database sharded queue for a shared-disk database | |
US10216816B2 (en) | Shipping of data though ETL stages | |
EP2898430B1 (en) | Mail indexing and searching using hierarchical caches | |
EP3316150B1 (en) | Method and apparatus for file compaction in key-value storage system | |
US20140372486A1 (en) | In-Database Sharded Queue | |
US20140372702A1 (en) | Handling memory pressure in an in-database sharded queue | |
CN111064808B (zh) | 一种基于分布式存储系统的负载均衡方法及装置 | |
US20110060724A1 (en) | Distributed database recovery | |
DE112012001808B4 (de) | Cache-Management von Spuren in einem ersten Cachespeicher und einem zweiten Cachespeicher für einen Speicher | |
CN104978324B (zh) | 一种数据处理方法和装置 | |
CN105635196A (zh) | 一种获取文件数据的方法、系统和应用服务器 | |
US20140164700A1 (en) | System and method of detecting cache inconsistencies | |
US10169411B2 (en) | Forecasting query access plan obsolescence | |
CN106681995B (zh) | 数据缓存方法、数据查询方法及装置 | |
CN110647542B (zh) | 一种数据获取方法和装置 | |
CN106951490B (zh) | 一种实时更正数据的存储与缓存读取方法 | |
US20180341672A1 (en) | Distributed data management program, distributed data management method, and distributed data management apparatus | |
CN106161637A (zh) | 一种云备份方法及装置 | |
CN104899249A (zh) | 一种海量数据下可靠索引更新系统及方法 | |
US10747738B2 (en) | Efficient database management system and method for prioritizing analytical calculations on datasets | |
CN109873858A (zh) | 一种业务数据分布式监控方法和分布式监控集群 | |
CN105573889A (zh) | 虚拟机监控数据的存取方法及装置 | |
CN107092530B (zh) | 一种基于分布式内存的信令数据处理方法及系统 | |
CN104731716A (zh) | 一种数据存储方法 | |
CN110554914B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |