database - 非常宽的非规范化数据(大约 40000 列)。使用哪个数据库?

标签 database postgresql denormalization

我有一个非常具体的问题。我有大约 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/

相关文章:

sql-server - 存储时间的最佳方式(hh :mm) in a database

ios - 使用 parse.com 存储项目的最佳方式

mysql - MySQL 中的非规范化多对多关系

sql - 为实现理智或性能而进行非规范化处理?

postgresql - 获取用于编码的错误无效字节序列

mysql - 可选列的一对一关系或 NULL 字段?

database - Postgresql enum 有什么优点和缺点?

c# - 无法在 ASP.NET Razor 中传递 2 个参数 - WebMatrix 数据库查询()方法

ruby-on-rails - 为什么会出现此重复列错误?

sql - Postgresql:触发函数使其可编辑,如可更新 View