Címkék hozzáadása digitális ikerpéldányokhoz
Ez a cikk bemutatja, hogyan adhat hozzá különböző típusú címkéket modellekhez és digitális ikerpéldányokhoz, és hogyan kérdezheti le a címkéket.
A címkék fogalmával tovább azonosíthatja és kategorizálhatja digitális ikerpéldányait. A felhasználók különösen a meglévő rendszerekből, például a Haystack Címkékből szeretnének címkéket replikálni az Azure Digital Twins-példányaikon belül.
Ez a dokumentum olyan mintákat ismertet, amelyek címkék digitális ikerpéldányokon való implementálásához használhatók.
A címkék először a digitális ikerpéldányt leíró modell tulajdonságaiként lesznek hozzáadva. Ez a tulajdonság ezután az ikerpéldányon lesz beállítva, amikor a modell alapján jön létre. Ezt követően a címkék a lekérdezésekben használhatók az ikerpéldányok azonosítására és szűrésére.
Jelölőcímkék
A jelölőcímke egy egyszerű sztring, amely egy digitális ikerpéldány megjelölésére vagy kategorizálására szolgál, például "kék" vagy "piros". Ez a sztring a címke neve, és a jelölőcímkéknek nincs jelentőségteljes értéke – a címke csak a jelenléte (vagy hiánya) miatt jelentős.
Jelölőcímkék hozzáadása a modellhez
A jelölőcímkék DTDL-térképként vannak modellve.string
boolean
A logikai mapValue
érték figyelmen kívül lesz hagyva, mivel a címke jelenléte minden, ami fontos.
Íme egy részlet egy ikermodellből, amely egy jelölőcímkét implementál tulajdonságként:
{
"@type": "Property",
"name": "tags",
"schema": {
"@type": "Map",
"mapKey": {
"name": "tagName",
"schema": "string"
},
"mapValue": {
"name": "tagValue",
"schema": "boolean"
}
}
},
Jelölőcímkék hozzáadása digitális ikerpéldányokhoz
Ha a tags
tulajdonság egy digitális ikerpéldány modelljének része, a tulajdonság értékének beállításával beállíthatja a jelölőcímkét a digitális ikerpéldányban.
Íme egy kódpéldája annak, hogyan állíthat be jelölőt tags
egy ikerpéldányhoz a .NET SDK használatával:
IDictionary<string, bool> tags = new Dictionary<string, bool>
{
{ "oceanview", true },
{ "VIP", true }
};
var twin = new BasicDigitalTwin
{
Metadata = { ModelId = "dtmi:example:Room;1" },
Contents =
{
{ "Temperature", 75 },
{ "tags", tags },
},
};
await client.CreateOrReplaceDigitalTwinAsync<BasicDigitalTwin>("myTwinID", twin);
Miután létrehozott egy ikerpéldányt a fenti példa szerint címketulajdonságokkal, az ikerpéldány a következőképpen fog kinézni:
{
"$dtId": "myTwinID",
"$etag": "W/\"e7429259-6833-46b4-b443-200a77a468c2\"",
"$metadata": {
"$model": "dtmi:example:Room;1",
"Temperature": {
"lastUpdateTime": "2021-08-03T14:24:42.0850614Z"
},
"tags": {
"lastUpdateTime": "2021-08-03T14:24:42.0850614Z"
}
},
"Temperature": 75,
"tags": {
"VIP": true,
"oceanview": true
}
}
Tipp.
Az ikerpéldány JSON-ábrázolását a parancssori felülettel vagy API-kkal való lekérdezéssel tekintheti meg.
Lekérdezés jelölőcímkékkel
Miután hozzáadta a címkéket a digitális ikerpéldányokhoz, a címkék segítségével szűrheti az ikerpéldányokat a lekérdezésekben.
Az alábbiakban egy lekérdezést talál, amely lekérdezi a "piros" címkével ellátott összes ikerpéldányt:
SELECT * FROM DIGITALTWINS WHERE IS_DEFINED(tags.red)
Összetettebb lekérdezésekhez is kombinálhat címkéket. Az alábbiakban egy lekérdezést talál, amely lekéri az összes kerek ikerpéldányt, és nem pirosat:
SELECT * FROM DIGITALTWINS WHERE NOT IS_DEFINED(tags.red) AND IS_DEFINED(tags.round)
Értékcímkék
Az értékcímke egy kulcs-érték pár, amely az egyes címkék értékének adására szolgál, például "color": "blue"
vagy "color": "red"
. Az értékcímke létrehozása után a címke értékének figyelmen kívül hagyásával jelölőcímkeként is használható.
Értékcímkék hozzáadása a modellhez
Az értékcímkéket DTDL-leképezésként modellezheti a rendszerstring
.string
Mind a mapKey
mapValue
kettő jelentős.
Íme egy részlet egy ikermodellből, amely tulajdonságként implementál egy értékcímkét:
{
"@type": "Property",
"name": "tags",
"schema": {
"@type": "Map",
"mapKey": {
"name": "tagName",
"schema": "string"
},
"mapValue": {
"name": "tagValue",
"schema": "string"
}
}
}
Értékcímkék hozzáadása digitális ikerpéldányokhoz
A jelölőcímkékhez hasonlóan az értékcímkét is beállíthatja egy digitális ikerpéldányban a tags
tulajdonság értékének a modellből való beállításával. Ha értékcímkét szeretne használni jelölőcímkeként, beállíthatja a tagValue
mezőt üres sztringértékre (""
).
Az alábbiakban két ikerpéldány JSON-testét láthatjuk, amelyek méretüknek megfelelően értékcímkéket tartalmaznak. A példában szereplő ikerpéldányok "piros" vagy "lila" értékcímkéket is tartalmaznak, amelyeket jelölőcímkékként használnak.
Iker 1. példa, nagy méretű értékcímkével és "piros" jelölőcímkével:
{
"$dtId": "Twin1",
"$etag": "W/\"d3997593-cc5f-4d8a-8683-957becc2bcdd\"",
"$metadata": {
"$model": "dtmi:example:ValueTags;1",
"tags": {
"lastUpdateTime": "2021-08-03T14:43:02.3150852Z"
}
},
"tags": {
"red": "",
"size": "large"
}
}
Iker 2. példa, kis méretű értékcímkével és "lila" jelölőcímkével:
{
"$dtId": "Twin2",
"$etag": "W/\"e215e586-b14a-4234-8ddb-be69ebfef878\"",
"$metadata": {
"$model": "dtmi:example:ValueTags;1",
"tags": {
"lastUpdateTime": "2021-08-03T14:43:53.1517123Z"
}
},
"tags": {
"purple": "",
"size": "small"
}
}
Lekérdezés értékcímkékkel
A jelölőcímkékhez hasonlóan értékcímkék használatával is szűrheti az ikerpéldányokat a lekérdezésekben. Értékcímkéket és jelölőcímkéket is használhat együtt.
A fenti red
példában jelölőcímkeként használjuk. Ne feledje, hogy ez egy lekérdezés, amely lekérdezi a "piros" címkével ellátott összes ikerpéldányt:
SELECT * FROM DIGITALTWINS WHERE IS_DEFINED(tags.red)
Az alábbiakban egy lekérdezést talál, amely lekérdezi az összes kis méretű entitást (értékcímkét), és nem pirosat:
SELECT * FROM DIGITALTWINS WHERE NOT IS_DEFINED(tags.red) AND tags.size = 'small'
Következő lépések
További információ a digitális ikermodellek tervezéséről és kezeléséről:
További információ az ikergráf lekérdezéséről: