【问题标题】:Choosing a storage layer for time series data at rest为静态时间序列数据选择存储层
【发布时间】:2016-10-09 08:34:24
【问题描述】:

总的来说,我是大数据技术栈的新手。我正在实施一个实时分析基础架构,它将从我们的微服务后端的不同服务中摄取大量/高速数据。提取的数据(和数据流)将用于填充关键业务指标以及 BI 查询和机器学习的仪表板。

所有后端服务都将数据事件写入现在就位的 Kafka 集群。我开始研究 Spark 原型,以从 Kafka 集群中读取数据并对其进行丰富/处理。

现在我正在研究将静态数据存储在哪里。我知道像 Vertica 和 Terradata 这样的实时分析技术相当流行。但他们有非平凡的前期资本投资。

所以我试图坚持开源。经过一番研究,我决定使用 HDFS/Impala 来处理静态数据,并在 Hadoop 上运行 SQL 来进行实时 BI 查询。

然后我开始考虑是否使用 Cassandra 来存储我们的静态数据而不是使用 HDFS/Impala 更有意义。 Cassandra 横向扩展并具有快速写入和读取功能。我还阅读了一些文献,其中人们为使用 C* 提供了很好的论据。

欢迎任何评论/反馈。

【问题讨论】:

  • 我现在也遇到了和你一样的问题,你问这个问题已经2年了,我能知道你现在的经历和你最终用的什么吗?

标签: hadoop cassandra hdfs impala bigdata


【解决方案1】:

我们在 Cassandra 中存储了数 PB 的过期时间序列数据,我们对此非常满意。在摄取管道中,我们能够每秒进行数百万次写入,并且读取速度很快(亚毫秒)以用于显示/BI。对于大型 ML 任务,您可以在 Cassandra 之上运行 spark 进行分析。

【讨论】:

  • 非常感谢@jeffjirsa。那么是否使用 just Cassandra 作为数据仓库的存储?您如何解决 Cassandra 中的模式演变问题?
  • 架构演变? ¯\_(ツ)_/¯
  • 嘿@jeffjirsa - 我的意思是,如果您想要在数据仓库中结束的 json 事件的结构随着时间的推移发生变化怎么办。你只是更新你的 Cassandra 架构吗?
  • 如果你使用 cassandra 作为 naive key->value(分区键并且没有集群键),那么你只需将 json blob 塞进去,没什么大不了的。如果您使用集群,那么是的,如果您添加或删除字段,您会更改您的 cassandra 架构。
  • 再次感谢@jeffjirsa。如果我们想支持模式演化,这就是我认为的方法。我想我将使用双写系统。写信给 Cassandra 以获取我们正常的实时分析。但也可以写入 HDFS 以进行日志存储以进行更多离线分析,或者如果我们想要重新处理时间窗口的事件。这是解释方法svds.com/…的文章
猜你喜欢
  • 1970-01-01
  • 2014-08-03
  • 1970-01-01
  • 1970-01-01
  • 2015-09-06
  • 2012-09-02
  • 2010-12-13
  • 2023-04-01
  • 2016-10-31
相关资源
最近更新 更多