首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行IoT分析的存储解决方案

运行IoT分析的存储解决方案
EN

Database Administration用户
提问于 2018-06-18 19:48:15
回答 1查看 54关注 0票数 3

我有几百个IoT设备每分钟将数据推送到服务器上。数据是结构化的,它有以下列:

  • 站点ID (字符串)
  • 事件启动时间(日期时间)
  • 事件结束时间(日期时间)
  • 数据(字符串)

数据一旦创建,就不会更改或更新。这个数据库的主要目的是运行Analytics。

我开始使用MongoDB,但是它的性能在几十万行之后下降了。有人建议,由于我的数据是结构化的,我不需要NoSQL。我搬到了RDBMS (Postgres)。它比以前的解决方案表现得更好,但在几百万行之后,它就开始屈服了。现在有人建议,由于我不打算使用事务性数据库的任何特性,因此RDBMS并不是一个合适的解决方案。我可能需要一个分析数据库。

为了找到更好的解决方案,我做了一些研究,发现弹性搜索、Vertica、HBase等可以解决我的问题。也许还有很多其他的解决方案,而我对其中任何一种都没有经验。

我的问题是,我该怎么做?学习,实验,重复循环对我来说似乎太长了。

EN

回答 1

Database Administration用户

发布于 2018-06-18 22:07:29

有人建议,由于我的数据是结构化的,我不需要NoSQL。我搬到了RDBMS (Postgres)。它比以前的解决方案表现得更好,但在几百万行之后,它就开始屈服了。

怎么弄到膝盖了?您可以轻松地索引数十亿行,通过BRIN索引。将开始时间和结束时间合并到一个tsrange中,并在桌面和范围上进行集群。

代码语言:javascript
复制
CREATE TABLE foo (
  id int PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY,
  startts tsrange
);
CREATE INDEX ON foo USING brin (id,startts);

我会经常考虑在id上进行集群,直到您的工作负载不允许这样做为止,但是在几百万行上,在遇到真正的规模问题之前,您还有很长的路要走。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/209957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档