如何使用Stream Analytics Query呈现JSON

时间:2016-10-25 11:41:52

标签: azure azure-stream-analytics stream-analytics

我在Blob存储中存储了JSON形式的输入 我以SQL Azure表格的形式输出。

我的写入查询并成功将JSON中特定属性的值移动到相应的SQL Azure表列。

现在对于一个列,我想在一个sql列中将整个JSON有效负载复制为序列化字符串,我没有得到正确的库函数来执行此操作。

SELECT
     CASE 
        WHEN GetArrayLength(E.event) > 0
            THEN GetRecordPropertyValue(GetArrayElement(E.event, 0), 'name')
        ELSE ''
    END AS EventName 
    ,E.internal.data.id as DataId
    ,E.internal.data.documentVersion as DocVersion

    ,E.context.custom As CustomDimensionsPayload

Into OutputTblEvents
FROM InputBlobEvents E

CustomDimensionsPayload 实际上应该是JSON

2 个答案:

答案 0 :(得分:2)

我创建了一个用户定义的函数,它为我完成了这项工作:

SELECT udf.ConvertToJSONString(COLLECT()) AS InputJSON
INTO outputX
FROM inputY

然后,在Query中,我使用了这样的函数:

BehaviorSubject

答案 1 :(得分:0)

如果要转换整个有效负载,则只需引用输入对象本身而不是COLLECT()。我也想这样做,所以我想补充一下我所做的。

我使用了PerSchjetne建议的相同功能,查询便变为

SELECT udf.JSONToString(IoTInputStream)
INTO [SQLTelemetry]
FROM [IoTInputStream]

您的输出现在将是完整的JSON字符串,包括IOT中心添加的所有元数据额外内容。