Azure Digital Twins入门 - 术语介绍
分类: Azure物联网 ◆ 标签: #Azure #Digitial Twin # ◆ 发布于: 2023-06-15 20:09:06
在Azure平台上有不少服务都喜欢称为Twin,像Azure IoT Hub中的Device Twin, Module Twin以及我们这个服务Azure Digital Twins中的Twin, 如何理解Twin? 其实完全可以使用另外一个名称逻辑对象, 例如: Device Twin -> 逻辑设备, Module twin -> 逻辑模块, Azure Digital Twins 就可以理解为实体资产在计算机信息系统中的逻辑对应,实体资产的数字化。
为了更好的理解整个服务,我们单独使用一个小结来描述一下Azure Digital Twins服务的专用术语。
DTDL Model
基于语言JSON-LD-Base Digital Twin Definition Language (DTDL)创建的模型,称为DTDL Model, 需要注意的是DTDL是一种标准语言,并不是服务Azure Digital Twins服务所专有的。如果想了解DTDL标准定义,您可以访问:https://github.com/Azure/opendigitaltwins-dtdl/blob/master/DTDL/v2/dtdlv2.md。
同时需要注意的是Azure Digital Twins使用DTDL语言定义数字模型,但是Azure Digital Twins并不支持所有的DTDL特性,例如:不支持可写属性, DTDL命令等等。
DTDL Model可以包含的元素
DTDL Model是使用JSON格式表示信息,Azure Digital Twins模型需要遵守一些特定的规则,在模型中顶级定义的项目必须是Interface, 该类型定义了整个模型。
每个模型可以包含如下的一些字段:
Property: 属性,需要注意的是属性字段是保存在Azure Digital Twins服务实例中。Telemetry: 遥测数据,服务不保存该类型的数据。Relationship: 关系映射。Component: 组件。
给一个例子大家直观的感受一下,一个模型是如何定义的:
{ "@id": "dtmi:com:adt:dtsample:home;1", "@type": "Interface", "@context": "dtmi:dtdl:context;2", "displayName": "Home", "contents": [ { "@type": "Property", "name": "id", "schema": "string" }, { "@type": "Relationship", "@id": "dtmi:com:adt:dtsample:home:rel_has_floors;1", "name": "rel_has_floors", "displayName": "Home has floors", "target": "dtmi:com:adt:dtsample:floor;1" } ] }
以上个字段的含义我们之后再介绍,如果大家想尽快的得到解释,您可以访问:https://docs.microsoft.com/en-us/azure/digital-twins/concepts-models
Ontologies
我们之前的文章中介绍过服务Azure Digital Twins通过创建数字模型,以及数字twin, 并与之关联,形成Twin Graph, 通过这些概念一起来完成整个数字化建模。 微软联合各领域的专家,预先为某些标准领域已经创建了数字化模型,用户可以直接使用这些模型,这些预定义模型称为Ontologies, 更详细的介绍,您可以参考:https://docs.microsoft.com/en-us/azure/digital-twins/concepts-ontologies
Digital Twin和Twin Graph
在使用DTDL Model创建模型并上传到Azure Digital Twin中后,您可以使用模型来创建实体对象的数字映射了,这称之为Digital Twin, Digital Twin和Model之间的关系很类似于类和对象的关系,模型定义类型,Digital Twin定义实际的指向,或者映射。同时我们需要注意到我们在定义模型的时候可以定义关系映射,在创建Digital Twin之后,也可以创建关系映射,Digital Twin和他们之间的关系映射就形成了Twin Graph, 我们可以称之为数字对象的关系映射图,当然简单点,就是Twin Graph。
Query Language
为了使用我们定义好的数字化关系,Azure专门提供的类似SQL的查询语言,需要注意的是,它仅仅可以查询属性, 模型,关系映射,关系映射的属性几类。
Query Unit -> QU
这是一个度量单位,被微软用于统计用户查询服务时所耗费的成本,它综合了用户一个查询可能耗费的CPU, 内存,网络带宽等等,主要功能时用于计费的,向用户收费的一个标准。
Data ingress and egress
我们需要理解的是Azure Digital Twin服务在整个数字化方案中仅仅是其中一环,因此在这个服务中它是需要接收数据输入和数据输出的,最为典型的例子是,例如从Azure IoT Hub中输入事件和遥测数据,同时将一些数据输出其他的服务中,例如,输出到Azure Data Explorer,可以用于查询历史数据,输出到Azure Synapase Analytics中用于数据分析等等。
Data Ingress指向该服务中输入数据。Data egress指从该服务中输出数据。
Endpoint 和 Event Route
之前我们有提及数据输入和输出,这两个概念专门用于数据输出,Endpoint用于定义可以输出的服务类型,目前支持:
Event GridEvent HubService Bus
Event Route用于定义事件路由。
主要的术语介绍就到这里结束了,从下一个小结开始,我们会从创建本实例开始到设置本地环境,演示如何开始使用该服务以及提供的工具。