Я хочу создать приложение, которое использует расширенные события для анализа использования моделей Azure Analysis Services. В частности, я хочу знать, какие меры и измерения используют конечные пользователи.
Я смотрю на событие QueryEnd и пытаюсь разобрать поле TextData. В зависимости от инструмента, используемого для запроса модели, я получаю MDX или DAX в TextData.
Я думаю, что мне удалось разобрать MDX с помощью этого регулярного выражения: ([[\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:
«Продукт» [Цвет] и «SalesOrderDetail» [Количество заказов]
И... как я узнаю, что количество заказов используется как мера, а цвет является атрибутом измерения продукта?..... думаю, я не буду?
Спасибо большое Николай