如何使用基于分区键的 Azure 流分析查询数据
Posted
技术标签:
【中文标题】如何使用基于分区键的 Azure 流分析查询数据【英文标题】:How query data with azure stream analytics based on partition key 【发布时间】:2019-09-27 09:20:35 【问题描述】:我正在按照以下格式将数据发送到流媒体。
[
"body":
"indice":"NIFTY 50",
"advances":"13"
,
"applicationProperties":
"id":3
,
"partitionKey":"pk788",
"EventProcessedUtcTime":"2019-09-27T09:11:18.4997132Z",
"PartitionId":1,
"EventEnqueuedUtcTime":"2019-09-27T09:11:10.3310000Z"
,
"body":
"symbol":"BAJFINANCE",
"tradedQuantity":"16,00,866"
,
"applicationProperties":
"id":2
,
"partitionKey":"pk787",
"EventProcessedUtcTime":"2019-09-27T09:11:18.4997132Z",
"PartitionId":1,
"EventEnqueuedUtcTime":"2019-09-27T09:11:10.3310000Z"
]
我尝试使用以下查询查询此数据的位置
Select * from NSEStockInput
where partitionKey = 'pk788'
我收到如下错误 发生了意外错误。请打开支持票以调查并提供以下客户端请求 ID:未定义 如何解决这个问题
【问题讨论】:
您应该通过如下工具运行您发送的有效负载:jsonlint.com 以确保 json 有效。 【参考方案1】:看起来您的示例不是有效的 Json。您能否尝试删除第二个“body”属性旁边的“[”。
【讨论】:
JSON 有效负载实际上似乎有很多问题,您可以修改此答案以解决其余问题吗?【参考方案2】:通过更正 JSON 语法错误,我得到了消息格式:
[
"body":
"indice":"NIFTY 50",
"advances":"13"
,
"applicationProperties":
"id":3
,
"partitionKey":"pk788",
"EventProcessedUtcTime":"2019-09-27T09:11:18.4997132Z",
"PartitionId":1,
"EventEnqueuedUtcTime":"2019-09-27T09:11:10.3310000Z"
,
"body":
"symbol":"BAJFINANCE",
"tradedQuantity":"16,00,866"
,
"applicationProperties":
"id":2
,
"partitionKey":"pk787",
"EventProcessedUtcTime":"2019-09-27T09:11:18.4997132Z",
"PartitionId":1,
"EventEnqueuedUtcTime":"2019-09-27T09:11:10.3310000Z"
]
您可以使用以下查询来提取 partitionKey:
with inputStream as (select input.* from input)
SELECT *
INTO Output
FROM inputStream
WHERE partitionKey = 'pk788'
【讨论】:
以上是关于如何使用基于分区键的 Azure 流分析查询数据的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 azure 流分析根据输出/blob 存储中的数据仅插入不同的行?