BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Курсы по системам бизнес-анализа и методологии » Учебный курс для бизнес-аналитиков » Airbyte Open-Source ELT data pipelines. Docker Compose Install

Airbyte Open-Source ELT data pipelines. Docker Compose Install

  • 1 Что такое Airbyte? Плюсы, минусы решения
  • 2 Инсталляция/установка Airbyte с помощью docker-compose на ubuntu 20.04
    • 2.1 Конфигурация (настройка) docker-compose
  • 3 Из чего состоит Airbyte? Компоненты решения
    • 3.1 Компоненты
    • 3.2 Архитектура Airbyte при запуске через docker-compose
  • 4 Введение в Airbyte connectors/integrations. Каталог коннекторов
    • 4.1 Этапы выпуска коннектора Airbyte
  • 5 Разработка кастомных коннекторов Airbyte
    • 5.1 Спецификация Airbyte
    • 5.2 Обзор Python Connector-Development Kit (CDK) для разработки в Airbyte
    • 5.3 Начало работы с Airbyte Python CDK по созданию Connector
      • 5.3.1 Пример разработки Python Source Airbyte Connector

 

1 Что такое Airbyte? Плюсы, минусы решения

Airbyte — это платформа EL(T) с открытым исходным кодом, которая помогает вам реплицировать ваши данные в DWH, Data Lakes и Databases. Основным предназначением этого инструмента является интеграция данных между исходной системой и stage слоем хранилища. Т.е. основная задача выгрузка данных и размещение в целевой таблице (например).

Первое, что хочется выделить в Airbyte — очень простой для понимания интерфейс, очень приятный UI.

Алгоритм работы можно описать в нескольких пунктах:

  • Настройте источник;
  • Настройте место назначения;
  • Сопоставьте потоки (создание соединения);
  • Добавьте таймер (для периодического запуска).

 

Airbyte стремится сделать конвейеры интеграции данных продуктом:

  • Простая и быстрая работа с коннекторами (авторизация, настройка);
  • Создание новых коннекторов довольно максимально упрощен. Доступные CDK: Python, C#/.NET, TS/JS.
  • Большой каталог существующих коннекторов.
  • Airbyte можно развернуть в своем облаке и иметь полный контроль над настройкой безопасности.
  • Не нужно платить за объем обработанных данных, как это предлагают облачные решения.

 

2 Инсталляция/установка Airbyte с помощью docker-compose на ubuntu 20.04

Рассмотрим развертывание Airbyte с помощью Docker Compose. Установка осуществляется очень просто запуском нескольких команд:

# Копируем репозиторий с github
sudo git clone https://github.com/airbytehq/airbyte.git

# Переходим в директорию airbyte (скаченный репозиторий с github)
cd airbyte

# Запускаем инсталляцию с помощью docker-compose
sudo docker-compose up

 

После этого переходим по адресу localhost:8000 — откроется Airbyte:

 

2.1 Конфигурация (настройка) docker-compose

Итак, рассмотрим компоненты решения при развертывании через docker-compose:

  • docker-compose.yaml — при развертывании airbyte с помощью команды sudo docker-compose up используется этот файл. В нем описаны сервисы, которые запускаются и их глобальные настройки/переменные (порты, логины, пароли, параметры базы данных и т.д.).
  • .env — файл переменных среды. Compose использует значения переменных из среды оболочки, в которой docker-compose выполняется. Вы можете установить значения по умолчанию для переменных среды, используя .env файл, который Compose автоматически ищет в каталоге проекта.

 

Списки сервисов, которые поднимаются при установке через docker-compose.yaml:

  • init
  • bootloader
  • db
  • scheduler
  • worker
  • server
  • webapp
  • airbyte-temporal

 

3 Из чего состоит Airbyte? Компоненты решения

3.1 Компоненты

  • Airbyte Worker— это основная часть стека Airbyte, которая отвечает за 1) инициализацию источника и места назначения и 2) передачу данных из источника в место назначения. Кому-то, кто реализует коннектор, никогда не нужно трогать этот код, но в этой статье мы упоминаем его, чтобы контекстуализировать, как данные проходят через Airbyte.
  • Connector (Коннектор или соединитель) — это код, который позволяет Airbyte взаимодействовать с определенным базовым источником данных (например, Postgres). В Airbyte интеграция является либо источником, либо местом назначения.
  • Source (Источник) — соединитель, который извлекает данные из базового источника данных (например, источник Postgres считывает данные из базы данных Postgres. Источник Stripe считывает данные из Stripe API).
  • Destination (Назначение) — соединитель, который отправляет данные в базовый источник данных (например, пункт назначения Postgres записывает данные в базу данных Postgres).
  • AirbyteSpecification — спецификация, описывающая, как реализовать коннекторы с использованием стандартного интерфейса.
  • AirbyteProtocol — протокол, используемый для межпроцессного взаимодействия.
    Integration Commands (Команды интеграции) — команды, которые реализует контейнер интеграции (например spec, check, discover, read/write).
  • Sync (Синхронизация) — действие по перемещению данных из источника в место назначения.

 

