我需要存储具有多个分段(聚合)可能性的原始(未聚合)数据。例如:一天、一天中的小时、设备等。将至少有 6 个分段列,每列平均有 5 个唯一值。而且我需要在各种范围内管理这些数据的所有可能聚合。
例如:
- 我需要从上个月开始按天和小时分组的 columnX 总和
- 我需要 columnX 的总和,按月份和设备分组的 columnY 的平均值,从去年开始
它必须是原始数据。此要求将导致平均每月 1 亿条记录。我无法存储任何总和,因为我必须为每个分段列组合存储所有可能的总和。
哪种数据库引擎/设计最适合此类任务?最初对于应用程序,我们选择了 MySQL 数据库,但在选择时我们并不完全了解需要提取的数据结构和统计信息。现在,当我知道它时,我想到了表分区,但我不熟悉它,并且由于范围广泛,不确定它是否真的有帮助。如果它没有帮助,如果 MySQL 失败了这个任务,不管表设计,怎么办?例如像MongoDB这样的非关系引擎?
查询要求 - 不超过 2-3 秒。
假设用于数据库处理的公司硬件资源 - 几个高质量的服务器,但肯定不是几十个或几百个。