ストリーム分析を使用して、Application Insights エクスポートを SQL テーブルに読み込もうとしています。
これらは私がキャプチャしようとしているカスタム イベントとメトリック イベントであるため、JSON の一部はカスタム イベントまたはメトリック イベント (例: TestMethod1) の「名前」であり、JSON は次のようになります。
{
"metric": [ ],
"internal":
.. host of other json data...
"context": {
"custom": {
"metrics":
[
{
"TestMethod1":
{
"value": 42.8207,
"count": 1.0,
"min": 42.8207,
"max": 42.8207,
"stdDev": 0.0
}
}
]
}
}
}
分析SQLのような言語を使用して、以下のような構文を使用してデータをSQLテーブルに転送しようとします(これは、これを達成するためにさまざまな方法と手段を試しています...)
SELECT A.internal.data.id as id
, dimensions.ArrayValue.EventName as eventName
, metrics.[value] as [value]
, A.context.data.eventTime as eventtime
, metrics.count as [count]
INTO
MetricsOutput
FROM AppMetrics A
CROSS APPLY GetElements(A.[context].[custom].[metrics[0]]) as metrics
CROSS APPLY GetElements(A.[context].[custom].[dimensions]) as dimensions
問題は、カスタム イベント名が原因で、[value] 列も [count] 列も入力されていないことです。現在、metrics.value で「そのような名前の列は存在しません」というエラーが発生しています。
どうすればこれを達成できるかについてのアイデアはありますか?
いくつかの異なるメソッドのメトリクスとカスタム イベントを出力したいのですが、列名は重要ではありません。ただし、アプリ インサイト エクスポートからの 1 つの BLOB ファイルには、5 つまたは 6 つの異なるカスタム イベントとメトリックのイベントが含まれます。
したがって、TestMethod1、TestMethod2、および TestMethod3 を含む 1 つの BLOB ファイルを作成し、その 1 つのファイルを解析してテーブルに入れることができます。コードやワーカー ロールに頼ることはありません。
よろしく