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’:
[ Рекомендации ]
Читайте также
[ Связаться ]
Давайте раскроем потенциал вашего бизнеса вместе
Заполните форму на бесплатную консультацию