【问题标题】:Hadoop/Cassandra - how to store and analyse data from thousands of sensors?Hadoop/Cassandra - 如何存储和分析来自数千个传感器的数据?
【发布时间】:2016-12-31 08:23:44
【问题描述】:

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

我需要存储和分析来自我们正在测试的大约 100 个传感器站的数据。在每个传感器站中,我们有数千个传感器。因此,对于每个站点,我们运行多个测试(大约 10 个,每个持续大约 2 小时 30 分钟),在此期间传感器每毫秒记录一次信息(可以是布尔值、整数或浮点数)。每次测试的记录在测试期间都保存在工作站上,然后在测试完成后发送给我。这意味着每个测试大约 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 行。

其他想法是将数据拆分到不同的表中(例如,每个站点一个表,或每个站点每个测试一个表等)。我不知道如何选择,所以欢迎任何建议!

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

皮亚尔

【问题讨论】:

    标签: hadoop cassandra data-modeling sensors


    【解决方案1】:

    您走在正确的轨道上,Cassandra 可以处理此类数据。您可以将所有您想要的数据存储在列族中,并使用 Apache Spark 而不是 Cassandra 来进行所需的聚合。

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

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

    检查这些:

    Cassandra - Max. size of wide rows?

    Limitations of Cassandra

    【讨论】:

    • 感谢您的快速回答。我很高兴听到 Spark 和 Cassandra 是解决我问题的好选择!我检查了您发送的链接,确实很有趣。但是,“每个分区 20 亿个单元格”的限制是否意味着只要我的分区少于 20 亿个单元格,我就可以在同一张表中放入任意数量的数据,没有任何限制?在那种情况下,我可以使用我在第一条消息中给出的第一个数据模型,你也是这样的感觉吗?再次感谢您的回答!
    • 是的,您可以将不同分区中的所有数据(每个小于 20 亿个单元格)放入一个表/列族中。 但请记住所有Limitations of Cassandra
    • 好的,感谢您提供的精确度和链接。真的很有用,那我试试!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    • 2016-11-01
    • 2019-11-29
    • 2018-03-31
    • 2016-05-27
    • 2013-09-02
    • 2011-06-04
    相关资源
    最近更新 更多