来自 App Insights BLOB 的流分析无法运行:GetArrayElement“不支持表达式”
Posted
技术标签:
【中文标题】来自 App Insights BLOB 的流分析无法运行:GetArrayElement“不支持表达式”【英文标题】:Stream Analytics from App Insights BLOB failing to run : GetArrayElement "Expression is not supported" 【发布时间】:2019-09-13 16:44:15 【问题描述】:上下文:我基本上是在尝试将 Application Insights 中的数据导入 Power BI。这需要包括长期趋势分析,因此我(按照指示)尝试设置连续导出并使用流分析将其导出到 Power BI 数据集。
我的第一个(非常基本的)测试成功了,但现在我尝试通过提取一些自定义维度(称为“SP_Page_Topic”)稍微提高复杂性,但我不断收到以下错误:
“流作业失败:流分析作业存在验证错误:查询编译错误:不支持表达式:'GetArrayElement(context.custom.dimensions, 0).SP_Page_Topic'..”,
从查询生成器的“测试”功能中可以正常工作,我可以看到输出的预览,它看起来都正确且良好。
但是当流分析作业运行时,我只是一遍又一遍地收到这个错误。
注意 - 这是我在流分析中的查询:
WITH Step1 AS (
SELECT
context.operation.name as PageUrl,
context.data.eventTime as EventTime,
context.device.type as DeviceType,
context.device.osVersion as OSVersion,
context.device.browser as Browser,
context.device.browserVersion as BrowserVersion,
context.location.continent as Region,
context.location.country as Country,
GetArrayElement(context.custom.dimensions, 0).SP_Page_Topic as Topic
FROM
[AllInput]
)
SELECT * INTO [PageViewOutput]
FROM Step1
【问题讨论】:
【参考方案1】:您必须再添加一个步骤以避免引用 GetArrayElement 结果的属性。
WITH Step1 AS (
SELECT
context.operation.name as PageUrl,
context.data.eventTime as EventTime,
context.device.type as DeviceType,
context.device.osVersion as OSVersion,
context.device.browser as Browser,
context.device.browserVersion as BrowserVersion,
context.location.continent as Region,
context.location.country as Country,
GetArrayElement(context.custom.dimensions, 0) as Page
FROM
[AllInput]
),
Step2 AS (
SELECT
PageUrl,
EventTime,
DeviceType,
OSVersion,
Browser,
BrowserVersion,
Region,
Country,
Page.SP_Page_Topic as Topic
FROM Step1
)
SELECT * INTO [PageViewOutput]
FROM Step2
【讨论】:
以上是关于来自 App Insights BLOB 的流分析无法运行:GetArrayElement“不支持表达式”的主要内容,如果未能解决你的问题,请参考以下文章
text Azure App Insights Kubernetes日志
Azure Blob Storage V2,来自 Azure Function App 的异常 API 调用,升级后
从 Azure 存储流式传输 blob - 无法访问已关闭的流