GetMetadataPropertyValue

✅ Azure Stream Analytics ✅ Fabric Eventstream

Kueri memasukkan data untuk properti tertentu. Ada tiga jenis properti: Adapter, Pengguna, dan EventId Unik.

Properti metadata adaptor

Properti khusus input tertentu dapat diakses oleh fungsi GetMetadataPropertyValue. Selain itu, semua properti dapat diakses sebagai satu rekaman.

Nota

Saat ini, fungsi ini tidak dapat diuji di portal Microsoft Azure (fungsi ini akan mengembalikan hasil kosong). Anda dapat menggunakan ekstensi ASA untuk Visual Studio Code untuk menguji fungsi ini dalam kueri Anda menggunakan data langsung.

Properti metadata default untuk Azure Event Hubs

  • EventEnqueuedUtcTime
  • EventProcessedUtcTime
  • PartitionId
  • Offset
  • Nomor Urut
  • PartitionKey
  • Publisher, jika tersedia dalam peristiwa masuk

Contoh:

Ambil EventEnqueuedUtcTime dari Azure Event Hubs:

SELECT GetMetadataPropertyValue(ehInput, '[EventHub].[EventEnqueuedUtcTime]') AS mytime FROM ehInput

SELECT GetMetadataPropertyValue(ehInput, 'EventHub') AS myEHPropertiesRecord FROM ehInput

Properti IoT Hub saat dirutekan ke titik akhir Azure Event Hubs

Saat menggunakan fitur perutean IoT Hub ke titik akhir Azure Event Hubs, properti metadata akan tersedia dengan membaca properti dari Azure Event Hubs. Dalam hal ini properti berikut yang dapat diambil:

  • IoTConnectionDeviceId
  • IoTAuthMethod
  • IoTAuthGenerationId
  • IoTEnqueueTime
  • IoTMessageSource
  • IoTConnectionModuleId
  • IoTInterfaceName

Contoh: SELECT GetMetadataPropertyValue(ehInput, '[EventHub].[IoTConnectionDeviceId]') AS myIoTDeviceId FROM ehInput

Properti yang ditambahkan melalui pengayaan pesan IoT Hub dapat diambil melalui properti pengguna.

Properti metadata default untuk IoT Hub

  • ConnectionDeviceId

  • AuthMethod

  • AuthGenerationId

  • EnqueueTime

  • MessageSource

  • ConnectionModuleId

  • InterfaceName

  • CorrelationId

  • ID Pesan

  • ConnectionDeviceGenerationId

Contoh:

Ambil EnqueuedTime dari IoT Hub:

SELECT GetMetadataPropertyValue(iotInput, 'IoTHub.EnqueuedTime') AS myEnqueuedTime FROM iotInput

SELECT GetMetadataPropertyValue(iotInput, 'IoTHub') AS iotRecord FROM iotInput

Properti metadata default untuk input Blob:

  • BlobName
  • BlobLastModifiedUtcTime
  • PartitionId

Contoh SELECT GetMetadataPropertyValue(blobInput, 'BlobName') AS myBlobName FROM blobInput

Properti pengguna

Properti pengguna kustom yang disebut SenderClientId yang diatur pada pesan EventHub/IoT/Blob masuk dibuat dapat diakses menggunakan GetMetadataPropertyValue, seperti yang ditunjukkan pada contoh di bawah ini.

Selain itu, properti kembar dan properti yang diperkaya yang ditambahkan menggunakan pengayaan pesan IoT Hub, juga dapat diambil menggunakan GetMetadataPropertyValue.

Contoh

Untuk mengkueri dari input Pusat Aktivitas,
SELECT Name, GetMetadataPropertyValue(ehInput, '[User].[SenderClientId]') FROM ehInput

Untuk mengkueri dari input IoT Hub,
SELECT Name, GetMetadataPropertyValue(iotInput, '[User].[SenderClientId]') FROM iotInput

Untuk mengkueri dari input Blob,
SELECT Name, GetMetadataPropertyValue(blobInput, '[User].[SenderClientId]') FROM blobInput

Untuk mendapatkan semua properti pengguna sebagai rekaman,

Untuk Pusat Aktivitas:
SELECT Name, GetMetadataPropertyValue(ehInput, '[User]') AS userprops FROM ehInput

Untuk IoT Hub:
SELECT Name, GetMetadataPropertyValue(iotInput, '[User]') AS userprops FROM iotInput

Untuk input Blob:
SELECT Name, GetMetadataPropertyValue(blobInput, '[User]') AS userprops FROM blobInput

Properti EventId unik

Properti EventId membuat ID unik (Guid) untuk peristiwa input, yang dapat berguna untuk tujuan kunci utama. EventId konsisten (tidak acak); jika Anda kembali ke waktu dan membaca ulang peristiwa input yang sama, Azure Stream Analytics akan menghasilkan ID yang sama.

Contoh

SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey FROM ehInput

Batasan dan Pembatasan

GetMetadataPropertyValue memiliki batasan penggunaan berikut:

  • Menggunakan SELECT * dalam kueri Anda menyebabkan kolom duplikat. Untuk mencegah kolom duplikat, cantumkan kolom satu per satu dalam pernyataan SELECT Anda.

  • Alias yang Anda berikan pada Nilai Properti Metadata Anda akan menjadi huruf kecil terlepas dari casing yang digunakan dalam kueri Anda. Misalnya, SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey output sebagai eventprimarykey. Untuk mempertahankan casing, gunakan tingkat kompatibilitas 1.2.

  • Fungsi ini tidak berfungsi di panel hasil pratinjau portal Microsoft Azure, termasuk fungsi kueri pengujian.

  • Ganti nama bidang payload origial sebelum data tiba di ASA. Nama bidang payload akan ditimpa jika sama dengan nama bidang metadata sistem.

  • MessageId dan CorrelationId metadata peristiwa EventHub tidak didukung.