2016-02-24 2 views
1

Я использую рабочий стол Power BI для импорта данных из Azure Blob, а затем генерирую некоторые запросы для совместного использования на онлайн-портале. Один из моих промежуточных запросов генерирует таблицу [имя] [таблица] как:Power BI - динамически генерировать запросы

Query: ВСЕ ТАБЛИЦЫ

name | table 
-------------- 
name1 | Table1 
name2 | Table2 
name3 | Table3 

Имена являются уникальными (сгруппированным по имени в предыдущем шаге запроса), и все ссылки на таблицу указывают на таблицу, которую я хочу использовать в новом запросе. В настоящее время мне приходится вручную создавать новые запросы из каждой таблицы, а затем применить пользовательскую функцию запроса на источнике запроса, чтобы получить желаемый конечный запрос для экспорта, например .:

Запроса: NAME1

let 
    Source = #"ALL TABLES", 
    #"Name1" = DoSomething(Source, 0) 
in 
    #"Name1" 

Запрос: NAME2

let 
    Source = #"ALL TABLES", 
    #"Name2" = DoSomething(Source, 1) 
in 
    #"Name2" 

т.д.

Thi s сейчас нормально, поскольку мы настраиваем, у нас нет такого количества записей. Однако, как только мы начинаем вводить реальные данные в Azure Blob, количество строк и запросов, которые нам нужно генерировать, начнет расти, и сделать это вручную невозможно.

В идеале я бы смог добавить последний шаг к запросу ALL TABLES, который проходит через все строки и генерирует новые запросы из таблиц в них. Этот список также может измениться при каждом обновлении, поэтому в идеале это должно автоматически генерировать новые запросы, когда данные перезагружаются из Azure Blob.

Есть ли способ сделать это из запроса Power BI? В качестве альтернативы, может ли кто-нибудь, кто мог бы посмотреть, как сделать внешний скрипт, генерировать это в сильном BI-проекте (скажем, автоматизированный скрипт, выполняемый ежедневно с нашего сервера сборки)?

+0

Я не уверен, что вы пытаетесь выполнить со всеми этими запросами. Не могли бы вы пояснить, зачем вам нужен новый запрос для каждого из них? Если вы пытаетесь вставлять строки в группы (аналогично словарю на C#), вы можете просто использовать функцию List.Generate для возврата списка с каждой ячейкой, содержащей запись. Запись будет содержать ключевой столбец и список требуемых строк. Это будет один запрос. Затем вы можете использовать функцию «ссылочного запроса» (в меню правой кнопки мыши), чтобы получить нужный список на основе значения ключа. Вы можете обернуть это, если хотите, чтобы сделать его более удобным. –

+0

Таблица «все таблицы» в основном содержит все типы событий, которые мы отслеживаем, и ссылку на таблицу, определяющую каждый из их индивидуальных свойств. Поскольку каждый тип события имеет разные свойства, все это под одной таблицей делает его крайне редким, поэтому мы хотим иметь отдельную таблицу для каждого типа. Мне было интересно найти способ создания этих таблиц автоматически на рабочем столе Power BI, поэтому нам не нужно вручную обновлять их, когда новые события добавляются в нашу систему отслеживания. – Zepee

ответ

2

Для действительно динамических сред, подобных описанию, я бы рекомендовал использовать прямой источник запросов, такой как azure SQL, для загрузки ваших данных. Когда вы это сделаете, изменения схемы на вашем заднем конце будут немедленно доступны вашим пользователям без необходимости повторного создания запросов.

Если вы продолжаете движение по маршруту, вы не можете автоматически добавлять новые запросы к файлам рабочего стола Power BI. Когда вы добавляете новое событие, вам нужно будет отредактировать файл, добавить новый запрос и убедиться, что он добавлен в модель данных.

+0

У меня было ощущение, что это может быть так, но стоило проверить.Спасибо за вход! – Zepee