3.2 Архитектура Airbyte при запуске через docker-compose

Концептуально Airbyte состоит из двух частей: платформы и коннекторов.

Платформа предоставляет все службы, необходимые для настройки и выполнения операций перемещения данных, например: пользовательский интерфейс, API конфигурации, планирование заданий, ведение журнала, оповещения и т.д., и структурирована как набор микрослужб.

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

Подробная схема архектуры Airbyte:

  • UI: простой в использовании графический интерфейс для взаимодействия с Airbyte API.
  • WebApp Server: Обрабатывает связь между пользовательским интерфейсом и API.
    Config Store: Хранит всю информацию о соединениях (учетные данные, частота и т.п.).
  • Scheduler Store: Сохраняет статусы и информацию о заданиях для учета планировщика.
  • Config API: главный модуль управления Airbyte. Все операции в Airbyte, такие как создание источников, пунктов назначения, соединений, управление конфигурациями и т.д., настраиваются и вызываются из API.
  • Scheduler: Планировщик принимает рабочие запросы от API и отправляет их во временную службу для распараллеливания. Он отвечает за отслеживание успеха/неудачи и запуск синхронизации на основе настроенной частоты.
  • Temporal Service: управляет очередью задач и рабочими процессами планировщика.
  • Worker: рабочий процесс подключается к исходному соединителю, извлекает данные и записывает их в место назначения.
  • Temporary Storage: хранилище, которое работники могут использовать всякий раз, когда им нужно перенести данные на диск.

 

4 Введение в Airbyte connectors/integrations. Каталог коннекторов

4.1 Этапы выпуска коннектора Airbyte

Airbyte использует систему оценок для соединителей, чтобы помочь вам понять, чего ожидать от соединителя:

  • Общедоступный (Generally Available): общедоступный соединитель считается готовым к использованию в производственной среде и официально поддерживается Airbyte. Его документация считается достаточной для поддержки широкого распространения.
  • Бета-версия (Beta): Бета-коннектор считается стабильным и надежным без изменений, несовместимых с предыдущими версиями, но не был проверен более широкой группой пользователей. Мы ожидаем найти и исправить несколько проблем и ошибок в выпуске до того, как он будет готов для общедоступной версии.
  • Альфа (Alpha): Альфа-коннектор означает, что коннектор находится в стадии разработки и помогает Airbyte собирать отзывы и проблемы, о которых сообщают первые пользователи. Мы настоятельно не рекомендуем использовать альфа-версии для производственных сценариев использования и не предлагаем SLA облачной поддержки для этих продуктов, функций или соединителей.

 

Полное описание можно найти в каталоге коннекторов Airbyte.

Этапы выпуска описывают жизненный цикл коннектора Airbyte:

Ожидания

Альфа

Бета

Общая доступность (GA)

Доступность для клиентов

Альфа-коннекторы доступны для всех пользователей

Бета-коннекторы доступны для всех пользователей .

Доступно для всех пользователей

Поддержка

Облако: нет соглашений об уровне обслуживания

с открытым исходным кодом: поддержка сообщества Slack

Облако: официальная бета-поддержка SLA

с открытым исходным кодом: поддержка сообщества Slack

Облако: официальная поддержка GA SLA

с открытым исходным кодом: поддержка Community Slack

Готовность к производству

Нет

Да (с оговорками)

Да

 

5 Разработка кастомных коннекторов Airbyte

Airbyte поддерживает два типа коннекторов: Source и Destination. Connector — это образ Docker, который соответствует спецификации Airbyte.

Для создания нового коннектора на Java или Python Airbyte предоставляет шаблоны, поэтому разработчику не нужно начинать все с нуля. В этой статье будет рассмотрено создание коннектора на Python с использованием Python Connector-Development Kit (CDK).

 

5.1 Спецификация Airbyte

  • Спецификация основана на Docker; это позволяет разработчику писать коннектор на любом языке, который он хочет. Все, что им нужно сделать, — это поместить этот код в контейнер Docker, соответствующий интерфейсу и протоколу, описанным ниже.
  • В настоящее время мы предоставляем шаблоны, чтобы сделать это еще проще для тех, кто предпочитает работать на python или java. Эти шаблоны позволяют разработчику пропустить любую настройку Docker, чтобы он мог просто реализовать код для четко определенных интерфейсов на выбранном им языке.
  • Спецификация предназначена для работы в качестве CLI. Приложение Airbyte построено на основе этого интерфейса командной строки.
  • Спецификация определяет стандартный интерфейс для реализации интеграции данных: Source и Destinatioin.
  • Спецификация предоставляет структурированный стандарт передачи сообщений stdout/stdin для передачи данных.
  • Хотя эта спецификация работает с Airbyte, это независимый стандарт.

 

