Страницы: 1
RSS
Кэширование запросов Power Query к веб странице для ускорения вывода на лист
 
Уважаемые знатоки, добрый день,
есть ли способ кэшировать результаты запроса PQ к веб странице для последующего вывода на лист?
Или может быть есть другой более эффективный способ получить данные?
При нескольких тысячах строк запрос выполняется достаточно долго, а при попытке загрузить данные на лист происходит обновление запроса и в итоге, к сожалению, запрос завершается ошибкой.

В запросе используется функция:
Код
let
    Источник = (link) => let
        Источник = Web.Page(Web.Contents(link)),
        #"Строки с примененным фильтром" = Table.SelectRows(Источник, each ([Source] = "Table")),
        #"Развернутый элемент Data" = Table.ExpandTableColumn(#"Строки с примененным фильтром", "Data", {"Column1", "Column2", "Column3"}, {"Column1", "Column2", "Column3"}),
        #"Условный столбец добавлен" = Table.AddColumn(#"Развернутый элемент Data", "Пользовательская", each if [Column2] = null then [Column3] else if [Column3] = null then [Column2] else null),
        #"Удаленные столбцы" = Table.RemoveColumns(#"Условный столбец добавлен",{"Column2", "Column3", "Id", "Caption", "Source", "ClassName"}),
        #"Транспонированная таблица" = Table.Transpose(#"Удаленные столбцы"),
        #"Повышенные заголовки" = Table.PromoteHeaders(#"Транспонированная таблица", [PromoteAllScalars=true])
    in
        #"Повышенные заголовки"
in
    Источник

Буду признателен за помощь.

 
Вопрос с загрузкой на лист решен. Помог ManualStatusHandling.
Но можно ли увеличить скорость обработки запроса?
 
Alexander123, так попробуйте
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Удаленные дубликаты" = Table.Distinct(Источник),
    #"Kept First Rows" = Table.FirstN(#"Удаленные дубликаты",50),
    #"Вызвана настраиваемая функция" = Table.AddColumn(#"Kept First Rows", "info", each let
   
    Source= Table.FromColumns({Lines.FromBinary(Web.Contents([Ссылка]))}),
    Value = Table.TransformColumns(Table.ReplaceValue(Table.ReplaceValue(Source,"<td>","",Replacer.ReplaceText,{"Column1"}),"</td>","",Replacer.ReplaceText,{"Column1"}), {{"Column1",Text.Trim}}),
    Custom1 = List.Buffer({"Год ввода в эксплуатацию","Детская площадка","Дом признан аварийным","Количество жилых помещений","Класс энергетической эффективности","Количество лифтов","Количество подъездов","Лифты","Наибольшее количество этажей","Наименьшее количество этажей","Площадь жилых помещений м","Площадь нежилых помещений м","Площадь помещений общего имущества м","Площадь зем. участка общего имущества м","Площадь парковки м","Серия, тип постройки здания","Спортивная площадка","Формирование фонда кап. ремонта","Тип дома","Количество вводов в дом, ед.","Объем выгребных ям, куб. м.","Вентиляция","Водоотведение","Система водостоков","Газоснабжение","Горячее водоснабжение","Система пожаротушения","Теплоснабжение","Холодное водоснабжение","Электроснабжение","Количество мусоропроводов, ед.","Несущие стены","Площадь подвала, кв.м","Крыша","Мусоропровод","Перекрытия","Фасад","Фундамент"})
    in Table.PromoteHeaders(Table.Transpose(Table.Skip(Table.Group(Value,{"Column1"},{{"All", each _[Column1]{1}}},0,(a,b)=>Number.From( List.Contains(Custom1,b[Column1]))),1)))),
    #"Развернутый элемент info" = Table.ExpandTableColumn(#"Вызвана настраиваемая функция", "info", {"Год ввода в эксплуатацию", "Детская площадка", "Дом признан аварийным", "Дополнительная информация", "Количество жилых помещений", "Класс энергетической эффективности", "Количество лифтов", "Количество подъездов", "Лифты", "Наибольшее количество этажей", "Наименьшее количество этажей", "Площадь жилых помещений м", "Площадь нежилых помещений м", "Площадь помещений общего имущества м", "Площадь зем. участка общего имущества м", "Площадь парковки м", "Серия, тип постройки здания", "Спортивная площадка", "Формирование фонда кап. ремонта", "Тип дома", "Оборудование", "Несущие стены", "Площадь подвала, кв.м", "Крыша", "Мусоропровод", "Перекрытия", "Фасад", "Фундамент", "Количество вводов в дом, ед.", "Объем выгребных ям, куб. м.", "Вентиляция", "Водоотведение", "Система водостоков", "Газоснабжение", "Горячее водоснабжение", "Система пожаротушения", "Теплоснабжение", "Холодное водоснабжение", "Электроснабжение"}, {"Год ввода в эксплуатацию", "Детская площадка", "Дом признан аварийным", "Дополнительная информация", "Количество жилых помещений", "Класс энергетической эффективности", "Количество лифтов", "Количество подъездов", "Лифты", "Наибольшее количество этажей", "Наименьшее количество этажей", "Площадь жилых помещений м", "Площадь нежилых помещений м", "Площадь помещений общего имущества м", "Площадь зем. участка общего имущества м", "Площадь парковки м", "Серия, тип постройки здания", "Спортивная площадка", "Формирование фонда кап. ремонта", "Тип дома", "Оборудование", "Несущие стены", "Площадь подвала, кв.м", "Крыша", "Мусоропровод", "Перекрытия", "Фасад", "Фундамент", "Количество вводов в дом, ед.", "Объем выгребных ям, куб. м.", "Вентиляция", "Водоотведение", "Система водостоков", "Газоснабжение", "Горячее водоснабжение", "Система пожаротушения", "Теплоснабжение", "Холодное водоснабжение", "Электроснабжение"})
in
    #"Развернутый элемент info"
 
Михаил Л, спасибо!
Страницы: 1
Наверх