Илья Назаров
Илья Назаров
  • 16
  • 50 138
Генератор функций Power BI для работы с методами API: автоматическое создание удобных функций
Как создавать много красивых и дружелюбных функций Power Query для работы с разными API.
Постарался максимально упростить материал, чтобы люди с минимальными навыками программирования могли пользоваться генератором. Совсем без программирования не обойтись, но этого видео будет достаточно ua-cam.com/video/cPT2jLrGOXE/v-deo.html
Разумеется, советую посмотреть предыдущие видео из цикла про работу с API чтобы проще понимать происходящее.
Стараюсь идти от простого к сложному. Остановиться можно сразу же, как сделаете то, что планировали. Кому длинно - пользуйтесь таймкодами)
Ссылки из видео:
github.com/meta110/powerbi/tree/master/API-constructor - код конструктора
learn.microsoft.com/en-us/power-query/handling-documentation - про документирование функций
Дружественные ресурсы:
t.me/PBI_Rus - чат по Power Query M на русском
t.me/pbi_pq_from_tank - интересно про Power Query M на русском
Связь со мной:
video/playlist/13691332_2 - сюда постепенно перенесу все видео
t.me/IlyaNazarov - сразу пишите зачем обращаетесь
Таймкоды
0:00 приветствие
1:44 тема: простое создание функций для работы с API
3:50 используйте SQLite вместо Excel
4:25 путь к этому решению
8:05 схожесть и отличия API
9:10 общие принципы любых API
10:40 часто один API = много методов
12:50 как "зоопарк" функций доставляет неудобств
14:30 способ навести порядок
15:20 основа - второй аргумент функции Web.Contents
17:40 даны токены двух API
18:02 беру код из первого видео
19:20 как он работает
20:06 переделываю под новую функцию
20:45 один параметр, как options Web.Contents
23:05 API url и Name название метода
25:24 первый успешный запуск
27:38 создадим пользовательскую функцию
28:21 как type включает генератор функций и создает параметры
30:50 как не спрашивать ничего лишнего
32:30 как управлять интерфейсом функций в Power Query
33:58 Documentation.FieldCaption - задать название параметра
36:15 тип значения параметра влияет на элементы интерфейса
37:55 типы значений не проверяются
39:20 Documentation.AllowedValues - список допустимых значений для текста
41:10 как сделать список допустимых значений для списка
44:35 как обработать "неправильные" статусы ответа сервера
48:25 правильно сообщайте об ошибках сервера
50:05 ошибки сервера бывают полезны
52:05 default - значения по-умолчанию
55:05 modify - сразу форматируем пользовательские данные
57:12 включаем debug для отладки настроек
59:45 debug=false - просмотр параметров в виде таблицы до отправки запроса
1:05:06 debug=true - просмотр “сырого” ответа сервера
1:06:30 какая бывает пагинация
1:09.06 настроим пагинацию со смещением
1:10:30 где подсмотреть названия нужных полей
1:11:45 offsetField - указывает положение поля смещения внутри записи
1:14:20 dataValue - получает содержимое текущей страницы
1:15:50 delay - анти-спам задержка между запросами
1:16:35 offsetValue - смещение следующей страницы
1:21:40 paginate=true - включить пагинацию
1:26:15 неприятный сюрприз от Яндекс Диска с последствиями
1:36:40 реализую второй метод того же API
1:39:25 как добавить оба метода в одну функцию
1:43:50 появляется функция - селектор методов
1:46:40 убираю дублирующиеся настройки в шаблон
1:49:30 блок common - общая часть запроса
1:54:25 третий метод с пагинацией от того же API за 3,5 минуты
1:57:30 тюнинг поля offsetValue, или последствия сюрприза
1:59:45 пример, как программно создавать и документировать функции
2:06:18 тут лежит список всех возможных настроек
2:06:50 вспомогательная функция для документирования параметров
2:11:15 Documentation задаёт описание функции
2:13:10 четвёртый метод, но от другого API с нуля за 5,5 минут
2:18:40 организация групп методов для работы с разными API из одной функции
2:23:00 как работает преобразование в текст значений внутри полей Query и Headers
2:28:30 как задать свою логику преобразования Query и Content перед отправкой
2:30:40 как отработать ответ со статусом 200 и сообщением об ошибках
2:32:50 ответ на комментарий подписчика
2:34:14 заключение
Переглядів: 789

