工作的业务场景里面想到的。
一张亿级记录数的表,有一个时间戳字段 timestamp 以及若干其他字段。这张表每隔 5 分钟更新,插入新的纪录,并删除上上个粒度数据。比如 9 点更新该时刻数据的时候,删除 timestamp 8:50 的数据,同时保证 9 点 5 分前数据更新完毕。
要求在 9 点 10 分前用较少的内存将 9 点的数据采集成文件。不考虑读数据库和磁盘 io 时间,只允许使用这一个数据库。程序可以分布式,数据库只可查询
我想法是把表按主键取模进行水平拆分,按照拆分个数 n 在 n 台主机采集,最后丢进 mq 队列,一台机器上把 n 个文件拼成一个。
没搞过相关业务的经验,原来搞这个模块的人跑路了,所以现在没个讨论的。
有经验有想法的,欢迎给个思考方向,谢谢
一张亿级记录数的表,有一个时间戳字段 timestamp 以及若干其他字段。这张表每隔 5 分钟更新,插入新的纪录,并删除上上个粒度数据。比如 9 点更新该时刻数据的时候,删除 timestamp 8:50 的数据,同时保证 9 点 5 分前数据更新完毕。
要求在 9 点 10 分前用较少的内存将 9 点的数据采集成文件。不考虑读数据库和磁盘 io 时间,只允许使用这一个数据库。程序可以分布式,数据库只可查询
我想法是把表按主键取模进行水平拆分,按照拆分个数 n 在 n 台主机采集,最后丢进 mq 队列,一台机器上把 n 个文件拼成一个。
没搞过相关业务的经验,原来搞这个模块的人跑路了,所以现在没个讨论的。
有经验有想法的,欢迎给个思考方向,谢谢