В чем суть, у меня запрос, который выгружает большой объем данных. Запрос формирует таблицу примерно из 60 строк, в каждой строке таблица (из 1 столбца), в которой около 3000 строк. Вот скриншот:
И вот в таком виде, все работает отлично. И очень быстро, такой объем (в таком вот виде) он выгружает за 2-3 минуты максимум. Выгружает в таком виде в Excel.
НО, мне нужны сами данные из каждой таблицы, в идеале нужно сводить их в 1 таблицу. Именно это я спрашивал здесь и мне порекомендовали вот такой
Способ этот работает, все оке, НО очень муторно из-за Table.Combine, поскольку эта функция по сути создает новую таблицу в памяти с количеством строк 60*3000, способ занимает примерно минут 40-50 на данный объем данных (60 строк в каждой строке - таблица 1 столбец, 3000 строк), в зависимости от мощности компьютера. Table.ExpandTableColumn по сути делает тоже самое, да немного быстрее, но все равно очень медленно цифры по времени тоже около 40 минут.
Я попробовал другой вариант, каждую таблицу (на каждой из 60 строк) я привел в максимально комфортный и удобный мне вид, таким образом, чтобы потом их просто все вместе свести. Сведение сделал через простую функцию.
Код |
---|
Fun_ = (table, n) => let Tab = if n < r then Table.Join(table,{"DATE"},Tables_Total[List_Total]{n},{"DATE"}) else table in if n = r-1 then Tab else @Fun_(Tab, n+1) |
Думаю суть понятна, начиная с 1 строки столбца, где все мои таблицы, я их начинаю объединять каждый раз добавляя новую таблицу через переменную "n". На выходе получаю объединенную таблицу. И пока этот способ самый быстрый, минут за 20 он все делает. НО, хочется быстрее. Отсюда 2 вопроса
1) Как раз теоретический. Почему в ситуации, когда я не разворачиваю таблицы, а просто загружаю их в таком виде
2) Собственно все тот же вопрос. Как мне максимально быстро свести все данные в 1 таблицу (т.е. у меня есть столбец, в каждой строке которого еще таблица в 1 столбец, нужно просто все это объединить). Может есть какие-то еще варианты о которых я не знаю? Я просмотрел документацию по PQ, ответа не нашел. Пробовал функцию Table.FromColumns (ну т.е. сводил все столбцы в 1 таблицу) - по времени также как функция. Около 20 минут. Желательно бы быстрее(
Спасибо за помощь!