Azure Veri Gezgini için Azure Digital Twins sorgu eklentisi

Bu makalede Azure Veri Gezgini için Azure Dijital İkiz sorgu eklentisi, Azure Veri Gezgini IoT verilerini Azure Digital Twins ile kullanma, Azure Veri Gezgini ile Azure Digital Twins arasında veri eşleme ve daha fazlası açıklanır.

Azure Veri Gezgini için Azure Digital Twins eklentisi, Azure Digital Twins grafı ve Azure Veri Gezgini zaman serisi veritabanlarında verilere erişen ve verileri birleştiren Azure Veri Gezgini sorguları çalıştırmanıza olanak tanır. Modellenmiş ortamların davranışı hakkında içgörüler elde etmek üzere dijital ikizler ve ilişkileri arasında mantık oluşturarak farklı zaman serisi verilerini bağlamsal hale getirmek için eklentiyi kullanın.

Örneğin, bu eklentiyle aşağıdakilere yönelik bir Kusto sorgusu yazabilirsiniz:

  1. Azure Digital Twins sorgu eklentisi aracılığıyla ilgi çekici dijital ikizleri seçer,
  2. Bu ikizleri Azure Veri Gezgini ilgili zaman serisine göre birleştirir ve ardından
  3. Bu ikizler üzerinde gelişmiş zaman serisi analizi gerçekleştirir.

Azure Digital Twins'deki bir ikiz grafiğindeki verileri Azure Veri Gezgini zaman serisi verileriyle birleştirmek, çözümünüzün çeşitli bölümlerinin çalışma davranışını anlamanıza yardımcı olabilir.

Eklentiyi kullanma

Eklentiyi bir Kusto sorgusunda aşağıdaki komutla çağırabilirsiniz. ve adlı iki yer tutucu <Azure-Digital-Twins-endpoint> vardır ve <Azure-Digital-Twins-query>bunlar sırasıyla Azure Digital Twins örnek uç noktasını ve Azure Digital Twins sorgusunu temsil eden dizelerdir.

evaluate azure_digital_twins_query_request(<Azure-Digital-Twins-endpoint>, <Azure-Digital-Twins-query>) 

Eklenti, Azure Digital Twins Sorgu API'sini çağırarak çalışır ve sorgu dili yapısı API'yi kullanırkenkiyle aynıdır ve iki özel durum vardır:

  • Yan * tümcesindeki SELECT joker karakter desteklenmez. Bunun yerine, eklenti kullanılarak yürütülen Azure Digital Twin sorguları yan tümcesinde SELECT diğer adları kullanmalıdır.

    Örneğin, API kullanılarak yürütülen aşağıdaki Azure Digital Twins sorgusunu göz önünde bulundurun:

    SELECT * FROM DIGITALTWINS
    

    Eklentiyi kullanırken bu sorguyu yürütmek için aşağıdaki gibi yeniden yazılmalıdır:

    SELECT T FROM DIGITALTWINS T
    
  • Eklenti tarafından döndürülen sütun adları ile $başlanmayabilir. Yan tümcesinde diğer adların SELECT kullanılması da bu senaryoyu önlemeye yardımcı olur.

    Örneğin, API kullanılarak yürütülen aşağıdaki Azure Digital Twins sorgusunu göz önünde bulundurun:

    SELECT T.$dtId, T.Temperature FROM DIGITALTWINS T
    

    Eklentiyi kullanırken bu sorguyu yürütmek için aşağıdaki gibi yeniden yazılmalıdır:

    SELECT T.$dtId as tid, T.Temperature FROM DIGITALTWINS T
    

Önemli

Kullanıcının Microsoft Entra belirteci kimlik doğrulaması için kullanıldığından eklentinin kullanıcısına Azure Digital Twins Veri Okuyucusu rolü veya Azure Digital Twins Veri Sahibi rolü verilmelidir. Bu rolün nasıl atanacağıyla ilgili bilgiler Azure Digital Twins çözümleri için Güvenlik bölümünde bulunabilir.

Eklentiyi kullanma hakkında daha fazla bilgi için azure_digital_twins_query_request eklentisi için Kusto belgelerine bakın.

Örnek sorguları görmek ve örnek verilerle bir izlenecek yolu tamamlamak için bkz. Azure Veri Gezgini için Azure Digital Twins sorgu eklentisi: GitHub'da örnek sorgular ve izlenecek yol.

Azure Digital Twins verilerini Azure Veri Gezgini alma

Eklentiyi sorgulamadan önce Azure Digital Twins verilerinizi Azure Veri Gezgini almanız gerekir. Bunu yapmanın iki ana yolu vardır: veri geçmişi özelliği aracılığıyla veya doğrudan alma yoluyla. Aşağıdaki bölümlerde bu seçenekler daha ayrıntılı olarak açıklanır.

Veri geçmişiyle alma

IoT verilerini Azure Digital Twins'den Azure Veri Gezgini'a almanın en basit yolu veri geçmişi özelliğini kullanmaktır. Bu özellik, Azure Digital Twins örneğiniz ile Azure Veri Gezgini kümesi arasında bağlantı kurmanızı sağlar ve grafik güncelleştirmeleri (ikiz özellik güncelleştirmeleri, ikiz yaşam döngüsü olayları ve ilişki yaşam döngüsü olayları dahil) kümeye otomatik olarak geçmişlenir. Dijital ikizlerinize hayat vermek için cihaz telemetri verilerini kullanıyorsanız bu iyi bir seçimdir. Bu özellik hakkında daha fazla bilgi için bkz. Veri geçmişi (Azure Veri Gezgini ile).

