#azure-application-insights #azure-stream-analytics
#azure-application-insights #azure-stream-analytics
Вопрос:
Кажется, я не могу получить телеметрию доступности, отправленную в базу данных SQL Azure с помощью Stream Analytics. Ошибки нет. Просто данные не вставляются.
Ввод
У меня настроен ввод для расположения большого двоичного объекта, куда также экспортируется Application Insights. Я успешно протестировал это с помощью функции «Образцы данных»:
Вот пример из выборки извлеченных данных (обратите внимание, что я упростил содержимое):
[
{
"availability": [ {
"testRunId": "75e32865-36fa-4853-b9be-43e315a63f6e",
"testTimestamp": "2016-10-19T11:38:58.7370000Z",
"testName": "mytest-prod-pingtest",
"runLocation": "BR : Sao Paulo",
"durationMetric": {
"name": "duration",
"value": 14610000.0,
"count": 1.0,
"min": 14610000.0,
"max": 14610000.0,
"stdDev": 0.0,
"sampledValue": 14610000.0
},
"result": "Pass",
"count": 1
} ],
"internal": {...},
"context": {...},
"EventProcessedUtcTime": "2016-10-19T11:45:53.9144151Z"
}
]
Вывод
Выходные данные настраиваются для таблицы базы данных SQL Azure tt.AvailabilityRequests
. Тестирование завершено успешно:
Эта таблица имеет следующую схему:
CREATE TABLE [tt].[AvailabilityRequests](
[Id] [uniqueidentifier] NOT NULL DEFAULT (newsequentialid()),
[Timestamp] [datetime] NOT NULL,
[AppInsightsTestRunId] [varchar](max) NULL,
[TestName] [varchar](max) NULL,
[RunLocation] [varchar](max) NULL,
[IsSuccessful] [bit] NULL,
[DurationInMilliseconds] [int] NULL,
[InsertedDate] [datetime] NOT NULL DEFAULT (getdate())
)
Запрос
У меня настроен следующий запрос:
SELECT
Flat.ArrayValue.testTimestamp as [Timestamp],
Flat.ArrayValue.testRunId as [AppInsightsTestRunId],
Flat.ArrayValue.testName as [TestName],
Flat.ArrayValue.runLocation as [RunLocation],
CASE WHEN Flat.ArrayValue.result = 'Pass' THEN 1 ELSE 0 END as [IsSuccessful],
CAST(Flat.ArrayValue.durationMetric.value / Flat.ArrayValue.durationMetric.count / 10000 AS BIGINT) as [DurationInMilliseconds]
INTO
availabilityRequests
FROM
availability A
CROSS APPLY
GetElements(A.[availability]) as Flat
Я делаю аналогичную вещь с телеметрией запросов, и это работает просто отлично:
Комментарии:
1. У меня такая же проблема, удалось ли вам перенести какие-либо данные в SQL?
2. @AlexChoroshin к сожалению, нет. Будет держать вас в курсе
3. Я успешно перенес некоторые данные в SQL, это было связано с тем, как я построил свой шаблон пути ввода. можете ли вы отправить свой путь?
4. @AlexChoroshin Мой определяется как
myappinsights_xyz/Availability/{date}/{time}
сYYYY-MM-DD
в качестве формата даты иHH
в качестве формата времени. Но я не верю, что это моя проблема, поскольку я могу успешно извлекать «образцы данных». Ваш запрос случайно не отличается от моего?5. @AlexChoroshin Это дошло до моей колонки BIT. После изменения на INT все работает хорошо.
Ответ №1:
Stream Analytics не поддерживает тип «boolean»; BIT в SQL Server.
Данные передаются после изменения [IsSuccessful]
поля на [int]
.