Значения полей аналитики Azure Stream по умолчанию для пропущенных полей - PullRequest
0 голосов
/ 18 января 2019

У меня есть некоторые значения json, поступающие из источника данных IOT для потоковой аналитики. Они хотят изменить json в более поздней версии, чтобы иметь дополнительные поля, но более старые версии не будут иметь этих полей. Есть ли способ, которым я могу определить, что поле отсутствует, и установить для него значение по умолчанию, прежде чем оно попадет на выход? например, они хотели бы добавить e.OSversion, который, если он не существует, по умолчанию будет «неизвестно». Выходные данные - это база данных sql.

WITH MetricsData AS
(
    SELECT * FROM [MetricsData]
    PARTITION BY LID
    WHERE RecordType='UseList'
)

SELECT
    e.LID as LID
    ,e.EventEnqueuedUtcTime AS SubmitDate
    ,CAST (e.UsedDate as DateTime) AS UsedDate
    ,e.Version as Version
    ,caUsedList.ArrayValue.Module AS Module
    ,caUsedList.ArrayValue.UsageCount AS UsedCount
INTO
    [ModuleUseOutput]
FROM
    Usagedata as e
CROSS APPLY getElements (e.UsedList) as caUsedList

1 Ответ

0 голосов
/ 21 января 2019

Пожалуйста, используйте case..when .. operator.

Пример:

select j.id, case when j.version is null then 'unknown' else j.version end as version
from jsoninput as j

Выход:

enter image description here

Или вы можете просто установить значение по умолчанию в столбце базы данных sql напрямую.

...