Как развернуть Airbyte и подключить к нему Facebook API? - LEFT JOIN

Свяжитесь с нами в любой удобной для вас форме

Менеджер

Написать в телеграмм

Онлайн
Телеграмм
или
Заполните форму

1 минута чтения

*

12 мая 2022 г.

Как развернуть Airbyte и подключить к нему Facebook API?

В этой статье мы покажем, как развернуть open-source сервис Airbyte на вашем компьютере и с его помощью подключиться к Facebook Marketing API.

Что такое Airbyte?

Airbyte — это платформа интеграции данных с открытым исходным кодом для создания ELT пайплайнов, которая помогает вам реплицировать данные в ваших хранилищах, озерах и базах данных. Кроме того, она имеет удобный интерфейс, который очень красиво оформлен (вы только посмотрите на эту осьминожку)!

Разворачиваем Airbyte

Установка Airbyte на машину выполняется достаточно просто. В этом можно убедиться, заглянув в официальную документацию. Для этого выполнить несколько шагов:
1. Установить Docker (см. Инструкции) и убедиться, что у вас стоит последняя версия docker-compose.
2. Выполнить следующие команды в терминале:
git clone
— cd airbyte
— docker-compose up

Как только в выводе терминала появится баннер Airbyte, UI станет доступен по адресу http://localhost:8000.

Подключаем Facebook

С полной документацией по работе с Facebook Marketing из Airbyte можно ознакомиться по ссылке. Мы же дадим выжимку из нее. Итак, для того, чтобы подключить Facebook в Airbyte, надо учесть следующие условия:
— Наличие Facebook Ad Account ID (где его найти?)
— Наличие Facebook App с включенным Marketing API (подробнее)
— Наличие Facebook Marketing API Access Token (подробнее)
— Запросить увеличение лимита на количество запросов: Facebook сильно ограничивает токены API, сгенерированные из приложений Facebook с уровнем «Стандартный доступ» (по умолчанию для новых приложений именно такой уровень доступа), что делает невозможным использование токена для синхронизации с Airbyte.

Вам нужно будет запросить апгрейд до расширенного доступа для вашего приложения со следующими разрешениями (подробнее):

  • Ads Management Standard Access
  • ads_read
  • Ads_management
  • Перед этим вам нужно будет пройти процесс проверки вашей компании подробнее

После этого можно подключить Facebook в Airbyte.
1. Заходим в UI на вкладку Sources и нажимаем ‘+ new source’


2. Выбираем в качестве источника Facebook Marketing и прописываем конфигурации подключения:
— Название источника, под которым он будет отображаться в Airbyte
— Facebook Ad Account ID
— Дата начала — с этого момента будут грузиться данные из Facebook (⚠️ВАЖНО: Данные по инсайтам можно получить только за последние 37 месяцев)
— Дата окончания — до этого момента будут грузиться данные из Facebook (можно оставить пустым, чтобы получать последние данные из аккаунта)
— Facebook Marketing API Access Token


3. Также имеются несколько дополнительных конфигурационных опций:
— Включение удаленных данных Campaigns, Ads и AdSets
— Сохранение миниатюр изображений
— Настройка кастомных Insignts


4. После заполнения полей нажимаем ‘Set up source’ и ждем, пока процесс подключения не завершится


5. При необходимости настройки подключения к источнику можно поменять на его вкладке ‘Settings’

Может возникнуть ошибка в связи с тем, что версия фреймворка устарела. Тогда надо будет перейти в основную вкладку ‘Settings’ (шестеренка в левом нижнем углу), там выбрать ‘Sources’, в списке найти Facebook Marketing и нажать кнопку ‘Change’ (или нажать ‘Upgrade all’, чтобы загрузить все доступные обновления).

Подключаем хранилище данных

После того, как мы подключили Facebook Marketing, нам необходимо связать этот источник с нашим хранилищем данных.
1. Нажимаем ‘add destination’ на вкладке с настроенным источником (см. пункт 4 предыдущего раздела) либо идем на вкладку ‘Destinations’ и там нажимаем ‘+ new destination’.


2. Далее выбираем тип хранилища, с которым будем работать. Airbyte может подключаться к большому количеству популярных СУБД. Опишем необходимые шаги конфигурации на примере работы с PostgreSQL. Заполняем следующие поля:

  • Название хранилища, под которым оно будет отображаться в Airbyte
  • Хост
  • Порт
  • База данных
  • Схема
  • Пользователь
  • Пароль
  • Нужно ли использовать SSL
  • Параметры SSH туннеля (опционально)


3. После заполнения полей нажимаем ‘Set up destination’ и ждем, пока процесс подключения не завершится
4. Если вы выполняли подключение к хранилищу отдельно с вкладки ‘Destinations’, то надо связать с ним источник, нажав на ‘add source’


5. При необходимости настройки подключения к хранилищу можно поменять на его вкладке ‘Settings’
6. Версию образа для работы с хранилищем можно обновить при необходимости (по аналогии с тем, что мы писали в конце предыдущего раздела)

Настраиваем связь источника и хранилища данных

После всех проделанных шагов у нас открывается вкладка ‘Set up connection’, на которой мы можем настроить то, как и какие данные мы будем грузить с помощью Airbyte:
— Как часто будет происходить загрузка
— Куда именно мы будем помещать данные в хранилище
— Какие данные из источника мы будем брать и каким образом (Full refresh | Increment, Overwrite | Append)
— Надо ли нормализовывать данные (сырые данные все равно останутся в хранилище)
— Настройка кастомных трансформаций (опционально)


После заполнения полей, нажимаем ‘Set up connection’. Далее откроется страница настроенного подключения, где мы можем наблюдать историю выгрузок данных, а также вносить изменения в установленную связь Источник-Хранилище.


Если нажать на Sync, то будут показаны логи исполнения.

Результаты

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

Сразу можно обратить внимание на количество сгенерированных таблиц.

Так как мы указали, что нам необходима нормализация данных, то у нас в результате получилось чуть меньше 400 таблиц для streams [activities, ‘ad_account’, ‘ad_creatives’, ‘ad_sets’, ‘ads’, ‘ads_insights’, ‘campaigns’], причем многие из них оказались пустыми (так сгенерировал Airbyte).

Сырые данные содержатся в таблицах с именами ‘_airbyte_raw_*’. В таких таблицах имеется всего 3 поля — ‘_airbyte_ab_id’, ‘_airbyte_data’ и ‘_airbyte_emmited_at’. Столбец ‘_airbyte_data’ имеет тип jsonb.
Пример для ‘_airbyte_raw_ads_insights’:

В процессе нормализации каждое поле из json выносится в отдельную колонку. Пример: часть списка колонок из таблицы ‘ads_insignts’:

После получения основной нормализованной таблицы для каждого stream создаются различные breakdowns, например, для тех же ‘ads_insights’:

503 просмотров

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

[ Рекомендации ]

Читайте также

[ Дальше ]