<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0">

<channel>

<title>Блог об аналитике, визуализации данных, data science и BI, заметки с тегом: Facebook API</title>
<link>http://test.leftjoin.ru/tags/facebook-api/</link>
<description></description>
<generator>E2 (v3365; Aegea)</generator>

<item>
<title>Как развернуть Airbyte и подключить к нему Facebook API?</title>
<guid isPermaLink="false">133</guid>
<link>http://test.leftjoin.ru/all/deploy-airbyte-with-facebook-api/</link>
<comments>http://test.leftjoin.ru/all/deploy-airbyte-with-facebook-api/</comments>
<description>
&lt;p&gt;В этой статье мы покажем, как развернуть open-source сервис Airbyte на вашем компьютере и с его помощью подключиться к Facebook Marketing API.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/1-3.jpg" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Что такое Airbyte?&lt;/h2&gt;
&lt;p&gt;Airbyte — это платформа интеграции данных с открытым исходным кодом для создания ELT пайплайнов, которая помогает вам реплицировать данные в ваших хранилищах, озерах и базах данных. Кроме того, она имеет удобный интерфейс, который очень красиво оформлен (вы только посмотрите на эту осьминожку)!&lt;/p&gt;
&lt;h2&gt;Разворачиваем Airbyte&lt;/h2&gt;
&lt;p&gt;Установка Airbyte на машину выполняется достаточно просто. В этом можно убедиться, заглянув в &lt;a href="https://docs.airbyte.com/quickstart/deploy-airbyte"&gt;официальную документацию&lt;/a&gt;. Для этого выполнить несколько шагов:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Установить Docker (см. &lt;a href="https://www.docker.com/products/docker-desktop"&gt;Инструкции&lt;/a&gt;) и убедиться, что у вас стоит последняя версия docker-compose.&lt;/li&gt;
&lt;li&gt;Выполнить следующие команды в терминале:&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/airbytehq/airbyte.git"&gt;git clone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;cd airbyte&lt;/li&gt;
&lt;li&gt;docker-compose up&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Как только в выводе терминала появится баннер Airbyte, UI станет доступен по адресу &lt;a href="http://localhost:8000."&gt;http://localhost:8000.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/1-31.png" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Подключаем Facebook&lt;/h2&gt;
&lt;p&gt;С полной документацией по работе с Facebook Marketing из Airbyte можно ознакомиться &lt;a href="https://docs.airbyte.com/integrations/sources/facebook-marketing"&gt;по ссылке&lt;/a&gt;. Мы же дадим выжимку из нее. Итак, для того, чтобы подключить Facebook в Airbyte, надо учесть следующие условия:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Наличие Facebook Ad Account ID (&lt;a href="https://www.facebook.com/business/help/1492627900875762"&gt;где его найти?&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Наличие Facebook App с включенным Marketing API (&lt;a href="https://developers.facebook.com/docs/marketing-apis/get-started/"&gt;подробнее&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Наличие Facebook Marketing API Access Token (&lt;a href="https://developers.facebook.com/docs/facebook-login/guides/access-tokens#apptokens"&gt;подробнее&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Запросить увеличение лимита на количество запросов: Facebook сильно ограничивает токены API, сгенерированные из приложений Facebook с уровнем «Стандартный доступ» (по умолчанию для новых приложений именно такой уровень доступа), что делает невозможным использование токена для синхронизации с Airbyte. Вам нужно будет запросить апгрейд до расширенного доступа для вашего приложения со следующими разрешениями (&lt;a href="https://developers.facebook.com/docs/marketing-api/overview/authorization/#access-levels"&gt;подробнее&lt;/a&gt;):
&lt;ul&gt;
  &lt;li&gt;Ads Management Standard Access&lt;/li&gt;
  &lt;li&gt;ads_read&lt;/li&gt;
  &lt;li&gt;Ads_management&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Перед этим вам нужно будет пройти процесс проверки вашей компании (&lt;a href="https://www.facebook.com/business/help/2058515294227817?id=180505742745347"&gt;подробнее&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;После этого можно подключить Facebook в Airbyte.&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Заходим в UI на вкладку Sources и нажимаем ‘+ new source’&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/2-30.png" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;Выбираем в качестве источника Facebook Marketing и прописываем конфигурации подключения:
&lt;ul&gt;
  &lt;li&gt;Название источника, под которым он будет отображаться в Airbyte&lt;/li&gt;
  &lt;li&gt;Facebook Ad Account ID&lt;/li&gt;
  &lt;li&gt;Дата начала — с этого момента будут грузиться данные из Facebook (⚠️ВАЖНО: Данные по инсайтам можно получить только за последние 37 месяцев)&lt;/li&gt;
  &lt;li&gt;Дата окончания — до этого момента будут грузиться данные из Facebook (можно оставить пустым, чтобы получать последние данные из аккаунта)&lt;/li&gt;
  &lt;li&gt;Facebook Marketing API Access Token&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/3-26.png" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ol start="3"&gt;
&lt;li&gt;Также имеются несколько дополнительных конфигурационных опций:
&lt;ul&gt;
  &lt;li&gt;Включение удаленных данных Campaigns, Ads и AdSets&lt;/li&gt;
  &lt;li&gt;Сохранение миниатюр изображений&lt;/li&gt;
  &lt;li&gt;Настройка кастомных Insignts&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/4-17.png" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ol start="4"&gt;
&lt;li&gt;После заполнения полей нажимаем ‘Set up source’ и ждем, пока процесс подключения не завершится&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/5-16.png" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ol start="5"&gt;
&lt;li&gt;При необходимости настройки подключения к источнику можно поменять на его вкладке ‘Settings’&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Может возникнуть ошибка в связи с тем, что версия фреймворка устарела. Тогда надо будет перейти в основную вкладку ‘Settings’ (шестеренка в левом нижнем углу), там выбрать ‘Sources’, в списке найти Facebook Marketing и нажать кнопку ‘Change’ (или нажать ‘Upgrade all’, чтобы загрузить все доступные обновления).&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/5.5.png" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Подключаем хранилище данных&lt;/h2&gt;
&lt;p&gt;После того, как мы подключили Facebook Marketing, нам необходимо связать этот источник с нашим хранилищем данных.&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;Нажимаем ‘add destination’ на вкладке с настроенным источником (см. пункт 4 предыдущего раздела) либо идем на вкладку ‘Destinations’ и там нажимаем ‘+ new destination’.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/6-16.png" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;Далее выбираем тип хранилища, с которым будем работать. Airbyte может подключаться к большому количеству популярных СУБД. Опишем необходимые шаги конфигурации на примере работы с PostgreSQL. Заполняем следующие поля:
&lt;ul&gt;
  &lt;li&gt;Название хранилища, под которым оно будет отображаться в Airbyte&lt;/li&gt;
  &lt;li&gt;Хост&lt;/li&gt;
  &lt;li&gt;Порт&lt;/li&gt;
  &lt;li&gt;База данных&lt;/li&gt;
  &lt;li&gt;Схема&lt;/li&gt;
  &lt;li&gt;Пользователь&lt;/li&gt;
  &lt;li&gt;Пароль&lt;/li&gt;
  &lt;li&gt;Нужно ли использовать SSL&lt;/li&gt;
  &lt;li&gt;Параметры SSH туннеля (опционально)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/7-10.png" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ol start="3"&gt;
&lt;li&gt;После заполнения полей нажимаем ‘Set up destination’ и ждем, пока процесс подключения не завершится&lt;/li&gt;
&lt;li&gt;Если вы выполняли подключение к хранилищу отдельно с вкладки ‘Destinations’, то надо связать с ним источник, нажав на ‘add source’&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/8-11.png" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ol start="5"&gt;
&lt;li&gt;При необходимости настройки подключения к хранилищу можно поменять на его вкладке ‘Settings’&lt;/li&gt;
&lt;li&gt;Версию образа для работы с хранилищем можно обновить при необходимости (по аналогии с тем, что мы писали в конце предыдущего раздела)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Настраиваем связь источника и  хранилища данных&lt;/h2&gt;
&lt;p&gt;После всех проделанных шагов у нас открывается вкладка ‘Set up connection’, на которой мы можем настроить то, как и какие данные мы будем грузить с помощью Airbyte:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Как часто будет происходить загрузка&lt;/li&gt;
&lt;li&gt;Куда именно мы будем помещать данные в хранилище&lt;/li&gt;
&lt;li&gt;Какие данные из источника мы будем брать и каким образом (Full refresh | Increment, Overwrite | Append)&lt;/li&gt;
&lt;li&gt;Надо ли нормализовывать данные (сырые данные все равно останутся в хранилище)&lt;/li&gt;
&lt;li&gt;Настройка кастомных трансформаций (опционально)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/9-10.png" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;br /&gt;
После заполнения полей, нажимаем ‘Set up connection’. Далее откроется страница настроенного подключения, где мы можем наблюдать историю выгрузок данных, а также вносить изменения в установленную связь Источник-Хранилище.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/10-9.png" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;br /&gt;
Если нажать на Sync, то будут показаны логи исполнения.&lt;/p&gt;
&lt;h2&gt;Результаты&lt;/h2&gt;
&lt;p&gt;После того, как загрузка была успешно завершена, мы можем заглянуть в наше хранилище.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/11-8.png" border="0" width="50%" height="50%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Сразу можно обратить внимание на количество сгенерированных таблиц.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/12-6.png" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Так как мы указали, что нам необходима нормализация данных, то у нас в результате получилось чуть меньше 400 таблиц для streams [activities, ‘ad_account’, ‘ad_creatives’, ‘ad_sets’, ‘ads’, ‘ads_insights’, ‘campaigns’], причем многие из них оказались пустыми (так сгенерировал Airbyte).&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/13-6.png" border="0" width="20%" height="20%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Сырые данные содержатся в таблицах с именами ‘_airbyte_raw_*’. В таких таблицах имеется всего 3 поля — ‘_airbyte_ab_id’, ‘_airbyte_data’ и ‘_airbyte_emmited_at’. Столбец ‘_airbyte_data’ имеет тип jsonb.&lt;br /&gt;
Пример для ‘_airbyte_raw_ads_insights’:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/14-4.png" border="0" width="100%" height="100%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;В процессе нормализации каждое поле из json выносится в отдельную колонку. Пример: часть списка колонок из таблицы ‘ads_insignts’:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/15-3.png" border="0" width="50%" height="50%"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;После получения основной нормализованной таблицы для каждого stream создаются различные breakdowns, например, для тех же ‘ads_insights’:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://test.leftjoin.ru/pictures/16-3.png" border="0" width="50%" height="50%"&gt;&lt;/a&gt;&lt;/p&gt;
</description>
<pubDate>Thu, 12 May 2022 16:04:39 +0300</pubDate>
</item>


</channel>
</rss>