GetMetadataPropertyValue (Azure Stream Analytics)

特定のプロパティの入力データをクエリします。 プロパティには、Adapter、User、および Unique EventId の3種類があります。

アダプターメタデータのプロパティ

GetMetadataPropertyValue 関数からは、特定の入力固有のプロパティにアクセスできます。 また、すべてのプロパティに1つのレコードとしてアクセスできます。

注意

現時点では、この関数を Azure portal でテストすることはできません (空の結果が返されます)。 Visual Studio tools for Stream Analytics を使用すると、 ライブデータを使用してクエリでこの関数をテストできます。

Event Hubs の既定のメタデータプロパティ

  • EventEnqueuedUtcTime
  • EventProcessedUtcTime
  • PartitionId
  • Offset
  • SequenceNumber
  • パーティション キー
  • 発行元 (受信イベントで使用可能な場合)

例 :

Event Hubs から EventEnqueuedUtcTime を取得します。

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

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

Event Hubs エンドポイントにルーティングされるときのプロパティの IoT Hub

IoT Hub ルーティング機能を使用してエンドポイントを Event Hubs する場合、Event Hubs からプロパティを読み取ることでメタデータプロパティを使用できます。 この場合は、次のプロパティを取得できます。

  • IoTConnectionDeviceId
  • IoTAuthMethod
  • IoTAuthGenerationId
  • IoTEnqueueTime
  • Iotの "Ource"
  • IoTConnectionModuleId
  • IoTInterfaceName

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

IoT Hub の既定のメタデータプロパティ

  • ConnectionDeviceId

  • AuthMethod

  • AuthGenerationId

  • EnqueueTime

  • [MessageSource]

  • ConnectionModuleId

  • InterfaceName

  • CorrelationId

  • MessageId

  • ConnectionDeviceGenerationId

例 :

IoT Hub から EnqueuedTime を取得します。

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

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

Blob 入力の既定のメタデータプロパティ:

  • BlobName
  • BlobLastModifiedUtcTime
  • PartitionId

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

ユーザー プロパティ

次の例に示すように、受信した EventHub/IoT/Blob メッセージで SenderClientId set というカスタムユーザープロパティに GetMetadataPropertyValue を使用してアクセスできるようになります。

さらに、 IoT Hub message 強化を使用して追加されたツインプロパティと拡充されたプロパティは、GetMetadataPropertyValue を使用して取得することもできます。

イベントハブの入力からクエリを実行するには、
SELECT Name, GetMetadataPropertyValue(ehInput, '[User].[SenderClientId]') FROM ehInput

IoT Hub 入力からクエリを実行するには、
SELECT Name, GetMetadataPropertyValue(iotInput, '[User].[SenderClientId]') FROM iotInput

Blob 入力からクエリを実行するには、
SELECT Name, GetMetadataPropertyValue(blobInput, '[User].[SenderClientId]') FROM blobInput

すべてのユーザープロパティをレコードとして取得するには、

イベントハブの場合:
SELECT Name, GetMetadataPropertyValue(ehInput, '[User]') AS userprops FROM ehInput

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

Blob 入力の場合:
SELECT Name, GetMetadataPropertyValue(blobInput, '[User]') AS userprops FROM blobInput

一意の EventId プロパティ

EventId プロパティは、入力イベントの一意の ID (Guid) を作成します。これは、主キーの目的で役立ちます。 EventId は一貫しています (ランダムではありません)。前に戻って同じ入力イベントをもう一度読み取ると、Stream Analytics によって同じ ID が生成されます。

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

制限事項と制約事項

GetMetadataPropertyValue の使用には次の制限があります。

  • クエリでを使用すると、重複する列が生成さ SELECT * れます。 列が重複しないようにするには、SELECT ステートメントで列を個別に一覧表示します。

  • メタデータプロパティの値を指定したエイリアスは、クエリで使用されている文字種に関係なく、小文字になります。 たとえば、は SELECT GetMetadataPropertyValue(ehInput, 'EventId') AS eventPrimaryKey として出力さ eventprimarykey れます。 大文字と小文字の区別を維持するには、互換性レベル1.2 を使用します。

  • この関数は、Azure portal プレビュー結果ペイン、Visual Studio、または VS Code ローカルクエリテストでは機能しません。 これは、ジョブがパブリッククラウドで実行されている場合にのみ機能します。