在 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;郵箱:shuzhen.yu@foxmail.com
歡迎關注公眾號“雲計算實戰”,接收最新文章推送。
本作品由Sean Yu 采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議進行許可。
歡迎轉載、使用、重新發布,但務必保留文章鏈接:https://www.51azure.cloud,且不得用於商業目的。