我有一个非常具体的问题。我有大约 40000 列的数据。数据是非规范化的,因为实时处理需要很多时间。
Postgresql 对列号 1600 有限制。有人能给我推荐一个没有这个限制的数据库吗?
或者如果不是数据库,如何存储很宽的数据?
分区到较小的表被证明是一项乏味的任务,因为在使用特定过滤器执行特定查询时加入它们可能非常困惑。我已经试过了。
谢谢!
编辑:
census.gov/programs-surveys/acs/data.html 这是数据集。 示例表:
编号。某条街上的人:
列:人数,人数<18岁,人数<22,人数22<30等
而且这些组合越来越高。包括种族、性别、国籍等。有你的 40000 列。而且这些列不能即时计算。需要预先计算和存储以便更快地阅读 – Forsythe 15 分钟前
最佳答案
我能轻易想到的所有数据库都有几千个限制(至少 SQL Server、MS Access、Oracle、MySQL、Postgres、Teradata 和 DB2)。您可能更喜欢使用列式数据库,但它们相当专业。
这为您提供了多种选择:
- 您可以对数据使用键值对。但是,如果数据密集,那么您可能拥有非常大的数据。
- 您可以使用其他数据结构,例如 JSON、XML、数组(在 Postgres 中)或 BLOB(二进制大对象)。
- 您可以使用 NOSQL 技术来存储数据。
- 您可以使用统计工具,例如 R、SAS 和 SPSS。
最终,您希望如何存储数据的问题取决于您希望如何处理数据。例如,如果您的系统有很多关系数据和功能但有时间序列数据,那么您可以将时间序列存储在它自己的表中(每个时间单位每个行一行),或者您可以将序列存储为一个 BLOB,因为您要将它返回给应用程序以供进一步处理。
关于database - 非常宽的非规范化数据(大约 40000 列)。使用哪个数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36307387/