每天新增8640w数据,怎么存储比较好
客户端每10秒产生一条数据(包含客户端的唯一ID/时间/业务数据),每个客户端每天生成8640条数据。
共10000个客户端,每天新增8640w条数据
数据示例:
client_id | start_time | finish_time | video_id |
---|---|---|---|
1 | 2021-12-27 11:05:21 | 2021-12-27 11:05:31 | 11 |
2 | 2021-12-27 11:05:25 | 2021-12-27 11:05:35 | 11 |
2 | 2021-12-27 11:05:35 | 2021-12-27 11:05:45 | 12 |
后期查询需求
需要按客户端,指定时间范围查询,比如:
SELECT client_id,COUNT(video_id) FROM table WHERE video_id=11 start_time > 'xxxx' AND finish_time < 'xxx' GROUP BY client_id
也需要按业务数据查询,比如:
SELECT video_id, COUNT(client_id) FROM table WHERE start_time > 'xxxx' AND finish_time < 'xxx' GROUP BY video_id
请问这种情况,数据应该怎么存储比较好?
本帖已被设为精华帖!
本帖由系统于 3年前 自动加精
可以补充个数据结构出来。从现在的文字描述没办法理解你这个
业务数据
指的是枚举字段还是一种数据结构。关注学习一下 :+1:
TIDB是你的不二选择
如果不需要修改或删除数据,可以考虑第三方日志服务
这个数据量有点大,可以考虑一下使用mongodb来存储日志类的数据,设置保存一段时间数据,之前的数据做一个或者多个统计表,然后定期删除已经做过统计表的数据,减少数据存储的量。
hbase?
物联网行业? 使用mongodb吧 这种日志一般也只是查,甚至只是存档而已
不知道楼主知道,时序性数据库不?这个是针对物联网海量数据设计的查询数据库。不过需要一定的学习难度。
clickhouse
楼主关注一下这个:www.taosdata.com/cn/ php的连接器是这个:github.com/Yurunsoft/php-tdengine
clickhouse
ES
es 或者阿里云sls 腾讯云日志服务
怎么存不是问题,怎么用才是你的问题
只存不改的话,可以考虑下MySQL的Archive存储引擎
不过最终还是要看你要拿这些数据做什么
elk或者mongodb
按照你这个数据量,不要使用关系型数据库,使用时序数据库吧。类似数据上报一样了
1、楼上说时序性数据库可以,你可以试试 2、目前我自己在从事广告数据开发方向。这种场景下,如果数据只增不减,可以考虑直接采用 OLAP 列式的数据库,这点数据量还是很轻松的。楼上举得 clickhouse 就是个不错的选择,擅长做日志等明细数据
单客户端一天8640条数据,目前1w台客户端,一天8640*1w=8640w条数据,一年大概315亿条数据。
TDengine的超级表感觉很不错,可以按客户端存到子表里,但是TDengine的查询功能好像不如clickhouse支持的好。
但是不知道clickhouse单表(大概10列,都是id,datetime类型)存几百亿数据数据会不会有啥问题。
昨天自己的电脑测试了下clickhouse单表三列(id UInt32, name String, created Datetime)mergeTree引擎,10亿数据查询速度挺快(机器配置 AMD 2400G / 16G DDR4 3200 / 海康c2000pro NVME硬盘)
@Rytia @laravelcc @fatrbaby @梦想星辰大海
看了 TDengine 官网贴出的性能对比图,为啥 说性能远超 clickhouse ?
有很多人推荐clickhouse类分析数据库,此类数据库适合多写少读,我认为这个场景作为多写多读的场景,更适合使用MongoDB分片实例,再根据读场景进行分表,比如说取某个视频下的开始结束时间,就根据视频id分表,然后记录开始,结束时间.用户id,极大减少每个表的数据量,根据用户id做一个索引,并且不用担心video_id增长带来的表过大问题,另外可以考虑删除过期数据,或者定期搬运数据到冷数据表
试试用bitmap存储你的数据,比如搜索条件作为key,业务数据作为value,这个value是个bitmap。 这样做的前提是你的value部分的值必须是int
一天百万数据 目前再用 influxdb
时序数据库
一天3亿数据。存mysql没问题、但是会定时清理、
分rds 分表 分库 没问题
这种 应该上时序数据了吧.. 搜索下吧
如果都是这样的查询的话:
是不是可以考虑按时间查询颗粒精确度建立一个汇总表,类似于
这样算一下能否提高效率
楼主,您好,我目前也在ClickHouse、TDengine中选型,想问下,您当时为什么选择了前者?