Пакет интеграции
org.apache.beam.sdk.io.clickhouse.ClickHouseIO находится в репозитории Apache Beam.
Настройка пакета ClickHouse для Apache Beam
Установка пакета
Пример кода
input.csv считывается в виде PCollection, преобразуется в объект Row (с использованием заданной схемы) и вставляется в локальный экземпляр ClickHouse с помощью ClickHouseIO:
Поддерживаемые типы данных
Параметры ClickHouseIO.Write
ClickHouseIO.Write можно настроить с помощью следующих функций-сеттеров:
Ограничения
- На данный момент поддерживается только операция Sink. Коннектор не поддерживает операцию Source.
- ClickHouse выполняет дедупликацию при вставке в таблицу
ReplicatedMergeTreeили в таблицуDistributed, построенную поверхReplicatedMergeTree. Без репликации вставка в обычную таблицу MergeTree может приводить к появлению дубликатов, если вставка завершается ошибкой, а затем успешно повторяется. Однако каждый блок вставляется атомарно, а размер блока можно настроить с помощьюClickHouseIO.Write.withMaxInsertBlockSize(long). Дедупликация достигается за счёт использования контрольных сумм вставленных блоков. Подробнее о дедупликации см. в разделах Deduplication и Deduplicate insertion config. - Коннектор не выполняет никаких DDL-операторов; поэтому целевая таблица должна существовать до вставки.
- Документация по классу
ClickHouseIO: documentation. - Репозиторий GitHub с примерами: clickhouse-beam-connector.