Відео

Сохранение таблиц Power BI в локальную базу данных с поддержкой инкрементального обновления
Переглядів 1,4 тис.Рік тому
Научитесь сохранять таблицы из Power BI в локальную базу данных (SQLite), которая: - не требует отдельной установки, настройки и обслуживания; - работает незаметно для непосвященных пользователей; - работает быстрее, чем промежуточный файл Excel или csv; - ей можно делиться, например, через облачные хранилища, а скрипт сам определит нужный путь к файлу базы данных на разных компьютерах; - позво...
Power Query: знакомство с языком M
Переглядів 4,8 тис.2 роки тому
Не знаете с какой стороны подойти к изучению языка M, встроенного в Power Query, а от чтения официального руководства Microsoft засыпаете? Тогда смотрите это видео! Вы узнаете, что всё в Power Query - это значения. Расскажу из чего состоят значения, какие у них бывают типы (и зачем они нужны) и зачем в них метаданные. Как выражения создают новые значения, какие бывают операторы и какой у них пр...
Рекурсия в Power Query на примере динамического создания типов таблиц. API в Power Query часть 3.2
Переглядів 1 тис.2 роки тому
Создаем функцию с рекурсией в Power Query, которая будет генерировать тип таблицы "на лету". Смотрим на практике как и зачем контролировать глубину рекурсии при работе с внешними источниками данных. Разбираем и собираем типы таблиц с помощью функций Power Query. В качестве бонуса помещаем новые названия колонок прямо внутрь типа таблицы, и переименовываем ответ API. Материал "со звездочкой". Пр...
Сложные типы значений в Power Query и их преобразования. Работа с API в Power Query часть 3.
Переглядів 8602 роки тому
В Power BI мы анализируем данные в виде таблиц, поэтому на выходе из Power Query нужны таблицы, составленные из значений простых (примитивных) типов. API часто возвращает JSON, где есть только значения сложных типов: списки и записи, но нет таблиц. Как из них создавать таблицы? Попробуем три способа: 1. Максимально задействуем кнопки и меню интерфейса Power Query 2. Пользуемся интерфейсом, но к...
API в Power Query часть 2: пагинация
Переглядів 2,3 тис.2 роки тому
В этом видео рассказываю что такое пагинация, для чего она используется в API, как автоматически запросить все существующие порции данных функцией List.Generate, а потом объединить их в одно целое. Еще вы узнаете какие бывают ограничения API и что наказанием за их нарушение может стать полная блокировка вашего аккаунта. Чтобы этого не допустить научимся пользоваться функцией Function.InvokeAfte...
Получение данных по API в Power Query для Power BI и Excel. Часть 1
Переглядів 15 тис.2 роки тому
Как начать работать с API в Power Query. Подробно о функции Web.Contents. Для широкого круга пользователей Power BI и Excel. Подробно про REST: клиенты и серверы. Как они используют HTTP-сообщения, чтобы обмениваться информацией. Структура URL и HTTP-сообщений. Методы запросов GET и POST, как их отправлять с помощью Power Query. Заголовки запросов и ответов, типы данных, их распаковка и упаковк...
Получение файлов из Яндекс Диск по API в Power BI
Переглядів 3,1 тис.2 роки тому
В видео рассказываю как с помощью API получить список файлов, находящихся на вашем Яндекс Диске, а потом загрузить нужные файлы в Power BI Прямая ссылка на коннектор: raw.githubusercontent.com/meta110/powerbi/master/Yandex Disk/AllGetMethods.pqm Мой телеграм t.me/IlyaNazarov Дополнительная информация по Power BI и Power Query на русском: Канал по Power BI: t.me/PBI_Rus/7 Канал по Power Query: t...
Загрузка отчётов по рекламе Вконтакте в Power BI или Excel
Переглядів 5544 роки тому
Как получить данные по работе рекламы Вконтакте напрямую в Power BI или Excel с нуля за 10 минут включая: - авторизацию в API VK с помощью постоянного токена - получение списка рекламных кабинетов - получение списка клиентов рекламных аккаунтов - получение списка кампаний и объявлений - получение статистики по рекламным кабинетам, клиентам, кампаниям, объявлениям - настройка периода времени и д...
Получение сырых данных Яндекс Метрики напрямую в Power BI новым коннектором
Переглядів 2,4 тис.4 роки тому
Как получить данные Logs API Яндекс Метрики напрямую в Power BI без использования серверов баз данных и дополнительных инструментов. Инструкция по работе с коннектором к сырым данным метрики и файлы для скачивания: meta110.github.io/powerbi/ Расскажу, как за 3 минуты настроить получение отчетов с сырыми данными Яндекс Метрики в полностью автоматическом режиме и расскажу про другие режимы работы...
Расчет собственных моделей атрибуции в Power BI на основе сырых данных Яндекс Метрики
Переглядів 8204 роки тому
Расчет дополнительных значений в таблице на основании значений в других строках. Продвинутые приемы фильтрации данных. На примере сырых данных Яндекс Метрики объясняю, как с помощью информации о визитах клиентов рассчитывать собственные модели атрибуции, например, по первому взаимодействию, по последнему непрямому взаимодействию (последний значимый переход) и последнему переходу по рекламе. Под...
Подключение Power BI к Яндекс Log API. Часть 1
Переглядів 1,2 тис.5 років тому
Дополнительные материалы к лекции 13.03.2019 в ВШБИ Вторая лекция ua-cam.com/video/h4KIW3F1Aqk/v-deo.html Ссылки из видео: 1. Ссылка для скачивания английской версии Power BI www.microsoft.com/en-US/download/details.aspx?id=45331 2. Официальная справочная информация по функциям языка M docs.microsoft.com/ru-ru/powerquery-m/power-query-m-function-reference 3. Коннектор, использованный для подклю...
Пример использования Power BI для получения и анализа сырых данных Яндекс.Метрики . Часть 2
Переглядів 3,6 тис.5 років тому
Если вы умеете писать простые формулы в Excel, то сможете быстро научиться практической работе в Power BI. Вы научитесь создавать полезные, красивые и понятные отчёты с нуля на примере реальных данных. В этом видео продолжаю подготавливать отчет по данным сырой Метрики (Logs API) и подробно рассказываю про: - 12 новых функций DAX, которых не было в прошлом видео - 2 новых диаграммы - добавление...
Пример использования Power BI для получения и анализа сырых данных Яндекс Метрики . Часть 1
Переглядів 11 тис.5 років тому
Если вы умеете писать простые формулы в Excel, то сможете быстро научиться работе в Power BI. Вы научитесь создавать полезные, красивые и понятные отчёты с нуля. Если у вас есть свой сайт или сайты клиентов, то как владелец вы научитесь оценивать работу SEO-оптимизаторов, специалистов по контекстной и таргетированной рекламе. Если вы сами оказываете услуги по оптимизации, то научитесь делать от...
Power BI в интернет-маркетинге для новичков. Часть 2
Переглядів 8235 років тому
Запись второй лекции в ВШБИ НИУ ВШЭ по аналитике данных. В этой части рассказываю про свой подход к маркетинговому анализу эффективности каналов интернет-продвижения с помощью Power BI на примере сырых данных Яндекс Метрики yandex.ru/blog/metrika/vygruzhayte-syrye-dannye-iz-metriki-cherez-logs-api, которые мы загрузили в Power BI и Excel на первой лекции. Вы познакомитесь с интерфейсом Power BI...
Видеостена в торговом центре
Переглядів 6448 років тому
Видеостена в торговом центре

