来自 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“不支持表达式”的主要内容,如果未能解决你的问题,请参考以下文章

具有 Blob 存储输入的流分析作业未连续运行

text Azure App Insights Kubernetes日志

Azure Blob Storage V2,来自 Azure Function App 的异常 API 调用,升级后

从 Azure 存储流式传输 blob - 无法访问已关闭的流

markdown App Insights和Log Analytics SDK + CLI更新

App Insights:禁用 SQL 依赖遥测