脚本作为参数(字符串)传入。当我运行部署时,管道无法解析脚本并抛出错误。我尝试在“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": "$"}}'
']'
我使用了转义,但没有效果。
您遇到的错误是由于在脚本块内构造 JSON 映射字符串时错误的字符串连接或转义造成的。
当整个脚本使用双引号,然后尝试在其中包含 JSON 映射时,需要转义引号和括号等特殊字符。
我使用此 MsDOC 将 JSON 格式的数据提取到 Azure 数据资源管理器中。学习
.create table telemetry (
DeviceId: string,
CreationDateTime: datetime,
Data: dynamic
)
.create table telemetry ingestion json mapping 'JsonTelemetryMapping' '[{\"Column\":\"DeviceId\",\"Properties\":{\"Path\":\"$.DeviceId\"}},{\"Column\":\"CreationDateTime\",\"Properties\":{\"Path\":\"$.iothub-enqueuedtime\"}},{\"Column\":\"Data\",\"Properties\":{\"Path\":\"$\"}}]'
在 JSON 映射中,字符串内的每个双引号
"
都需要使用反斜杠 \
进行转义。