如何使用Kusto Query提取「Measures」后的目标文本?
Kusto提取MDX字符串中的Measures成员
- 直接用
extract_all()函数搭配正则表达式即可解决,下面是具体实现:
示例查询
// 模拟包含MDX查询的数据源 datatable(mdx_query:string) [ "SELECT { [Measures].[cubeCount of Sales], [Measures].[Number of Product Categories] } ON COLUMNS FROM [SalesCube]" ] // 提取所有Measures后的成员名称 | extend extracted_measures = extract_all(@'\[Measures\]\.\[([^\]]+)\]', mdx_query)
关键说明
- 正则表达式
\[Measures\]\.\[([^\]]+)\]:\[Measures\]\.精准匹配MDX中固定的[Measures].前缀([^\]]+)捕获方括号[ ]之间的所有内容(也就是你要的Measures成员名称)
- 查询结果里的
extracted_measures列会返回数组:["cubeCount of Sales", "Number of Product Categories"]
适配特殊写法
如果你的MDX里Measures成员不带方括号(比如Measures.cubeCount of Sales),可以把正则改成Measures\.([^,]+),调整后的查询:
datatable(mdx_query:string) [ "SELECT { Measures.cubeCount of Sales, Measures.Number of Product Categories } ON COLUMNS FROM [SalesCube]" ] | extend extracted_measures = extract_all(@'Measures\.([^,]+)', mdx_query)
内容的提问来源于stack exchange,提问作者checkquery
相关产品推荐
相关产品推荐

