如何/在何处写入时间序列数据?作为Parquet格式到hadoop,或hbase,cassandra?

vkc1a9a2  于 2021-05-27  发布在  Hadoop
关注(0)|答案(2)|浏览(356)

我有实时时间序列传感器数据。我的主要目标是保留原始数据。我应该这样做,使存储成本最低。
我的情景是这样的;
所有传感器都会产生时间序列数据,我必须保存这些原始时间序列数据,以便进行批量分析。Parquet格式是伟大的存储成本较低。但是,如果每个传入的时间序列数据都以Parquet格式写入,这有意义吗?
另一方面,我希望实时处理每个传入的时间序列数据。用于实时场景;我可以用Kafka。但是,hbase或cassandra能代替kafka同时用于批处理和实时分析吗?
如果我使用cassandra,如何进行批量分析?

gudnpqoy

gudnpqoy1#

但是,hbase或cassandra能代替kafka同时用于批处理和实时分析吗?
把Kafka想象成进入这些商店的管道。用“代替”也不是替代。hbase和cassnadras是存储,您需要从中“批处理”数据。。。在这些系统之前,您可以使用kafka流(或spark、flink或我个人最喜欢的nifi)进行实际(近)实时处理。
我建议使用kafka而不是hadoop(或相关工具)中的点对点度量。我也会鼓励使用类似cratedb或xdb之类的数据。。。您可以使用kafka将数据摄取到hadoop和其他工具中,这些工具经过了更好的调优,可以存储这样的数据集(这是先在kafka中“缓冲”数据的好处)
如果每个传入的时间序列数据都以Parquet格式写入,这有意义吗?
当然。如果你想存储大量数据进行大批量分析。但是,如果您每小时为流数据点设置一个窗口,并执行求和和和平均,那么您真的需要存储每个数据点吗?
如果我使用cassandra,如何进行批量分析?
好吧,我希望你现在也这么做。安排对数据库的查询?希望所有的数据都在那里(无迟到记录)

2ul0zpep

2ul0zpep2#

我有实时时间序列传感器数据。我的主要目标是保留原始数据。我应该这样做,使存储成本最低。
如果您的需求是存储原始数据,您可以将它们以压缩形式写入hdfs。使用Parquet格式在这里可能不可行。格式可以更改。如果kafka中有传入的数据,那么可以使用kafka connect从一个主题批量写入hdfs。
所有传感器都会产生时间序列数据,我必须保存这些原始时间序列数据,以便进行批量分析。Parquet格式是伟大的存储成本较低。但是,如果每个传入的时间序列数据都以Parquet格式写入,这有意义吗?
不确定我是否理解正确,但将每个数据点存储在单独的Parquet文件中没有任何意义。
与原始数据相比,Parquet格式具有开销
parquet格式是专门为具有多行的类似表的数据而设计的,因此对该数据的过滤速度很快(通过本地访问)。
批处理和文件系统在大多数情况下对大量的小文件非常不满意。
另一方面,我希望实时处理每个传入的时间序列数据。用于实时场景;我可以用Kafka。但是,hbase或cassandra能代替kafka同时用于批处理和实时分析吗?
根据您的用例,批处理在原始数据上使用hive或sparksql可能很容易。也许Kafka流处理器足以满足您的实时要求。
有很多选择。这完全取决于用例。。。

相关问题