Doğrudan alım

IoT verilerini doğrudan IoT Hub'dan veya diğer kaynaklardan Azure Veri Gezgini kümenize almayı da tercih edebilirsiniz. Ardından Azure Digital Twins grafiği, ortak Azure Digital Twins/Azure Veri Gezgini sorguları kullanılarak zaman serisi verilerini bağlamsal hale getirmek için kullanılacaktır. Bu seçenek doğrudan alım iş yükleri için iyi bir seçimdir; ancak diğer ikizleri güncelleştirmek, aşağı akış hizmetlerini tetikleme veya ikizlerin durumu değiştiğinde bildirim göndermek için Azure Digital Twins'in olay tabanlı mimarisinden yararlanamazsınız. Bu işlem hakkında daha fazla bilgi için bu bölümün geri kalanından devam edin.

Azure Veri Gezgini ve Azure Digital Twins arasında veri eşleme

Zaman serisi verilerini doğrudan Azure Veri Gezgini'a aktarıyorsanız, bu ham zaman serisi verilerini ortak Azure Digital Twins/Azure Veri Gezgini sorguları için uygun bir şemaya dönüştürmeniz gerekebilir.

Azure Veri Gezgini güncelleştirme ilkesi, kaynak tabloya yeni veriler eklendiğinde verileri otomatik olarak dönüştürmenize ve hedef tabloya eklemenize olanak tanır.

Cihaz telemetri verilerinizdeki algılayıcı kimliği Azure Digital Twins'deki karşılık gelen ikiz kimliğinden farklıysa, ham zaman serisi verilerinizi ikiz kimliğiyle zenginleştirmek ve hedef tabloda kalıcı hale getirmek için bir güncelleştirme ilkesi kullanabilirsiniz. İkiz kimliği kullanılarak hedef tablo, Azure Digital Twins eklentisi tarafından seçilen dijital ikizlere karşı birleştirilebilir.

Örneğin, Azure Veri Gezgini örneğine akan ham zaman serisi verilerini tutmak için aşağıdaki tabloyu oluşturduğunuzu varsayalım.

.create-merge table rawData (Timestamp:datetime, someId:string, Value:string, ValueType:string)  

Zaman serisi kimliklerini ikiz kimlikleri ve diğer isteğe bağlı alanlarla ilişkilendirmek için bir eşleme tablosu oluşturabilirsiniz.

.create-merge table mappingTable (someId:string, twinId:string, otherMetadata:string) 

Ardından zenginleştirilmiş zaman serisi verilerini tutmak için bir hedef tablo oluşturun.

.create-merge table timeseriesSilver (twinId:string, Timestamp:datetime, someId:string, otherMetadata:string, ValueNumeric:real, ValueString:string)  

Ardından, ham verileri eşleme tablosuyla birleştirerek zenginleştirmek için bir işlev Update_rawData oluşturun. Bunu yaptığınızda elde edilen hedef tabloya ikiz kimliği eklenir.

.create-or-alter function with (folder = "Update", skipvalidation = "true") Update_rawData() { 
rawData 
| join kind=leftouter mappingTable on someId 
| project 
    Timestamp, ValueNumeric = toreal(Value), ValueString = Value, ... 
} 

Son olarak, işlevi çağırmak ve hedef tabloyu güncelleştirmek için bir güncelleştirme ilkesi oluşturun.

.alter table timeseriesSilver policy update 
@'[{"IsEnabled": true, "Source": "rawData", "Query": "Update_rawData()", "IsTransactional": false, "PropagateIngestionProperties": false}]' 

Hedef tablo oluşturulduktan sonra Azure Digital Twins eklentisini kullanarak ilgi çekici ikizleri seçebilir ve ardından hedef tablodaki zaman serisi verileriyle birleştirebilirsiniz.

Örnek şema

Aşağıda, paylaşılan verileri temsil etmek için kullanılabilecek bir şema örneği verilmişti. Örnek, ikiz özellik güncelleştirmeleri için Azure Veri Gezgini veri geçmişi şemasını izler.

TimeStamp SourceTimeStamp TwinId ModelId Name Value RelationshipTarget RelationshipID
2021-02-01 17:24 2021-02-01 17:11 ConfRoomTempSensor dtmi:com:example:TemperatureSensor;1 sıcaklık 301.0

Dijital ikiz özellikleri anahtar-değer çiftleri (name, value) olarak depolanır. name ve value dinamik veri türleri olarak depolanır.

Şema ayrıca ve relationshipID alanları başına ilişkilerin özelliklerini depolamayı relationshipTarget da destekler. Anahtar-değer şeması, her ikiz özelliği için bir sütun oluşturma gereksinimini önler.

Özellikleri birden çok alanla temsil etme

Şemanızda birden çok alan içeren bir özellik depolamak isteyebilirsiniz. Bu özellikler, şemanızda olduğu gibi value bir JSON nesnesi depolanarak temsil edilir.

Örneğin, roll, pitch ve yaw için üç alanı olan bir özelliği temsil etmek istiyorsanız, değer nesnesi şöyle görünür: {"roll": 20, "pitch": 15, "yaw": 45}.

Sonraki adımlar