我有一个时间序列熊猫数据框,它每分钟动态增加列并添加新行:
最初的:
timestamp 100 200 300
2020-11-01 12:00:00 4 3 5
下一分钟:
timestamp 100 200 300 500
2020-11-01 12:00:00 4 3 5 0
2020-11-01 12:01:00 14 3 5 4
数据框每分钟都有这些更新的值等等。
所以理想情况下,我想设计一个支持这种动态列结构的数据库解决方案。列数可能会增长到超过 20-30k+,并且由于它是一分钟的时间序列,因此每年将有 500k+ 行。
我已经读过关系数据库对列数有限制,所以这可能在这里不起作用,而且,因为我正在为新列设置数据并将默认值(0)分配给以前的时间戳,所以我输了MySQL 上的默认参数。
最终,我将查询 1 天、1 个月的数据以获取列的数据及其值。
请为这种类型的动态行和列数据建议一个合适的数据库解决方案。
通常,像这样的动态数据问题可以通过将模式的动态部分存储在其自己的表中,转置为行来解决。
例如,您可以有一个间隔表,其中一列称为间隔,另一列称为值。间隔将为该间隔的每个值实例存储 100、200、300 等。
您也可以将 Timestamp 作为列存储在此表中,或者我的建议是将 Timestamp 规范化到其自己的表中,其 TimestampId 是 Intervals 表中的外键字段。
以这种方式实现您的模式,然后您不必担心创建了多少动态间隔,因为这是一个基于行的通用解决方案。