我有一个天蓝色的数据浏览器作为 IaC ARM 定义的一部分。除此之外,我还有一个带有格式和映射规则的脚本

问题描述 投票:0回答:1

脚本作为参数(字符串)传入。当我运行部署时,管道无法解析脚本并抛出错误。我尝试在“JsonTelemetryMapping”中使用转义或单引号。那并没有解决我的问题。下面的脚本在双引号“”内使用,并作为脚本资源代码块内的参数传递。我不确定我做错了什么。正文如下:

.create table telemetry (

                DeviceId: string,
                CreationDateTime: datetime,
                Data: dynamic
            )
            .alter table telemetry policy streamingingestion enable
            .create table telemetry ingestion json mapping 'JsonTelemetryMapping'
            '['
            '{"Column": "DeviceId", "Properties": {"Path": "$.DeviceId"}}',
            '{"Column": "CreationDateTime", "Properties": {"Path": "$.iothub-enqueuedtime"}}',
            '{"Column": "Data", "Properties": {"Path": "$"}}'
            ']'

我使用了转义,但没有效果。

formatting azure-resource-manager azure-data-explorer adx
1个回答
0
投票

您遇到的错误是由于在脚本块内构造 JSON 映射字符串时错误的字符串连接或转义造成的。

当整个脚本使用双引号,然后尝试在其中包含 JSON 映射时,需要转义引号和括号等特殊字符。

我使用此 MsDOC 将 JSON 格式的数据提取到 Azure 数据资源管理器中。学习

.create table telemetry (
    DeviceId: string,
    CreationDateTime: datetime,
    Data: dynamic
)

enter image description here

.create table telemetry ingestion json mapping 'JsonTelemetryMapping' '[{\"Column\":\"DeviceId\",\"Properties\":{\"Path\":\"$.DeviceId\"}},{\"Column\":\"CreationDateTime\",\"Properties\":{\"Path\":\"$.iothub-enqueuedtime\"}},{\"Column\":\"Data\",\"Properties\":{\"Path\":\"$\"}}]'

enter image description here

在 JSON 映射中,字符串内的每个双引号

"
都需要使用反斜杠
\
进行转义。

我使用此 MSDOC 在 Azure Data Explorer 中创建 IoT 中心数据连接。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.