Спецификация Airbyte требует, чтобы источник Airbyte поддерживал 4 различные операции:

  • Spec — Требуемая конфигурация для взаимодействия с базовой технической системой, например информация о базе данных, информация об аутентификации и т.д.
  • Check — Валидация, что предоставленная конфигурация корректна с достаточными разрешениями для выполнения всех необходимых операций над источником.
  • Discover — Открытие схемы источника — позволяет пользователям выбирать, какое подмножество данных синхронизировать. Полезно, если пользователям требуется только часть данных.
  • Read — Выполняется фактический процесс синхронизации. Данные считываются из источника, анализируются в AirbyteRecordMessages и отправляются в Airbyte Destination. В зависимости от того, как реализован источник, эта синхронизация может быть инкрементальной или полной (полное обновление всех данных).

 

Airbyte Source содержит один или несколько потоков (streams) Airbyte.

Stream (поток) — еще один концептуальный ключ к пониманию того, как Airbyte моделирует процесс синхронизации данных. Stream моделирует логические группы данных, составляющие более крупный Source. Если источником является RDMS, каждый поток является таблицей. В настройках REST API каждый поток соответствует одному ресурсу в API. Например, Stripe Source будет иметь один поток для Transactions, один для Charges и так далее.

 

5.2 Обзор Python Connector-Development Kit (CDK) для разработки в Airbyte

Видео How to Build ETL Sources in Under 30 Minutes

Airbyte Python CDK — это платформа для быстрой разработки коннекторов Airbyte производственного уровня. В настоящее время CDK предлагает помощников, специально предназначенных для создания исходного кода коннекторов Airbyte для:

  • HTTP APIs (REST APIs, GraphQL, и др.)
  • Singer Taps
  • Общие исходники Python (все, что не описано выше)

 

CDK предоставляет базовую структуру реализации и абстрагирует низкоуровневый связующий шаблон.

Зависимости

  • Python >= 3.9
  • Docker
  • NodeJS

 

5.3 Начало работы с Airbyte Python CDK по созданию Connector

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

cd airbyte-integrations/connector-templates/generator

sudo ./generate.sh

 

На момент написания статьи доступны следущие генераторы:

  • Python Destination — Generate a destination connector written in Python
  • Python HTTP API Source — Generate a Source that pulls data from a synchronous HTTP API.
  • Python Singer Source — Generate a Singer-tap-based Airbyte Source.
  • Python Source — Generate a minimal Python Airbyte Source Connector that works with any kind of data source. Use this if none of the other Python templates serve your use case.
  • Java JDBC Source — Generate a minimal Java JDBC Airbyte Source Connector.
  • Generic Source — Use if none of the other templates apply to your use case.
    Java Destination — Generate a Java Destination Connector.

 

5.3.1 Пример разработки Python Source Airbyte Connector

Выбираем Python-Source, в директории airbyte/airbyte-integrations/connectors/ сгенерируется исходный код коннектора:

Автор: Иван Шамаев (оригинал статьи)

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Build & Deploy Custom Superset Viz Plugin
Следующая статья →
Superset Upgrade — ValueError or Unexpected error: Invalid decryption key
Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • Авиакомпания NordStar (АО «АК «НордСтар») – работает под данным брендом с 2008 г. и сейчас входит в топ-15 крупнейших российских авиакомпаний (данные Росавиации) с пассажирооборотом более 1 млн человек в год. АО «АК «НордСтар» выполняет и внутренние, и внешние рейсы, а ее основные хабы - Домодедово, Пулково и Емельяново. С 2021 года компания является базовым перевозчиком аэропорта Норильск.

  • Компания «Бизон-Трейд» является официальным дилером ведущих мировых производителей сельскохозяйственной техники (Fendt, Valtra, Lemken и др.) на Юге России. Входит в состав агрохолдинга «Бизон», основанного в 1994 году. Имеет 8 филиалов в Краснодарском и Ставропольском краях, Ростовской области.

  • "Уральский банк реконструкции и развития" входит в топ-25 крупнейших банков России и список значимых кредитных организаций на рынке платежных услуг по версии ЦБ РФ.

  • ЭГИС - международная фармацевтическая компания, основанная в 1907 году в Венгрии. Компания имеет представительства более чем в 60 странах мира, в том числе в России. Компания ЭГИС является одним из ведущих производителей дженерических лекарственных средств в Центральной и Восточной Европе. Её деятельность охватывает все звенья производственно-сбытовой фармацевтической цепочки.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.