通过物联网数据平台进行事件引入#
本文档将为使用凯睿德制造软件的物联网数据平台功能配置事件摄取机制提供快速指南。
概述#
在本例中,我们将定义一个从车间中的不同传感器接收值的事件。此事件将具有特定的结构,因此我们应定义它,让系统知道它,并能够在作为系统的API调用而收到时分析同一事件。为了创建适当的结构来接收以及充分摄取和处理凯睿德制造软件中的事件,必须执行以下几个步骤:
- 创建物联网事件定义以指定事件结构。
- 创建物联网消费者定义以定义将接收活动的消费者类型。
- 确保系统通过物联网消费者摄入事件并进行操作。
上述步骤将在系统中创建对象,用于处理事件和其中包含的有效负载。这样,让我们从以下几个方面开始:
创建物联网事件定义#
在主菜单的“业务数据”部分,导航至物联网定义磁贴并创建新条目。为物联网事件定义提供一个名称。请记住,该名称将标识整个数据平台基础设施中的事件,因此它应该是一个有意义的名称,供以后参考。以下是这些值的示例:
我们将创建的事件的结构和样本值如下:
AppProperties 是由正在运行并接收事件的Kafka主机包括的字段,而Data是实际事件有效负载。
可以手动或通过导入JSON结构(如上所示)向事件定义添加属性。系统将从实际值推断数据类型,并为每个字段生成属性。
多个属性对于事件摄取的正常运行至关重要,因此请为每个属性指定:
- 属性名称 – 与事件JSON文档中的属性匹配的名称。
- 数组 –将此属性标识为对象数组。
- 必需 – 标识属性是否为必填。如果为True,则此信息将用于验证所有到达事件。
- 已编入索引 – 如果定义了此值,则会在创建物联网消费者时自动选择字段。
- 数据类型 – 属性的数据类型。必需,是一个枚举。将映射到以下JSON类型(用括号引起)
- 默认值 – 指定属性的默认值。如果在接收到的事件中不存在,则此值将由事件验证过程设置。
- 已共享 - 可以选择特定的物联网架构以与JSON结构匹配,然后作为系统中的单独对象共享。
Info
详细信息见《用户指南》的创建物联网事件定义页面。
从样本JSON结构导入也很简单:
手动创建属性或从JSON文件导入后,将生成属性,并可以创建物联网事件定义。
在原始导入后,如果上面未定义共享选项,则还将创建一个新的物联网架构,并将其与此特定事件定义建立一对一关系,但随后可用于其他定义。
创建物联网消费者定义#
在创建物联网事件定义后,我们现在必须定义物联网消费者定义,以指明将摄取事件的消费者类型。系统提供了不同类型的可能的消费者定义,在本例中,我们将选择一个SQL数据库接收器作为接收事件数据的目标。文件和消息总线接收器也可供使用。
选择@criticalmanufacturing/iot-dp-sql-sink包,其版本应与当前安装的MES版本匹配,以获得最大的兼容性,并创建物联网消费者定义。
Info
详细信息见《用户指南》的SQL接收器物联网消费者定义页面。
创建物联网消费者#
最后,创建物联网消费者将指定在摄取事件时将检索的数据的目的地。选择我们之前创建的物联网消费者定义,并选择将由系统同时运行的物联网消费者实例数,以满足高可用性和可扩展性的需求。
在下一页中,选择此物联网消费者将要摄取的实际事件。在本例中,我们将选择先前创建的测量事件。
要完成物联网消费者配置,请选择以下属性:
- 元数据连接字符串 - 关于MES扩充和/或互操作性的实际对象映射的信息来源
- 连接字符串 - 目标数据库的连接字符串,事件数据将存储在该数据库中
- 表名称 - 目标数据库中容纳这些值的表的名称为便于阅读和参考,建议使用事件名称。
- 使用全局事件表 - 是否应使用事件的全局表,否则将创建多个表来分隔数据
- 起始偏移量 - 事件摄取量应从开始日期(最晚)中的值开始,或从创建时刻(最早)开始。
- 开始日期 - 事件摄取的开始日期。
最后,我们可以选择将检索并作为单独的列存储在数据库中的属性。最后,我们将创建一个物联网消费者,该消费者将在对话结束后立即运行。
Note
只有选定的字段才会生成到数据库列中。
Info
如果属性在创建时标记为已编入索引,它们会自动处于选中状态,且无法取消选中,因为它们将在事件摄取过程中用作索引(并在目标数据库中指定)。
然后,SQL接收器将在数据库中生成相应的结构,如以下示例:
监控#
使用可通过MES主菜单访问的物联网消费者监控页面,我们可以看到我们创建的特定物联网消费者正在运行,我们还可以在右侧面板上查看运行时信息。通过按下该面板上的小图标,打开带有可用日志的新选项卡,可以直接访问Spark日志。
通过使用任何类型的用户定义设备或Connect IoT工作流操作,我们可以将值发送到创建的Kafka主题,任何值都将自动存储在数据库中,接收到每个事件一行,数值存储在映射的列中。












