sql - 大整数系列的优化存储

标签 sql postgresql time-series

我目前正在从头开始设计一家初创公司的后端。我们从互联网上抓取时间序列。我们每分钟抓取大量整数,并将它们存储在 csv 文件中带有时间戳的行中。

我们还没有开始正确地利用数据,因为我们仍处于设计阶段。我想知道,几年的整数系列的最佳存储是什么?我们开始考虑将其加载到 Postgres 中,但 sql 是否适合利用时间序列?

我期待找到一个最适合处理此类特定数据集的奇迹软件,并且很高兴听到任何能够实现的建议:

  • 持久的大容量存储
  • 平均/分组计算,可能还有其他类似 R 的功能
  • 与原始 SQL 数据库存储相比,在性能、功能或易用性方面有所提升

最佳答案

每分钟,8,000 个值转化为每天 1,150 万个值或每年 40 亿行。这是一个沉重的负担。只是插入负载(使用任何符合 ACID 的方法)是值得注意的——每秒超过 100 次插入。这在现代数据库系统中绝对是可管理的,但并非微不足道。

Postgres 很可能可以处理这种负载,具有适当的索引和分区方案。该解决方案的确切性质取决于您需要运行的查询,但 Postgres 确实具有支持它的底层工具。

但是,您的要求(在我看来)超出了 Stack Overflow 所能提供的范围。如果您正在设计这样的系统,您应该寻求专业 Postgres DBA 的帮助。我可能会补充说,您可以考虑考虑基于云的解决方案,例如 Amazon Redshift 或 Microsoft Azure,因为这些解决方案可以让您“仅”通过支付更多资金轻松扩展系统。

关于sql - 大整数系列的优化存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23583246/

相关文章:

php - 从 MySQL 数据库检索项目,但首先使用一些数学规则

java - 如何在PreparedStatement中运行SQL TRANSACTION

mysql - 仅获取 a 列具有与 b 列中的独特值一样多的重复条目的行

ruby-on-rails - 我如何在最近的 Rails 中订购数据库记录?

java - Postgresql 过程未从 JDBC 调用

perl - 如何使用带引号内占位符的查询? (perl/postgresql)

r - 预测每小时时间序列的模型

sql - PostgreSQL:递增否则插入

python - 查找缺失的日期

python - Panda 通过分组连接多个时间序列并扩展缺失数据