Предварительные требования
Создание первого ClickPipe
- Откройте консоль SQL для своего сервиса ClickHouse Cloud.
- В левом меню нажмите кнопку
Data Sources, затем — “Set up a ClickPipe”
- Выберите источник данных.
- Заполните форму: укажите имя ClickPipe, описание (необязательно), роль IAM или учетные данные, а также другие сведения о подключении.
- Выберите Kinesis Stream и начальное смещение. Интерфейс покажет пример документа из выбранного источника (топик Kafka и т. д.). Вы также можете включить Enhanced Fan-out для потоков Kinesis, чтобы повысить производительность и стабильность ClickPipe (подробнее об Enhanced Fan-out можно узнать здесь)
- На следующем шаге вы можете выбрать, выполнять ли приём данных в новую таблицу ClickHouse или использовать существующую. Следуйте инструкциям на экране, чтобы изменить имя таблицы, схему и настройки. Вверху страницы отображается предварительный просмотр изменений в реальном времени на примере таблицы.
- Кроме того, можно выбрать приём данных в существующую таблицу ClickHouse. В этом случае интерфейс позволит сопоставить поля источника с полями ClickHouse в выбранной целевой таблице.
- Наконец, вы можете настроить разрешения для внутреннего пользователя ClickPipes.
Full access: полный доступ к кластеру. Это может быть полезно, если вы используете materialized view или словарь с целевой таблицей.Only destination table: только разрешенияINSERTдля целевой таблицы.
- Нажмите “Complete Setup”, чтобы система зарегистрировала ClickPipe, после чего он появится в сводной таблице.
- Поздравляем! Вы успешно настроили свой первый ClickPipe. Если это стриминговый ClickPipe, он будет работать непрерывно и выполнять приём данных в реальном времени из удаленного источника. В противном случае он выполнит приём батча и завершит работу.
Поддерживаемые форматы данных
Сжатие
- gzip
- zstd
- lz4
- snappy (фреймированный формат)
Автоопределение безопасно для текстовых форматов, таких как JSON и CSV, поскольку печатные символы ASCII не могут совпасть с сигнатурами magic bytes сжатия.
Поддерживаемые типы данных
Поддержка стандартных типов
- Базовые числовые типы — [U]Int8/16/32/64, Float32/64 и BFloat16
- Целочисленные типы большой разрядности — [U]Int128/256
- Типы Decimal
- Boolean
- String
- FixedString
- Date, Date32
- DateTime, DateTime64 (только часовой пояс UTC)
- Enum8/Enum16
- UUID
- IPv4
- IPv6
- все типы ClickHouse LowCardinality
- Map с ключами и значениями, использующими любой из перечисленных выше типов (включая Nullable)
- Tuple и Array с элементами, использующими любой из перечисленных выше типов (включая Nullable; только один уровень вложенности)
- типы SimpleAggregateFunction (для пунктов назначения AggregatingMergeTree или SummingMergeTree)
Поддержка типа варианта
Variant(String, Int64, DateTime)) для любого JSON-поля
в потоке исходных данных. Поскольку ClickPipes определяет, какой подтип варианта следует использовать, особым образом, в определении Variant можно использовать только один целочисленный тип или один тип datetime —
например, Variant(Int64, UInt32) не поддерживается.
Поддержка типа JSON
Виртуальные столбцы Kinesis
Add Column.
Поле _raw_message можно использовать в случаях, когда нужна только полная JSON-запись Kinesis (например, при использовании функций ClickHouse
JsonExtract* для заполнения материализованного
представления ниже по конвейеру). Для таких пайпов удаление всех «не виртуальных» столбцов может повысить производительность ClickPipes.
Ограничения
- DEFAULT не поддерживается.
- По умолчанию размер отдельных сообщений ограничен 8 МБ (без сжатия) для реплик минимального размера (XS) и 16 МБ (без сжатия) для более крупных реплик. Сообщения, превышающие этот лимит, будут отклонены с ошибкой. Если вам требуются сообщения большего размера, пожалуйста, обратитесь в службу поддержки.
Производительность
Батчинг
- Размер батча достиг максимального значения (100 000 строк или 32 МБ на 1 ГБ памяти реплики)
- Батч оставался открытым в течение максимально допустимого времени (5 секунд)