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 Grid
Event Hub
Service Bus
Event Route
用于定义事件路由。
主要的术语介绍就到这里结束了,从下一个小结开始,我们会从创建本实例开始到设置本地环境,演示如何开始使用该服务以及提供的工具。