Головоломка Azure Stream Analytics GetRecordPropertyValue - PullRequest
0 голосов
/ 30 августа 2018

Может ли кто-нибудь легко определить, что я здесь не так делаю?

Я использую запрос ниже:

SELECT
    GetArrayElement(Requests.context.custom.dimensions, 0),
    GetType( GetArrayElement(Requests.context.custom.dimensions, 0)),
    GetRecordPropertyValue(GetArrayElement(Requests.context.custom.dimensions, 0), "Response-Body")
INTO
    PowerBICreateScheduleDurations
FROM
    AppInsightsIncomingRequests AS Requests

Для анализа этого входного файла:

{ "запрос": [{ "id": "dff22190-ecc8-44d2-aa3f-453c3d533c4d", "название": "", "считать": 1, "responseCode": 401, «успех»: ложь, "url": "", "urlData": { "база": "", "host": "", "хэштег": "", "протокол": "https" }, "durationMetric": { «значение»: 4786,0, «количество»: 1,0, "мин": 4786,0, «макс»: 4786,0, "stdDev": 0,0, "sampledValue": 4786,0 } } ], "внутренний": { "данные": { "id": "f0b0f800-ab16-11e8-89c8-ed6412963258", "documentVersion": "1,61" } }, "контекст": { "данные": { "eventTime": "2018-08-28T23: 05: 54.8884157Z", "isSynthetic": ложь, "samplingRate": 100,0 }, "облако": {}, "устройство": { "тип": "ПК", "roleName": "", "roleInstance": "", "разрешение экрана": {} }, "сессия": { isFirst: false }, "операция": { "id": "dff22190-ecc8-44d2-aa3f-453c3d533c4d", "parentId": "dff22190-ecc8-44d2-aa3f-453c3d533c4d", "название": "" }, "место нахождения": { "clientip": "0.0.0.0", "континент": "Северная Америка", "страна": "Соединенные Штаты" }, "обычай": { "размеры": [{ «Response-Body»: «ответ 0» }, { «Название операции»: «» }, { "ApimanagementRegion": "" }, { "ApimanagementServiceName": "" }, { «Кеш»: «Нет» }, { "Имя API": "" }, { «Метод HTTP»: «GET» } ], "метрика": [{ «Размер ответа»: { «количество»: 1,0, «макс»: 343,0, «мин»: 343,0, "sampledValue": 343,0, "stdDev": 0,0, «сумма»: 343,0, «значение»: 343,0 } }, { «Размер запроса»: { «количество»: 1,0, «макс»: 0,0, «мин»: 0,0, «sampledValue»: 0,0, "stdDev": 0,0, «сумма»: 0,0, «значение»: 0,0 } }, { «Время клиента (в мс)»: { «количество»: 1,0, «макс»: 0,0, «мин»: 0,0, «sampledValue»: 0,0, "stdDev": 0,0, «сумма»: 0,0, «значение»: 0,0 } } ] } } }

Требуемое поведение для строки GetRecordPropertyValue... для извлечения строки «response 0», но она возвращает ноль. Загруженный вывод ниже:

[{
        "getarrayelement": {
            "Response-Body": "response 0"
        },
        "gettype": "record",
        "getrecordpropertyvalue": null
    }
]

1 Ответ

0 голосов
/ 30 августа 2018

Пожалуйста, измените ваш запрос, чтобы использовать одинарные кавычки вокруг 'Response-Body'. В SQL двойные кавычки используются для экранирования имен столбцов (аналогично []), поэтому ваш запрос интерпретируется как столбец с именем «Response-Body» вместо строковой константы «Response-Body»

ВЫБРАТЬ GetArrayElement (Requests.context.custom.dimensions, 0), GetType (GetArrayElement (Requests.context.custom.dimensions, 0)), GetRecordPropertyValue (GetArrayElement (Requests.context.custom.dimensions, 0), «Тело ответа») В PowerBICreateScheduleDurations ОТ AppInsightsIncomingRequests AS Requests

...