在 Azure 數字孿生解決方案中,環境中的實體是由 數字孿生體 (digital twins)表示的。數字孿生體是模型(models)的一個個實例。
可以通過 關係(relationships) 將其連接到其他數字孿生體以形成 孿生圖(twin graph)。
在本文中,我們將創建:
兩個模型:房間room和溫溼度計myfirstmodel;
爲模型room創建兩個實例 room-01和room-02;
創建三個溫溼度計 實例device-001,device-002,device-003;
爲room-01 和device-001 ,device-002創建關係;
爲room-02 和device-003 創建關係;
通過查詢語僅查詢類型爲溫溼度計的孿生體;
視頻演示:
https://www.51azure.cloud/post/2021/4/19/azure-digital-twins-relationship-query-twin-graph
使用vs code 創建兩個模型:
第一個模型文件時是一個溫溼度計:
{
"@context": "dtmi:dtdl:context;2",
"@id": "dtmi:com:example:myfirstmodel;1",
"@type": "Interface",
"displayName": "myfirstmodel",
"contents": [
{
"@type": "Telemetry",
"name": "temperature",
"schema": "double"
},
{
"@type": "Property",
"name": "humidity",
"schema": "double"
},
{
"@type": "Property",
"name": "deviceStatus",
"schema": "string"
}
]
}
第二個模型文件是房間:
{
"@context": "dtmi:dtdl:context;2",
"@id": "dtmi:com:example:room;1",
"@type": "Interface",
"displayName": "room",
"contents": [
{
"@type": "Property",
"name": "deviceCount",
"schema": "integer"
},
{
"@type":"Relationship",
"name": "devices",
"target":"dtmi:com:example:myfirstmodel;1"
}
]
}
房間和溫溼度計之間的關係是1對多的,即一個房間裏可以有多個溫溼度計。
在room的dtdl中通過 @type =“Relationship”表示 兩個孿生體之間的關係,target 爲 溫溼度計的 id。
在ADT Explorer中上傳兩個模版,並生成一個 room實體,兩個溫溼度計實體:
按住shift,同時選中room和 一個溫溼度計,爲 room和溫溼度計創建關係:
source 選擇房間,target 選擇 溫溼度計,relationship選擇 devices,該值是在dtdl的json文件中設定的。
同樣的方式設置 room和另一個溫溼度計的關係:
點擊某個溫溼度計,可以看到 property 的值會在右側顯示,但是 telemetry的值並不會在右側顯示,這是DTDL規定的。
也可以在右側直接修改類行爲 property的值:
創建如下的數字孿生圖:
執行查詢:
select * from digitaltwins where IS_OF_MODEL ('dtmi:com:example:myfirstmodel;1')
查詢結果只有三個 溫溼度計,關於IS_OF_MODEL的作用,參考:
https://docs.microsoft.com/zh-cn/azure/digital-twins/how-to-query-graph?WT.mc_id=AZ-MVP-5003757
點擊可查閱本站文章目錄 《文章分類目錄》
本站所有內容僅代表個人觀點,如與官文檔衝突,請以官方文檔爲準。
可在本頁面下方留言或通過下方聯繫方式聯繫我:
微信:wxyusz;郵箱:[email protected]
歡迎關注公衆號“雲計算實戰”,接收最新文章推送。
本作品由Sean Yu 採用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。
歡迎轉載、使用、重新發布,但務必保留文章鏈接:https://www.51azure.cloud,且不得用於商業目的。