gpt4 book ai didi

Hadoop/Cassandra - 如何存储和分析来自数千个传感器的数据?

转载 作者:可可西里 更新时间:2023-11-01 14:56:52 25 4
gpt4 key购买 nike

我对“大数据”技术非常陌生,尤其是 Cassandra,所以我需要您的建议来完成我必须完成的任务。我一直在寻找有关处理时间序列的 Datastax 示例,以及此处关于此主题的不同讨论,但如果您认为我可能遗漏了什么,请随时告诉我。这是我的问题。

我需要存储和分析来 self 们正在测试的大约 100 个传感器站的数据。在每个传感器站中,我们都有数千个传感器。因此,对于每个站,我们进行了几次测试(大约 10 次,每次持续约 2 小时 30 分),在此期间传感器每毫秒记录一次信息(可以是 bool 值、整数或 float )。每次考试的记录在考试期间都保存在站台上,考试结束后发给我。这意味着每个测试大约 10 GB(每个参数大约是 1 MB 的信息)。

这是一个说明层次结构的模式: Hierarchy description

现在,我可以访问一个带有 Spark 和 Cassandra 的小型 Hadoop 集群进行测试。我也许能够安装其他工具,但我真的很感激继续使用 Spark/Cassandra。

我的问题是:存储然后分析来自这些传感器的信息的最佳数据模型是什么?

“分析”是指:

  • 查找特定站点上特定传感器记录的特定参数的最小值、最大值和平均值;或找到特定参数的那些值,但适用于所有站点;或找到特定参数的那些值,但当同一站的其他参数(一个或两个)高于限制时

  • 绘制一个或多个参数的演变图,以便直观地比较它们(不同站点的相同参数,或同一站点的不同参数)

  • 在参数或站点之间进行一些相关性分析(例如,查找传感器是否不工作)。

我正在考虑将所有信息放入具有以下数据模型的 Cassandra 表中:

CREATE TABLE data_stations (
station text, // station ID
test int, // test ID
parameter text, // name of recorded parameter/sensor
tps timestamp, // timestamp
val float, // measured value
PRIMARY KEY ((station, test, parameter), tps)
);

但是,我不知道一张表是否能够处理所有数据:根据先前的数据模型(100 个站点 x 10 个测试 x 10 000 个参数 x 9,000,000 毫秒)快速计算得出 10^14 个不同的行(2h30 毫秒)~= 10^14),即使每个分区“只有”9,000,000 行。

其他想法是将数据拆分到不同的表中(例如,每个站一张表,或每个站每个测试一张表等)。不知道怎么选,欢迎大家指教!

非常感谢您的时间和帮助,如果您需要更多信息或细节,我很乐意告诉您更多信息。

PIL

最佳答案

你走对了,Cassandra可以处理这样的数据。您可以将所需的所有数据存储在列族中,并使用 Apache Spark 而不是 Cassandra 来执行所需的聚合。

我觉得 Apache Spark 适合您的用例,因为它可用于聚合和计算相关性。

您也可以查看 Apache Hive因为它可以直接(通过外部表)在 HDFS 中处理/查询数据。

检查这些:

Cassandra - Max. size of wide rows?

Limitations of Cassandra

关于Hadoop/Cassandra - 如何存储和分析来自数千个传感器的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39119258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com