如何/在哪里可以编写时间序列数据?作为Parquet格式的Hadoop,或HBase,Cassandra?

问题描述 投票:1回答:2

我有实时时间序列传感器数据。我的主要目标是保留原始数据。我应该这样做,以便存储成本最小。

我的情景是这样的;

所有传感器都会生成时间序列数据,我必须保存这些原始时间序列数据以进行批量分析。镶木地板格式非常适合降低存储成本。但是,如果每个传入的时间序列数据都写成镶木地板格式,这是否有意义?

另一方面,我想实时处理每个传入的时间序列数据。对于实时场景;我可以用卡夫卡。但是,Hbase或Cassandra可以用于批量和实时分析而不是Kafka吗?

如果我使用Cassandra,我该如何进行批量分析?

hadoop cassandra time-series hbase parquet
2个回答
1
投票

但是,Hbase或Cassandra可以用于批量和实时分析而不是Kafka吗?

把卡夫卡想象成这些商店的管道。它不是替代使用“而不是”。 HBase和Cassnadras是商店,您需要从中批量处理数据......您可以在这些系统之前使用Kafka Streams(或Spark,Flink或我个人最喜欢的NiFi)进行实际(近乎)实时处理。

我建议使用Kafka,而不是将点对点指标纳入Hadoop(或相关工具)。我还鼓励使用像CrateDB或InfluxDB这样的数据...你可以使用Kafka来摄取Hadoop和其他更好地调整以存储这些数据集的工具(这是“缓冲”数据的好处卡夫卡第一)

如果每个传入的时间序列数据都写成镶木地板格式,这是否有意义?

当然。如果要存储大量数据以进行大批量分析。但是,例如,如果您按小时数据点窗口,并执行总和和平均值,那么您真的需要存储每个数据点吗?

如果我使用Cassandra,我该如何进行批量分析?

好吧,我希望你现在以同样的方式做到这一点。为数据库安排查询?希望所有的数据都存在? (没有迟到的记录)


0
投票

我有实时时间序列传感器数据。我的主要目标是保留原始数据。我应该这样做,以便存储成本最小。

如果您的要求是存储原始数据,您可以将它们写入hdfs压缩形式。在这里使用镶木地板格式可能不可行。格式可以改变。如果您在kafka中有传入数据,则可以使用kafka connect从主题批量写入hdfs。

所有传感器都会生成时间序列数据,我必须保存这些原始时间序列数据以进行批量分析。镶木地板格式非常适合降低存储成本。但是,如果每个传入的时间序列数据都写成镶木地板格式,这是否有意义?

不确定我是否理解正确,但将每个数据点存储在单独的镶木地板文件中没有任何意义。

  1. 与原始数据相比,镶木地板格式具有开销
  2. 镶木地板格式专门设计用于具有多行的表格数据,因此对该数据的过滤很快(具有本地访问权限)。
  3. 批量处理和文件系统大多数时候都对很多小文件感到不满。

另一方面,我想实时处理每个传入的时间序列数据。对于实时场景;我可以用卡夫卡。但是,Hbase或Cassandra可以用于批量和实时分析而不是Kafka吗?

根据您的使用情况,批处理可能很容易在原始数据上使用hive或spark sql。也许kafka-streams处理器足以满足您的实时需求。

这么多选择。这一切都取决于用例......

© www.soinside.com 2019 - 2024. All rights reserved.