`

实时数据库历史数据容量的计算方法

 
阅读更多

经常有客户问,使用你们的实时数据库,该如何计算存贮一年历史数据所需要的磁盘空间?

 

让我们以一个具体例子进行说明吧:一个项目中,总共有1万个模拟量测点,这些测点平均每秒变化一次,每次变化均要保存,存贮一年历史数据,需要多少磁盘空间?

 

为了很好地说明这个问题,我们先来分析一下,如果采用关系数据库来保存这些历史数据,需要多少磁盘空间。假定关系数据库采用一个表来保存历史数据,表的格式定义如下:

 

字段名

类型

长度

备注

TagID

整型

4字节

测点编号,1万个测点只需2字节整型,但考虑到最大保存测点可能超过65536,因此,定义为4字节整型

Second

整型

4字节

MillSecond

短整型

2字节

毫秒

Quality

字节

1字节

质量戳

Value

双精度数

8字节

 

关系数据库中,计算历史数据应考虑如下几个方面的因素:

l  管理文件

l  表格式描述头

l  数据

l  索引

其中,管理文件及表格式描述头可以忽略不计,只需要考虑数据和索引即可。另外,在此也不考虑日志文件的大小。

 

假定关系数据库中不对数据进行任何压缩,采用定时保存,则数据容量的计算公式如下所示:

 

数据容量=单条历史数据的尺寸*秒数*分钟数*小时数*天数*测点数

 

所以,数据容量=(4+4+2+1+8)*60*60*24*365*10000=5580G

 

假定对该表中的TagIDSecondMillSecond建立唯一索引,同时假定关系数据库的索引结构为B+树索引,一般的B+树的利用效率在40%左右,因此,索引大小的计算公式如下所示:

 

索引容量=单条索引的尺寸*秒数*分钟数*小时数*天数*测点数/0.4

 

所以,索引容量=(4+4+2)*60*60*24*365*10000/0.4=7342G

 

因此,用关系数据库保存10000个每秒钟变化一次的双精度数,同时建立一个索引,需要磁盘空间为:12922G

 

下面,我们再来计算一下实时数据库的历史数据容量的计算方法。

 

首先要说明,不同的实时数据库对历史数据采用了不同的存贮方法,因此,计算方法也各不相同,在此,仅以我们自己的实时数据库为例,进行计算。

 

首先需要介绍一下我们的实时数据库的特点:

l  历史数据按时间段分为多个文件保存,每个文件保存一段时间内的历史数据,保存一年的历史数据大概需要60个文件;

l  每段时间内的数据和索引保存在同一个文件内;

l  测点的ID与其它数据在文件内分开保存。

 

针对我们的实时数据库,计算历史数据应考虑如下几个方面的因素:

l  管理文件

l  文件头

l  数据

l  索引

 

其中,管理文件的大小大概为100K左右,可以忽略。

 

文件头大小=单个文件头大小*所有历史数据文件头大小=512K*60=0.03G,也可以忽略

 

在完全不压缩的情况下,数据容量的计算公式为:

 

不压缩数据容量=单条历史数据的尺寸*秒数*分钟数*小时数*天数*测点数

 

其中,单条历史数据的尺寸已经过紧密化处理,只占14字节,所以,数据容量=14*60*60*24*365*10000=4111G

 

我们的实时数据库采用了特殊的索引机制,不需要对每条数据进行索引,平均200条数据才需要记录一次索引,在完全不压缩的情况下,索引容量的计算方法为:

 

不压缩索引容量=单条索引的尺寸*秒数*分钟数*小时数*天数*测点数/200

 

所以,索引容量=10*60*60*24*365*10000/200=15G

 

最后,再考虑压缩率。采用不同的压缩算法会有不同的压缩比,另外,还与压缩率有关,这个没有统一的计算公式。但是,在工程现场,一般而言,采用哈佛曼算法的压缩比为15:1左右,采用变化压缩算法的压缩比为20:1左右,采用旋转门算法的压缩比为30:1左右。如果再加上一些特殊的技术(如二次压缩技术,质量戳与数据值分开保存等),压缩比可以达到40:1左右。我们就按40:1进行计算

 

压缩后总容量=(不压缩数据容量+不压缩索引容量)/压缩比

 

所以,以上例子中,实时数据库历史数据总容量=4111+15/40=103G

 

注意,以上计算只考虑了双精度数测点,如果系统中还有开关量、字符串、单精度数,其中,开关量的变化可能非常缓慢,这些没有准确的计算公式,可以近似地处理为,将以上结果再除以4

 

最后,给出一个在我们的实时数据库中,大致计算历史数据容量的公式:

 

历史数据容量=年数*万点数*25/平均变化一次的秒数

分享到:
评论

相关推荐

    一种实时数据库的分布式存储方法.pdf

    分布式计算和存储技术的引入为实时数据库带来了新的发展机遇,使应用系统可以基于大容量实时历史数据之上的分析应用提供便捷、稳定的数据支撑,从而实现了数据的高效利用和实时处理。这种技术的演进对实时数据库领域...

    实时数据库功能介绍专题培训课件.ppt

    1. 分布式的实时数据采集、存储和管理,能够处理大量的实时数据点,并支持远程查询实时数据和历史数据。 2. 趋势分析和事故追忆,提供可视化工具来分析数据并重现事故情况。 3. 流程组态和动态报表生成,采用面向...

    数据库备份还原源代码

    本文将深入探讨“数据库备份还原”的概念、重要性、常见方法以及源代码实现。 首先,数据库备份是保护数据免受意外丢失或损坏的关键步骤。这可能包括硬件故障、软件错误、人为误操作、病毒攻击或者自然灾害等不可...

    边缘计算数据库优化.pptx

    - **自学习机制**:引入自学习机制,根据历史数据和实时监控信息自动优化缓存参数,进一步提升缓存效率。 以上是从边缘计算数据库优化的角度出发,总结了关于数据库架构优化、数据存储策略选择以及缓存机制设计的...

    苏宁的数据库自动化运维实践_苏宁易购.pdf

    1. 离线计算:进行历史数据分析,包括多维度数据挖掘、故障分析、生成时间轴、知识库生成、报表展示、问题回溯和热点分析,并且训练数据库健康风险模型和使用机器学习,规则自我优化。 2. 实时计算:实现秒级监控、...

    数据库技术发展报告.docx

    1.2. 数据库技术历史:数据库技术的历史可以追溯到上世纪60年代,从早期的层次型和网状型数据库,到后来的关系型数据库模型的兴起,再到现在的云数据库、大数据存储和实时分析技术的出现。每个阶段的技术进步都伴随...

    第1章-数据库技术概论.ppt

    内存数据库系统是一种实时系统和数据库系统的有机结合,基于全部数据都在内存中重新设计了体系结构。 数据库技术的应用领域非常广泛,包括航空、铁路、旅游订票系统、银行通存通兑系统、水陆空联运系统、跨国公司...

    Oracle数据库在煤矿企业中的应用方法.pdf

    在煤矿企业中,数据管理尤为重要,包括实时监测、安全生产信息记录和历史数据分析等,Oracle数据库提供了解决这些问题的有效方案。 1. **表空间的规划和使用**: - **表空间的概念**:Oracle数据库引入了表空间的...

    最新全国计算机等级考试三级数据库技术各章节要点总结资料.doc

    总结,全国计算机等级考试三级数据库技术旨在检验考生对计算机基础知识和数据库技术的全面理解,包括计算机历史、数据库理论、设计实践和安全管理等多个层面。备考过程中,考生需要扎实掌握每个章节的知识点,并通过...

    金融行业数据库技术实践银行数据库智能运维实践.pdf

    2. 实时计算引擎:利用分布式计算框架和缓存数据库实现实时数据处理,有效挖掘运维数据的价值。同时,运用人工智能技术进行数据挖掘,为智能运维提供强大的分析能力。 3. 智能算法库:集成多种AI算法库,如Sklearn...

    美团点评数据库智能运维探索与实践_美团点评.zip

    美团点评可能运用了数据分析和预测模型,结合历史数据增长趋势,预估未来数据库的存储和计算需求,从而提前做好硬件升级或云资源扩展的准备。 此外,美团点评还可能在数据库架构上进行了创新,比如引入分布式数据库...

    数据库服务器规划.doc

    - 收集历史数据,如磁盘读写速率、CPU利用率等,用于评估现有服务器的性能表现。 2. **业务需求分析**: - 与管理层沟通,明确业务目标、预期增长速度、预算限制等关键信息。 3. **技术需求分析**: - 明确技术...

    实时数据缓冲.pptx

    - **数据存储**:包括短期存储(如内存缓存)和长期存档(如数据库),以便后续分析或保留历史数据。 - **数据可视化**:利用仪表盘或流式可视化工具实时展示数据流,帮助用户监控和分析数据。 ### 缓冲区的动态...

    计算机软件-编程源码-ms sql 2000数据库的备份与恢复(例程下载).zip

    3. **日志备份**:针对事务日志进行的备份,记录了数据库中所有事务的历史。如果希望进行到某个时间点的恢复,日志备份是必不可少的。 数据库恢复则基于备份策略来还原数据。SQL Server 2000支持多种恢复模型,如...

    服务器性能计算方法.docx

    根据这些数据,计算得出数据库服务器的存储容量约为157GB。 最后,接口服务器的性能也需要考虑,这里涉及的参数有并发用户数、用户忙时集中系数、数据库事物操作数等,计算后得出相应的tpmC值和存储需求。 综上所...

    数据库试题 经典 数据库试题 经典

    **解析:** 首先计算所需芯片的总数来满足64KB的容量需求。64KB/4KB=16个芯片。接着考虑位宽的需求,由于目标是16位宽而现有芯片只有4位宽,所以每组需要4个芯片才能达到16位宽。因此,总共需要的芯片数为16*4=64个。...

    OPC技术在工业数据库中的监控设计与应用.pdf

    OPC基金会已经发布了多个OPC规范,包括数据存取规范、数据交换规范、历史数据存取规范、报警和事件规范、批处理规范、安全规范、XML数据存取规范等,这些规范促进了过程控制软硬件配置的标准化、分布性、开放性和...

    数据库服务器规划.pdf

    通过与技术人员交谈,可以获取服务器环境、网络拓扑、事务处理量、历史基线数据、增长率和存储需求等信息。同时,通过监控现有的数据库服务器,如记录磁盘读写速度、CPU利用率、网络利用率、内存使用情况和数据库...

    华为Oracle11i系统架构及容量规划方法.pptx

    在实施容量规划时,通常会使用一些工具和技术,比如性能监控工具来收集系统运行时的数据,然后通过历史数据分析出系统的使用模式和瓶颈。此外,也会进行压力测试,模拟高负载情况,以验证系统的稳定性和可扩展性。...

Global site tag (gtag.js) - Google Analytics