Cassandra 为工业数据传感器节省时间序列

标签 cassandra time-series plc

我目前正在开发一个项目,并研究从连接到 PLC 的工业工厂传感器(工厂机械的 Controller ,例如控制电机、速度、开关...)检索数据的最佳方法。

我将解释要实现的目标,我认为我的案例可以推断到许多不同类型的行业:

  1. 我有几个 PLC,它们为我提供了许多不同的数据值。 (其中许多值只是 bool 值,其他值是模拟值,例如实数类型。)

  2. 我的整个工厂将拥有超过 10,000 个传感器。

  3. 我希望至少每秒检索一次模拟值数据(例如电机转速、温度、湿度......)。

  4. 对于数字值,当事件出现时,数据将与时间戳一起保存。

我想将 Cassandra 与时间序列结合使用,因为它看起来是最有前途且更快的技术。

我的问题是关于每秒存储模拟值。拥有这样的架构是否更好:

timestamp, sensor1, sensor2, sensor3, sensor4

在工厂按零件进行排列和分组,还是这样更好

every sensor has his own table

<强>?

整个系统将用Java开发,并将数据提供给外部公司进行分析。

最佳答案

不太清楚您的查询是什么。你提到 “我想至少每秒检索一次模拟值数据(例如电机转速、温度、湿度......)”。

这是否意味着您每秒都会查询所有 10K 个传感器?或者针对特定传感器,或者针对一组传感器?在 cassandra 中,在查看数据模型之前了解您的查询是什么至关重要。如果您正在寻找 1 秒的粒度,一种选择可能是将传入数据流提供给 Spark Streaming,并将 Spark Streaming 代码保存到适合您要查询的内容的 Cassandra 表中。

至于您提到的选项,在不知道您的查询的确切性质的情况下很难说。将一个 key 轮换到第二个 key 可能是一种选择 - 这意味着每个分区有 10K 左右的条目,假设每个传感器的数据速率为 1/s。每个传感器都有一个表会很奇怪,但每个传感器可能有一个分区,其中每个条目都有时间戳。这实际上取决于您的查询。

如果您向我们提供一个示例,说明您打算如何检索数据,我们可以提供更好的帮助吗?

关于Cassandra 为工业数据传感器节省时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26991287/

相关文章:

apache-spark - 最佳的架构来过滤来自9000万用户的数据?

cassandra - cassandra nosql 数据库中的节点、集群和数据中心之间有什么区别?

c# - 远程 OPC 已连接但无法读取

logic - PLC梯形逻辑序列

c++ - 从IT编程到机器控制编程

cassandra - Cassandra 中 TTL 数据的 gc_grace_seconds 减少为 0

cassandra - 列数与计数器列性能

machine-learning - 将sample_weights与fit_generator()一起使用

python - 带滚动窗口的 Pandas Dataframe 枢轴

python - 动态计算工作日数,不包括 Python 中的假期日历