КОМЕНТАРІ

  • @IVAYZ
    @IVAYZ 12 днів тому

    Понимаю, что видео выложено давно, но вдруг мне повезет. Когда вставляю токен получаю пустую таблицу, хотя точно вижу что мне доступна рк. Может есть идеи в каком направлении копать? Видео в любом случае классное, спасибо.

  • @КириллДергачев-д2е

    Илья, добрый день. Подскажите, пож, если не выдает список файлов и показывает вот такую ошибку - это с чем может быть связано? В запросе "Запрос1" произошла ошибка. Expression.Error: Поле "array" записи не найдено. Сведения: string=[Type] date-time=[Type] int64=[Type] boolean=[Type] object=[Type] number=[Type] any=[Type] ErrorWithData=[Type] DiskUserBlocked=[Type] Exif=[Type] AvailableUntil=[Type] CommentIds=[Type] SnapshotIterationKey=[Type] ResourceVersion=[Type] OrgId=[Type] Preview=[Type] RootShareInfo=[Type] ImageMetadata=[Type] Link=[Type] Password=[Type] ResourceUploadLink=[Type] DeltaResource=[Type] OfficeOnlineEditorURL=[Type] ShareInfo=[Type] UploadLimitExceededWithDetails=[Type] Error=[Type] ResourcePatch=[Type] VideoMetadata=[Type] ResourceDimensions=[Type]

  • @ArtFeodosia
    @ArtFeodosia Місяць тому

    Никакой ошибки не выдает, но данные не грузятся. Выводит сообщение: Эта таблица пуста. Может быть это из за того, что пытаюсь выгрузить данные из гостевого аккаунта?

  • @АндрейБушило-ю4ю
    @АндрейБушило-ю4ю Місяць тому

    Спасибо большущее! Супер

  • @zhandosa77777
    @zhandosa77777 2 місяці тому

    А Вы снимались в сериале Силиконовая / Креми=нивая долина?🤘

    • @IliahNazarov
      @IliahNazarov 2 місяці тому

      @@zhandosa77777 пока нет. Жду когда позовут

  • @zhandosa77777
    @zhandosa77777 2 місяці тому

    Здорово!!! Отлично!!! Спасибо

  • @AOAnisimov
    @AOAnisimov 2 місяці тому

    Можно ли как-то добавить в функцию информацию про пол и возраст пользователей?

    • @IliahNazarov
      @IliahNazarov 2 місяці тому

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

  • @bogomoleshka
    @bogomoleshka 2 місяці тому

    Илья, снимаю перед Вами шляпу! ))

    • @IliahNazarov
      @IliahNazarov 2 місяці тому

      @@bogomoleshka рад быть полезным. Спасибо вам

  • @workfilesC
    @workfilesC 3 місяці тому

    Приветствую. Вопрос (я сейчас мучаю апи яндекса). Как найти файл по части файла? Например 21353тловпю.rar Как найти его по 12353?

    • @IliahNazarov
      @IliahNazarov 3 місяці тому

      @@workfilesC думаю, что по вашему примеру не найдете, потому что перестановка символов влияет. Поищите в документации описание функций Text.Starts, Text.Contains и т.д.

  • @АлександрКораблёв-д7н

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

    • @IliahNazarov
      @IliahNazarov 4 місяці тому

      Добрый день! Меня мотивировала необходимость облегчить себе работу. Начинал с тыканья кнопками в интерфейсе, потом пробовал облегчить себе задачу переноса скрипта из одного документа в другой, например, пытался отвязаться от названий колонок. Обучающих материалов было мало, chatgpt ещё не было, спросить практически не у кого. Зато всегда была отличная справка по функциям на сайте Майкрософт - в них вся сила. Просто читайте и запоминайте какие бывают и что они делают. Не нужно запоминать названия и синтаксис, главное помнить что могут. По остальному все в этом видео.

  • @АнтонКутькин-ж8в
    @АнтонКутькин-ж8в 4 місяці тому

    великолепное объяснение!!! Сложно но доступно если по практиковаться!!! Большое спасибо за приятную подачу

    • @IliahNazarov
      @IliahNazarov 4 місяці тому

      Спасибо за добрые слова! Рад, что был полезен

  • @ДенисИльдиряков
    @ДенисИльдиряков 4 місяці тому

    Expression.Error: Во время оценки обнаружена циклическая ссылка. getPage = (optional qwe) => let response = Json.Document(Web.Contents(url, [Headers =Headers, Query=Param & [offset = Text.From(qwe ?? 0) ]])) in res, res = getPage(2) in res выдает циклическую ошибку, что не так не пойму....

    • @IliahNazarov
      @IliahNazarov 4 місяці тому

      По куску кода сложно ответить наверняка. Вы присваивание res, функцию, которая производит тот же самый res

  • @Bi-dj3iy
    @Bi-dj3iy 6 місяців тому

    Ещё раз спасибо, а какого уровня Вы решали задачи и сколько по времени что бы достичь такого уровня. Мне просто не приходится решать что то нетривиальное и прогресс не очень?

    • @IliahNazarov
      @IliahNazarov 6 місяців тому

      Вы все делаете правильно. Решайте то, что не выходит. Будьте любопытны и пробуйте разное, пока не получится

  • @pluginoleg
    @pluginoleg 6 місяців тому

    Спасибо!!!

  • @Bi-dj3iy
    @Bi-dj3iy 6 місяців тому

    Ничего не понял но спасибо. Что нравится в авторе иная подача материала чем везде что позволяет более полно изучать интересующие темы. Ещё раз спасибо за проделанную работу.

    • @IliahNazarov
      @IliahNazarov 6 місяців тому

      Спасибо на добром слове) теперь пытайте Михаила Музыкина

  • @domino78w
    @domino78w 7 місяців тому

    Спасибо большое за столь объёмное и подробное разъяснение основ языка!

  • @do0rkeeper
    @do0rkeeper 9 місяців тому

    Спасибо за коннектор

  • @SV-13
    @SV-13 9 місяців тому

    Я верно понимаю, этот вариант подходит только для своих файлов? Ведь если кто-то расшарит папку на YD, токен свой он же не отдаст?

    • @IliahNazarov
      @IliahNazarov 9 місяців тому

      если у вас будет доступ к папке из вашего диска, то скорее всего сможете. Советую пообщаться с поддержкой Яндекса, они лучше знают свой продукт и смогут что-то посоветовать

  • @ДмитрийЖулимов
    @ДмитрийЖулимов 10 місяців тому

    Илья, огромное спасибо! Отличный структурированный материал, ваши видео мое окно в мир API. Еще подскажите какой аналог Fiddler можете посоветовать ( не дает скопировать - нет выбора страны РФ).

    • @IliahNazarov
      @IliahNazarov 9 місяців тому

      добрый день! Спасибо за отзыв. Предложить аналог не смогу, проявите смекалку)

  • @ПавелЛинев-ч7м
    @ПавелЛинев-ч7м 10 місяців тому

    давно не было видосов

    • @IliahNazarov
      @IliahNazarov 10 місяців тому

      сейчас довольно редко использую в работе, закостенел, не ориентируюсь в трендах) Михаила www.youtube.com/@buchlotnik посмотрите, он на самом краю прогресса)

  • @Kommesk-life
    @Kommesk-life 10 місяців тому

    Добрый день, при создании запроса для перевода столбцов вышла ошибка: Expression.Error: Не удается преобразовать значение типа Function в тип Table. Сведения: Value=[Function] Type=[Type] Подскажите, как исправить?

    • @IliahNazarov
      @IliahNazarov 10 місяців тому

      Добрый день. Судя по ошибке вы делаете что-то, о чем в видео не рассказывал. Исправить просто: не подставляйте функцию туда, где ожидается таблица

    • @Kommesk-life
      @Kommesk-life 10 місяців тому

      @@IliahNazarov , благодарю за ответ!

  • @ОлегГрищенко-т6г
    @ОлегГрищенко-т6г 11 місяців тому

    Привет, а есть способ через облачное хранилище?

    • @IliahNazarov
      @IliahNazarov 11 місяців тому

      Привет! База данных - это файл, который можно синхронизировать с облаком. Разумеется, нужно понимать, что синхронизация не мгновенная. Одновременно работать с одной базой из разных мест без коллизий не выйдет. Если таскать с работы домой через облако вместо флешки, то вариант вполне себе) Ещё можете переписать скрипт на питоне под работу с нормальной базой, не sqlite, тогда будет всё по-нормальному)

  • @АлинаТемендерова

    Илья, спасибо за видео . Очень полезно! Подскажите, если сырые данные подгружаются не корректно, с чем это связано?

    • @IliahNazarov
      @IliahNazarov Рік тому

      Добрый день, спасибо за добрые слова! По вашему вопросу не смогу подсказать, потому что вы дали недостаточно информации

  • @fedarpesla50
    @fedarpesla50 Рік тому

    Токен получаю из API отправкой POST запроса. Проверяю актуальность токена GET запросом с полученным токеном. Для получения требуемых данных отправляю POST запрос с токеном. Возможно ли буферизировать токен, чтобы не дергать каждый раз POST запросом получение токена?

    • @IliahNazarov
      @IliahNazarov Рік тому

      Добрый день! Если только хранить его где-то снаружи или, например, в текстовом значении. Абсолютно все запросы, которые стучатся наружу по отношению к PQ, постоянно обновляются на случай изменения внешнего источника данных. Есть смысл хранить рефреш-токен в какой-нибудь строке, и каждый раз обновлять токен при получении новой порции данных. Немного кривовато, но совершенно не мешает

    • @fedarpesla50
      @fedarpesla50 Рік тому

      @@IliahNazarov Спасибо за ответ. Тоже думал о таких вариантах. Нигде не нашел комментария от вас по ошибке "401 unauthorized" и ее обработке. Прочитать метаданные корректно при такой ошибке

    • @IliahNazarov
      @IliahNazarov Рік тому

      @@fedarpesla50 где-то говорил, что 401-403 из функции не обрабатываются. Нужно делать внешний коннектор в файле, он их "ловит"

  • @avg3641
    @avg3641 Рік тому

    Очень редкий по познавательности материал. Большое спасибо!

    • @IliahNazarov
      @IliahNazarov Рік тому

      спасибо за приятные слова) надеюсь был полезен

  • @ИванКукушкин-ы4э

    Спасибо за материал! Переходим с Microsoft 365 на Yandex столкнулись с проблемой как вытягивать данные с excel таблиц хранящихся на yandex disk. Попытались применить ваш запрос но к сожалению столкнулись с ошибкой В запросе "Запрос1" произошла ошибка. Expression.Error: Поле "array" записи не найдено. Сведения: string=[Type] date-time=[Type] int64=[Type] boolean=[Type] object=[Type] number=[Type] any=[Type] Exif=[Type] ниже в коментариях народ уже писал чт сталкивался с таким. Подскажите как это можно побороть ?

    • @IliahNazarov
      @IliahNazarov Рік тому

      Возможно что-то поменялось в работе API

  • @nodirstein1331
    @nodirstein1331 Рік тому

    Классное видео Всё по полочкам. Спс

  • @666saturation7
    @666saturation7 Рік тому

    жаль у меня не такой высокий уровень что бы понять что тут происходит. Хотя PQ использую очень часто((

  • @alex3azchan
    @alex3azchan Рік тому

    На моменте "В видео этом не показано, что во время первого подключения по внешней ссылке в Power Query появится окно с авторизацией. В нем ничего менять не нужно, оставляйте анонимное подключение (Anonymous) и нажимайте кнопку Connect." у меня происходит ошибка "не удалось пройти проверку подлинности с указанными учетными данными. Повторите попытку". Хотя я еще не успел никаких учетных данных ввести. Повис на самом первом шаге в Power Query. Как эту проблему решить?

    • @IliahNazarov
      @IliahNazarov Рік тому

      Это не отменяет правильной авторизации. Анонимная - это "ручной режим"

  • @incontext8335
    @incontext8335 Рік тому

    Браво, маэстро!

  • @willbedeadsoon
    @willbedeadsoon Рік тому

    А в математике унарный минус имеет самый низкий приоритет.

    • @IliahNazarov
      @IliahNazarov Рік тому

      не уверен, что в математике есть унарный минус) Минус в отрицательных числах - это часть значения и не является выражением) Если какое-то значение умножается на -1, то действуют обычные правила для умножения)

    • @willbedeadsoon
      @willbedeadsoon Рік тому

      @@IliahNazarov Да тут недавно было задание якобы из школы на правила приоритетов операций, я по программистской привычке расставил и неправильно решил. Но настаивать не могу.

  • @tatianaborovikova5679
    @tatianaborovikova5679 Рік тому

    Добрый день! В запросе "Запрос1" произошла ошибка. Expression.Error: Поле "array" записи не найдено. Сведения: string=[Type] date-time=[Type] int64=[Type] boolean=[Type] object=[Type] number=[Type] any=[Type] Exif=[Type]

  • @optimiza
    @optimiza Рік тому

    Супер❤

  • @ПавелЛинев-ч7м

    Второй способ мне понравился. Иногда появляется такая потребность. Хорошее решение, попробую обязательно.

  • @ПавелЛинев-ч7м

    Всё понятно, но не знаю, где в ближайшее время может пригодиться..

  • @ivan_mitritch
    @ivan_mitritch Рік тому

    Здравствуйте! На этапе получения списка файлов возникает ошибка: Formula.Firewall: Query 'Query1' (step 'columns') references other queries or steps, so it may not directly access a data source. Please rebuild this data combination. Не подскажете, как исправить?

    • @IliahNazarov
      @IliahNazarov Рік тому

      Отключите в настройках Power BI. Options - Privacy - Always ignore Privacy Level settings

  • @КирСергеич
    @КирСергеич Рік тому

    Подскажите, пожалуйста, как правильно обрабатывать возврат 404 по запросу? Метод возвращает offset и total(сколько всего элементов мог бы вернуть). На последней странице тоже выдает offset и если с ним сделать запрос, то возвращает 404. Я сделал проверку с try при вызове методов Json.Document - Web.Contents, дальше result через if проверку полученного значения, но кажется что это громадье и можно как-то изящнее это сделать

    • @IliahNazarov
      @IliahNazarov Рік тому

      404 - страница не существует. Проверяйте адрес Если не хотите разбираться, то установите Яндекс Диск на компьютере и подключайтесь к локальной папке

    • @КирСергеич
      @КирСергеич Рік тому

      @@IliahNazarov речь не про Я.Диск, про другой API. И при последнем запросе метод возвращает не пустой ответ, а такой {"code":5, "message":"item not found", "details":[]} но со статусом 404. В итоге PQ триггерит по 404 и отказывается что либо воспринимать.

    • @IliahNazarov
      @IliahNazarov Рік тому

      @@КирСергеич попробуйте добавить статус 404 в ManualStatusHandling. Но не уверен, что из скрипта он корректно обработается. Если мое предположение верно, то либо пробуйте обнаружить окончание списка страниц как-то ещё (не вызывая 404), либо переносите всю логику во внешний кастомный коннектор (он будет обрабатывать любые статусы)

  • @РустамСадриев-р3я

    Добрый день! Все делаю как по видео. выходит следующая ошибка В запросе "Запрос1" произошла ошибка. Expression.Error: Поле "array" записи не найдено. Сведения: string=[Type] date-time=[Type] int64=[Type] boolean=[Type] object=[Type] number=[Type] any=[Type] Exif=[Type]

  • @masterd6125
    @masterd6125 Рік тому

    Илья, добрый день! Подскажите, а если нужно/хочется подключиться не к файлу, а к папке с однотипными файлами, то через коннектор же можно сгенерировать ссылку на папку?

    • @IliahNazarov
      @IliahNazarov Рік тому

      Добрый день. Проще установите Яндекс диск на компьютер и подключайтесь к папке. Разумеется, можно помучиться и подключаться по API. Но тут без чтения документации не обойтись;)

  • @АнастасияДмитриева-л1ъ8м

    Большое спасибо! Но подскажите, пожалуйста, если необходимо обратиться к готовому апи с уже встроенной пагинацией, что нужно сделать, чтобы за один запрос вывести все страницы?

    • @IliahNazarov
      @IliahNazarov Рік тому

      Не совсем понимаю ваш вопрос. Как "пагинация встроена"? Попробуйте перефразировать.

    • @АнастасияДмитриева-л1ъ8м
      @АнастасияДмитриева-л1ъ8м Рік тому

      @@IliahNazarov, в методе, к которому я обращаюсь, уже прописана пагинация в обязательном порядке

    • @АнастасияДмитриева-л1ъ8м
      @АнастасияДмитриева-л1ъ8м Рік тому

      и еще наблюдается вложенность параметров запроса (т.е. в теле запроса есть еще массив параметров filters, и отдельные не входящие в него атрибуты

  • @КамиллаШорманова

    спасибо за видео!!!!!!!! большое!

  • @lic_dema
    @lic_dema Рік тому

    Огромное СПАСИБО. И ваша группа в телеге пушка

  • @ПавелЛинев-ч7м

    узнаю себя. Большой респект за труд и вклад в сообщество. Успехов в развитии.

  • @alexnik4710
    @alexnik4710 Рік тому

    Чё за хрень на 2,5 часа? Какое практическое применение - где примеры? Полная хрень (похоже на сериалы и мыльные оперы) - ни о чём...

    • @IliahNazarov
      @IliahNazarov Рік тому

      Спасибо за мнение любителя сериалов и мыльных опер))

  • @Bi-dj3iy
    @Bi-dj3iy Рік тому

    Не знаю когда посмотрю, но надо.

    • @IliahNazarov
      @IliahNazarov Рік тому

      Спасибо, надеюсь поможет)

  • @valeryv9146
    @valeryv9146 Рік тому

    Илья, СПАСИБО!!! Лирическое вступление тоже очень полезно и интересно, поскольку отражает путь, логику суждений и в конечном итоге даёт понимание конечной цели.

    • @IliahNazarov
      @IliahNazarov Рік тому

      Спасибо, на двойной скорости даже мне понравилось зашло))

  • @Ivan2o6o
    @Ivan2o6o Рік тому

    Спасибо! Очень ждем новых видео!

  • @evgenyozhug4246
    @evgenyozhug4246 Рік тому

    Спасибо большое за инструкцию. Можно ли сделать так чтобы отчет обновлялся сам до вчерашней даты, а не вручную?

    • @IliahNazarov
      @IliahNazarov Рік тому

      Спасибо за отзыв! Да, так сделать можно. Но в случае с сырой метрикой много нюансов, с которыми придется разбираться. Потренируйтесь для начала на более простом api, например, на обычной метрике с агрегацией)

    • @evgenyozhug4246
      @evgenyozhug4246 Рік тому

      @@IliahNazarov мне нужно Яндекс конкретно, намекните хотя бы плиз как это сделать )

    • @IliahNazarov
      @IliahNazarov Рік тому

      @@evgenyozhug4246 посмотрите другие видео на моем канале, посвященные работе с API

  • @roman6933
    @roman6933 Рік тому

    Спасибо за видео. Очень много разъяснено.

  • @ОлегКаюров-н1н

    Спасибо за видео!