Я хочу создать приложение, которое использует расширенные события для анализа использования моделей служб аналитики Azure.
В частности, я хочу знать, какие меры и измерения используют конечные пользователи.
Я смотрю на событие QueryEnd и пытаюсь проанализировать поле TextData. В зависимости от инструмента, используемого для запроса модели, я получаю либо MDX, либо DAX в TextData.
Я думаю, что мне удалось проанализировать MDX с этим RegEx: ([[\ w] +]. [[\ W] +] (?:. (?: Members | [Q \ d]))?)
(из этого поста: Регулярное выражение для извлечения элемента из запроса MDX )
Теперь разбор DAX - это проблема. Если я запрашиваю модель из FX PowerBI, я получаю DAX, как это:
EVALUATE
TOPN(
502,
SUMMARIZECOLUMNS(
ROLLUPADDISSUBTOTAL('Product'[Color], \"IsGrandTotalRowTotal\"),
\"Order_Count\", 'SalesOrderDetail'[Order Count]
),
[IsGrandTotalRowTotal],
0,
[Order_Count],
0,
'Product'[Color],
1
)
ORDER BY
[IsGrandTotalRowTotal] DESC, [Order_Count] DESC, 'Product'[Color]
То, что я хотел бы сопоставить с RegEx:
'Product' [Color] и 'SalesOrderDetail' [Order Count]
И .... откуда мне знать, что Счетчик заказов используется в качестве меры, в то время как Цвет является атрибутом измерения Продукта? ..... думаю, я не буду?
Большое спасибо
Nicolaj