暂无图片
请教关于建表与分区的问题
我来答
分享
暂无图片 匿名用户
请教关于建表与分区的问题

【使用环境】32 vCPU 64GB

【使用版本】4.2.0_CE_BP1

【问题描述】

请教下各位老师,考虑如果是这样的一个场景:
1 亿的设备数,每个设备每天 96 条记录,存 1 年的数据,共 35040 亿条
使用场景为查询设备时间范围的数据,以及计算设备和时间范围的数据

参考 MySQL 建表语句:
DROP TABLE IF EXISTS dev_data;
CREATE TABLE dev_data (
data_time BIGINT,
dev_id VARCHAR(32),
data1 DECIMAL(25, 3),
data2 DECIMAL(25, 3),
data3 DECIMAL(25, 3),
data4 DECIMAL(25, 3),
data5 DECIMAL(25, 3),
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (data_timedev_id),
INDEX idx_dev_id (dev_id)
);
image

1、是否需要分表?单表的数据量多少合适?
2、如何分区和子分区?单分区的数据量多少合适?
3、对应的 OceanBase 场景下的建表语句是什么?
4、总计需要大概多少节点和存储空间?【使用环境】32 vCPU 64GB

【使用版本】4.2.0_CE_BP1

【问题描述】

请教下各位老师,考虑如果是这样的一个场景:
1 亿的设备数,每个设备每天 96 条记录,存 1 年的数据,共 35040 亿条
使用场景为查询设备时间范围的数据,以及计算设备和时间范围的数据

参考 MySQL 建表语句:
DROP TABLE IF EXISTS dev_data;
CREATE TABLE dev_data (
data_time BIGINT,
dev_id VARCHAR(32),
data1 DECIMAL(25, 3),
data2 DECIMAL(25, 3),
data3 DECIMAL(25, 3),
data4 DECIMAL(25, 3),
data5 DECIMAL(25, 3),
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (data_timedev_id),
INDEX idx_dev_id (dev_id)
);
image

1、是否需要分表?单表的数据量多少合适?
2、如何分区和子分区?单分区的数据量多少合适?
3、对应的 OceanBase 场景下的建表语句是什么?
4、总计需要大概多少节点和存储空间?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
O
OceanBase社区传送门

1)此类大表需要做分区表
2)数据量比较大,建议考虑做成二级分区,分区选取需要根据业务字段来,可以考虑按时间年、月、日分区,我们推荐单个分区100G数据量,不超过200G。
3)创建分区可以参考https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000034921
4)存储空间主要看副本数和磁盘大小的规划,看你字段比较简单,压缩比会高一点,具体还是需要和其他业务数据结合测试下,ob主推 3个zone 和5个zone场景,后期做纵向扩容满足存储和性能问题。
建议先实测下。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
社区版4.2.1版本MySQL租户模式下information_schema.tables中AUTO_INCREMENT的值为null,还有没有其它方式可以获取这个值的?
回答 1
为了获取所有表的自增主键的话可以查selectfromoceanbase.CDBOBAUTOINCREMENT视图。列名和表名需要和allcolumn表查CDBOBTABLELOCATIONS关联查询
手工部署dbagent如何通过验证
回答 1
不要把所有的都写到一个配置文件https://github.com/oceanbase/obagent/blob/1.2.xrelease/docs/installanddeploy/deployob
备份任务无法取消,显示STATUS: CANCELING
回答 1
应该是某个节点卡住了,快速解决,有条件可以重启下集群,再看下是否能取消掉。或者查看下rootserver、observer日志看下是卡在哪个节点。重启对应节点。
Oceanbase怎样可以实现Mysql + Keepalived 互为主从的高可用
回答 1
可以使用物理备库的方式,目前4x版本可以创建主备租户实时备份https://www.oceanbase.com/docs/commonoceanbasedatabasecn10000000000334
如何把手工部署的observer集群纳入到obd管理中去
回答 1
建立把手动部署agent销毁了重新用obd部署allinoneel8包:el8x86: https://obbusinessprivate.osscnshanghai.aliyuncs.co
obd导入oceanbase镜像失败
回答 1
目前没有命令,只能手动删除/.obd/repository/:这个解压组件后存放的位置,可以随便删/.obd/mirror/local/:镜像导入后存放的位置,删了后就没有包了,需要重新obdmirr
DM达梦如何转OceanBase数据库?
回答 1
两种不同的数据库怎么直接转换,你说的应该是数据迁移吧
obclient < sql.file执行sql文件时,遇到错误并不会终止执行
回答 1
–abortsourceonerrorAbort‘sourcefilename’operationsincaseoferrors默认是false的,加上改成true,就中止源文件了
OMS迁移数据问题
回答 1
不是的,后续的数据校验需要依赖主键或者唯一键,如果没有的话,那么没有办法做数据校验,不能保证一致性。
关闭oblogproxy程序,但是oblogreader不退出,还在运行,如何关闭oblogreader
回答 1
可以在服务端手动kill掉
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~