Подключение Airbyte к ClickHouse
Обратите внимание, что источник и назначение Airbyte для ClickHouse в настоящее время находятся в статусе Alpha и не подходят для перемещения больших наборов данных (> 10 млн строк)
Airbyte
— это платформа интеграции данных с открытым исходным кодом. Она позволяет создавать
ELT
-конвейеры данных и поставляется с более чем 140 готовыми коннекторами. Это пошаговое руководство показывает, как подключить Airbyte к ClickHouse в качестве целевой системы и загрузить тестовый набор данных.
Загрузите и запустите Airbyte
-
Airbyte работает на Docker и использует
docker-compose. Убедитесь, что вы загрузили и установили последнюю версию Docker. -
Разверните Airbyte, клонировав официальный репозиторий Github и выполнив
docker-compose upв выбранном терминале: -
Как только в терминале появится баннер Airbyte, можно подключиться к localhost:8000
ПримечаниеВ качестве альтернативы вы можете зарегистрироваться и использовать Airbyte Cloud.
Добавьте ClickHouse в качестве назначения
В этом разделе мы покажем, как добавить экземпляр ClickHouse в качестве назначения.
-
Запустите сервер ClickHouse (Airbyte совместим с ClickHouse версии
21.8.10.19и выше) или войдите в учётную запись ClickHouse Cloud: -
В Airbyte перейдите на страницу "Destinations" и добавьте новый приёмник:

-
Выберите ClickHouse в раскрывающемся списке "Destination type" и заполните форму "Set up the destination", указав имя хоста и порты ClickHouse, имя базы данных, имя пользователя и пароль, а также выбрав, используется ли SSL-подключение (эквивалентно флагу
--secureвclickhouse-client):
-
Поздравляем! Вы успешно добавили ClickHouse в качестве приёмника данных в Airbyte.
Чтобы использовать ClickHouse в качестве назначения, пользователь должен иметь права на создание баз данных, таблиц и вставку строк. Рекомендуется создать выделенного пользователя для Airbyte (например, my_airbyte_user) со следующими правами:
Добавьте набор данных в качестве источника
В качестве примера набора данных мы будем использовать New York City Taxi Data (на Github). В этом руководстве мы будем использовать подмножество этого набора данных, соответствующее январю 2022 года.
-
В Airbyte перейдите на страницу "Sources" и добавьте новый источник типа file.

-
Заполните форму "Set up the source", указав имя источника и URL-адрес файла NYC Taxi Jan 2022 (см. ниже). Убедитесь, что выбрали
parquetв качестве формата файла,HTTPS Public Webв качестве Storage Provider иnyc_taxi_2022в качестве Dataset Name.
-
Поздравляем! Вы добавили файл-источник в Airbyte.
Создайте подключение и загрузите набор данных в ClickHouse
- В Airbyte перейдите на страницу "Connections" и добавьте новое подключение.

-
Выберите "Use existing source" и укажите New York City Taxi Data, затем выберите "Use existing destination" и укажите ваш экземпляр ClickHouse.
-
Заполните форму "Set up the connection", выбрав Replication Frequency (в этом руководстве мы используем
manual) и указавnyc_taxi_2022как поток для синхронизации. Убедитесь, что выбралиNormalized Tabular Dataв качестве Normalization.

- После создания подключения нажмите "Sync now", чтобы запустить загрузку данных (так как мы выбрали
Manualв качестве Replication Frequency).

- Начнётся загрузка данных; вы можете развернуть панель, чтобы увидеть журналы Airbyte и ход выполнения. После завершения операции вы увидите сообщение
Completed successfullyв журналах:

-
Подключитесь к своему экземпляру ClickHouse, используя предпочитаемый SQL-клиент, и проверьте получившуюся таблицу:
Ответ должен выглядеть следующим образом:
Ответ:
-
Обратите внимание, что Airbyte автоматически определил типы данных и добавил 4 столбца в целевую таблицу. Эти столбцы используются Airbyte для управления логикой репликации и ведения журнала операций. Более подробная информация доступна в официальной документации Airbyte.
Теперь, когда набор данных загружен в экземпляр ClickHouse, вы можете создать новую таблицу и использовать более подходящие типы данных ClickHouse (подробнее).
-
Поздравляем — вы успешно загрузили данные о такси Нью-Йорка в ClickHouse с помощью Airbyte!