Многие пользователи сервиса уже заметили, что мы не выгружаем все данные, имеющиеся в сервисе-источнике, но мало кто знает почему. Основная причина — это объем результирующих данных. Увеличение объема влечет за собой много различных проблем, которые на первый взгляд не видны. В первую очередь — это увеличение времени, необходимого для получения данных, это связано с тем, что каждый онлайн-сервис имеет определенные мощности, выделенные для обработки запросов API. Поэтому чем больше данных, тем дольше сервис-источник их будет отдавать. Вторая наиболее важная проблема, это сам объем, чем он больше, тем больше требуется места для его хранения в базе, тем больше потребуется ресурсов для его обработки, и не важно где вы это будете делать. Если Вы планируете обрабатывать данные в самой базе, то Вам потребуется гораздо более производительная база данных, чем та, которой будет достаточно для хранения. Чем больше нужна производительность, тем дороже это будет стоить. Если же вы экспортируете данные во внешний инструмент для их последующей обработки, допустим Power BI, то и в этом случае вам не удастся избежать проблем, так как экспорт данных начнет занимать больше времени, а для обработки данных потребуется больше ресурсов, в первую очередь — оперативной памяти.

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

  • Google Analytics
  • Google AdWords
  • Яндекс.Директ
  • Яндекс.Метрика
  • CoMagic

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

В первую очередь необходимо подключить аккаунт Яндекс.Директ и запустить базовую выгрузку данных, допустим за прошедшую неделю:

После того как вы запустили выгрузку исторических данных, переходим в раздел «Планировщик заданий» и нажимаем кнопку «Добавить новое+»

Далее в выпадающем списке выбираем тип задания «Выгрузка отчетов из Яндекс.Директ»

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

Более подробно с типами отчетов можно ознакомится в официальной документации API Яндекс.Директ.

После того как указали все необходимые параметры отчета, нажимаем кнопку «Продолжить» и запускаем загрузку исторических данных, за аналогичный период, за который ранее запускали базовую выгрузку:

После того как выполнение задания завершено, Вы можете просмотреть пример того как выглядит отчет в настройках задания, здесь же необходимо посмотреть и запомнить идентификатор отчета:

Далее из раздела «Файлы для загрузки» скачиваем шаблон модели для Яндекс.Директ:

После чего открываем его в Power BI Desktop и вводим данные необходимые для подключения к базе данных. Более подробно об использовании готовых шаблонов для Power BI можно прочитать здесь. После обновления данных в модель будут загружены результаты работы базовой выгрузки, с которыми вы уже можете работать, но нас сейчас больше интересуют данные отчета, выгрузку которого мы настроили в сервисе. Для этого в Power BI Desktop нажимаем «Получить данные»

Далее выбираем «Azure», «База данных SQL Azure» и нажимаем кнопку «Подключить», после чего вводим данные для подключения к базе данных. В появившемся списке таблиц выбираем «ЯД Выгруженные отчеты» и нажимаем кнопку «Правка»

Далее делаем фильтр по полю «Идентификатор отчета» и указываем то значение, которое было указано в настройках задания на выгрузку отчетов:

После того как мы отфильтровали записи, удаляем все колонки кроме «Дата отчета» и «Содержимое строки», после чего преобразуем в колонке «Содержимое строки» в JSON:

Далее разворачиваем эту колонку:

и получаем выгруженный отчет:

Осталось только дать ему нормально имя и преобразовать типы данных. После чего можно смело закрывать редактор запросов.

Теперь осталось указать только верные связи между таблицами, для чего переходим в раздел «Связи» и делаем связь между полем «Дата отчета» в таблице выгруженного отчета и полем «Дата» в таблице «SHD Параметры дат», и, так как в примере выгружался отчет по объявлениям и в него был добавлен идентификатор объявления, то мы связываем «Идентификатор объявления» с полем «Внутренний идентификатор объявления» в таблице «ЯД Параметры объявлений»

После чего можно смело приступать к созданию отчетов.

Отличительной особенностью данной выгрузки отчетов было то, что в настройках задания мы не указывали галочку «Зафиксировать структуру»

Это приводит к тому что все выгружаемые отчеты с подобной настройкой сохраняются в одну и туже таблицу «Выгруженные отчеты», а данные хранятся в формате JSON. Именно поэтому в редакторе запросов в Power BI мы и использовали фильтр по идентификатору отчета, и преобразовывали содержимое поля в JSON, а после разворачивали его. Подобный способ позволяет вносить изменения в структуру отчета после его создания, а именно добавить новые поля в отчет или удалить лишние. Если же структура отчета однозначно известна, то тогда можно смело отметить галочку «Зафиксировать структуру» и в этом случае данные отчета будут выгружать в отдельную таблицу, которая будет иметь имя, начинающееся с префикса сервиса в случае с Яндекс.Директ — это «ЯД» названия задания. В данной таблице уже будет содержаться отчет в развернутом виде, поэтому в редакторе запросов необходимо будет лишь удалить лишние поля и проверить типы данных. В случае если вы меняете эту настройку и фиксируете структуру отчета, то необходимо будет повторить выгрузку исторических данных для отчета.

В качестве примера создавалось задание «Статистика по блокам показа», и при фиксации структуры в базе данных создается таблица «ЯД Статистика по блокам показа»

Comments

  1. Антон

    Спасибо, полезная информация!
    Есть вопрос — при выгрузке пользовательского набора показателей и параметров из Google Analytics не выгружается столбец «Идентификатор источника трафика», который присутствует в других таблицах, выгружаемых по умолчанию в сводной модели https://yadi.sk/i/E0GXBJYy3W8WH3
    Каким образом можно выгрузить пользовательские данные с таким идентификатором? Он очень важен и без него возникают большие проблемы со связь пользовательских таблиц и таблиц из сводной модели.
    Заранее спасибо!

    1. Сергей Казицин Article Author

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *