HybridDB for MySQL生命周期解密

某新能源技术公司需求

某新能源技术公司需求介绍:

电站:百万级别,电站是个虚拟的,是设备的和

采集器:百万级别,采集器下面可以连接n个设备,一般不超过100个设备

设备:百万级别,

普通用户:百万级别,下面可以有n个电站

分销商(1级,2级,3级):几千,与采集器绑定,只有是属于某个分销商下面的采集器的设备都可

数据:

设备:实时功率,当日电量,当月电量,当年电量,累计电量,设备状态(正常,报警,离线)

电站:实时功率---电站下面所有设备的15分钟内的最新的实时功率相加

当日电量,当月电量,当年电量,累计电量-----电站下面所有设备的当日,当月,当年,累计的累加

电站状态----- 正常(电站下面的没有报警的设备,且只有有一个正常)

报警(电站下面有一个设备报警)

离线(电站下面所有设备离线)

分销商:会计算分销商下所有电站的实时功率,当日电量,当月电量,当年电量,累计电量的各自的和

会计算分销商下电站(在线,报警,离线的各个个数)

采集器(在线,报警,离线的各个个数)

设备(在线,报警,离线的各个个数)

设备数据是5分钟一条。

需要在petadata数据库中保存3个月的数据,避免人工干预删除数据。 每5分钟汇聚前5分钟的数据供用户查询,5分钟汇聚的数据量有200w左右。

petadata概述

云数据库HybridDB for MySQL (原名PetaData)是同时支持海量数据在线事务(OLTP)和在线分析(OLAP)的HTAP(Hybrid Transaction/Analytical

Processing)关系型数据库。 HybridDB for MySQL采用一份数据存储来进行OLTP和OLAP处理,解决了以往需要把一份数据进行多次复

制来分别进行业务交易和数据分析的问题,极大的降低了数据存储的成本。 HybridDB for MySQL 免去了以往在线数据库(Operational Database)和离线数据仓

库(Data Warehouse)之间的海量数据加载过程,极大的缩短了数据分析的延迟,使得实时分析决策系统成为可能。 HybridDB for MySQL 最大程度的兼容MySQL

的语法及函数,并且增加了对部分Oracle函数的支持,从而降低了用户的开发、迁移和维护成本 。

云数据库选型

数据库需要oltp及olap的特性,及与mysql兼容性好,及生命周期的概念,这里比较好的选择就是HybridDB for MySQL

生命周期

petadata生命周期的设置与maxcompute有些不同,它是针对表中的字段进行设置的,如下是一个真实案例:

CREATE TABLE pv_inverter_history (

id bigint(20) NOT NULL AUTO_INCREMENT,

name varchar(4) DEFAULT NULL,

timest timestamp DEFAULT CURRENT_TIMESTAMP,

other int unique key,

content varchar(128),

PRIMARY KEY (id)

) DEFAULT CHARSET=utf8

DISTRIBUTE_KEY (name)

AUTO_EXPIRE_KEY(timest) AUTO_EXPIRE_INTERVAL 86400 AUTO_EXPIRE_COUNT 30;

示例里面86400 说明一个时间分区是1天,AUTO_EXPIRE_COUNT 说明保留多少个时间分区,示例里面是30天,

AUTO_EXPIRE_COUNT量不要太大,一般不要超过90,如果自动过期表过多,那么应该进一步减少;

修改的话,还不能通过ddl,因为可能涉及到时间分区长度的改变,可能导致数据要重新分布,

欢迎小伙伴来分享评论!!!!

发表评论

发表评论

*

沙发空缺中,还不快抢~