【问题标题】:How to store sensor data into Apache Hadoop HDFS, Hive, HBase or other如何将传感器数据存储到 Apache Hadoop HDFS、Hive、HBase 或其他
【发布时间】:2016-11-01 16:23:31
【问题描述】:

假设您正在从 CSV 文件中读取数百万行数据。每行显示传感器名称、当前传感器值和观察该值时的时间戳。

key, value, timestamp
temp_x, 8°C, 10:52am
temp_x, 25°C, 11:02am
temp_x, 30°C, 11:12am

这与这样的信号有关:

所以我想知道将其存储到 Apache Hadoop HDFS 中的最佳和最有效的方法是什么。第一个想法是使用 BigTable aka HBase。这里信号名称是行键,而值是一个列组,随着时间的推移保存值。可以向该行键添加更多列组(例如实例统计信息)。

另一个想法是使用表格(或类似 SQL)结构。但随后您复制每一行中的密钥。而且您必须按需计算统计数据并将它们单独存储(此处存储到第二个表中)。

不知道有没有更好的办法。存储后,我想在 Python/PySpark 中读取该数据并进行数据分析和机器学习。因此,应该可以使用模式 (Spark RDD) 轻松访问数据。

【问题讨论】:

    标签: python hadoop hdfs signal-processing sensors


    【解决方案1】:

    我会考虑使用。

    • 使用databricks csv从CSV文件加载数据
    • 清理数据
    • 写入 qarquet 文件(以节省空间和时间)

    • 从 parquet 文件中加载数据

    • 分析一下
    • 也许保存为中间结果

    【讨论】:

    • 谢谢。这也是我们目前的做法。
    • 您是否尝试以 Avro 格式保存以查看性能差异?
    • 是的,我们在其他不同的项目中尝试过,感觉 Parquet 在性能方面更好。
    • 我认为 Parquet 适用于大多数用例,除了同一列中的数据变化很大,并且总是在几乎所有列上进行分析。也找个好的SO answer
    • 我这里也有同样的情况,不知道怎么处理。那么,将数据保存为 Parquet 并使用 sparksql 或 df/ds API 加载/分析是否合理?既然是时间序列数据,我们不应该将数据存储在任何类型的 nosql 数据库中,因为我们经常随机访问数据吗?
    猜你喜欢
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多