Справочные материалы
Поддерживаемые источники данных
| Name | Logo | Type | Status | Description |
|---|---|---|---|---|
| Apache Kafka | Streaming | Stable | Настройте ClickPipes и начните приём потоковых данных из Apache Kafka в ClickHouse Cloud. | |
| Confluent Cloud | Streaming | Stable | Используйте совместные возможности Confluent и ClickHouse Cloud с помощью нашей прямой интеграции. | |
| Redpanda | Streaming | Stable | Настройте ClickPipes и начните приём потоковых данных из Redpanda в ClickHouse Cloud. | |
| AWS MSK | Streaming | Stable | Настройте ClickPipes и начните приём потоковых данных из AWS MSK в ClickHouse Cloud. | |
| Azure Event Hubs | Streaming | Stable | Настройте ClickPipes и начните приём потоковых данных из Azure Event Hubs в ClickHouse Cloud. | |
| WarpStream | Streaming | Stable | Настройте ClickPipes и начните приём потоковых данных из WarpStream в ClickHouse Cloud. |
Поддерживаемые форматы данных
Поддерживаются следующие форматы:
Поддерживаемые типы данных
Стандартные
В ClickPipes в настоящее время поддерживаются следующие стандартные типы данных ClickHouse:
- Базовые числовые типы — [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)
Avro
Поддерживаемые типы данных Avro
ClickPipes поддерживает все примитивные и сложные типы Avro, а также все логические типы Avro, за исключением time-millis, time-micros, local-timestamp-millis, local_timestamp-micros и duration. Типы Avro record преобразуются в Tuple, типы array — в Array, а map — в Map (только строковые ключи). В целом доступны преобразования, перечисленные здесь. Мы рекомендуем использовать точное соответствие типов для числовых типов Avro, так как ClickPipes не проверяет переполнение или потерю точности при преобразовании типов.
В качестве альтернативы все типы Avro могут быть записаны в столбец типа String и в этом случае будут представлены как корректная строка в формате JSON.
Типы Nullable и объединения Avro
Типы Nullable в Avro задаются с помощью схемы Union (T, null) или (null, T), где T — базовый тип Avro. При выводе схемы такие объединения будут отображаться в столбец ClickHouse типа Nullable. Обратите внимание, что ClickHouse не поддерживает типы
Nullable(Array), Nullable(Map) или Nullable(Tuple). Объединения Avro с null для этих типов будут отображаться в не-Nullable версии (типы Avro Record отображаются в именованный Tuple в ClickHouse). Значения Avro null для этих типов будут вставляться как:
- Пустой Array для Avro-массива со значением null
- Пустой Map для Avro-отображения со значением null
- Именованный Tuple со всеми значениями по умолчанию/нулевыми значениями для Avro-записи со значением null
Поддержка типа Variant
ClickPipes поддерживает тип Variant в следующих случаях:
- Avro Unions. Если ваша схема Avro содержит объединение (union) с несколькими типами, отличными от null, ClickPipes определит соответствующий тип Variant. В остальных случаях для данных Avro тип Variant не поддерживается.
- Поля JSON. Вы можете вручную указать тип Variant (например,
Variant(String, Int64, DateTime)) для любого поля JSON во входящем потоке данных. Сложные подтипы (массивы/карты/кортежи) не поддерживаются. Кроме того, из-за того, как ClickPipes определяет корректный подтип Variant, в определении Variant может использоваться только один целочисленный или тип даты/времени — например,Variant(Int64, UInt32)не поддерживается.
Поддержка типа JSON
ClickPipes поддерживают тип JSON в следующих случаях:
- Типы Avro Record всегда могут быть назначены столбцу типа JSON.
- Типы Avro String и Bytes могут быть назначены столбцу типа JSON, если столбец фактически содержит объекты JSON типа String.
- Поля JSON, которые всегда являются объектом JSON, могут быть назначены целевому столбцу типа JSON.
Обратите внимание, что вам потребуется вручную изменить целевой столбец на нужный тип JSON, включая любые фиксированные или пропущенные пути.
Виртуальные столбцы Kafka
Ниже приведены виртуальные столбцы, поддерживаемые для потоковых источников данных, совместимых с Kafka. При создании новой целевой таблицы виртуальные столбцы можно добавить с помощью кнопки Add Column.
| Name | Description | Recommended Data Type |
|---|---|---|
_key | Ключ сообщения Kafka | String |
_timestamp | Временная метка Kafka (точность в миллисекундах) | DateTime64(3) |
_partition | Партиция Kafka | Int32 |
_offset | Смещение Kafka | Int64 |
_topic | Топик Kafka | String |
_header_keys | Параллельный массив ключей в заголовках записи | Array(String) |
_header_values | Параллельный массив значений заголовков в заголовках записи | Array(String) |
_raw_message | Полное сообщение Kafka | String |
Обратите внимание, что столбец _raw_message рекомендуется только для данных в формате JSON.
В сценариях, когда требуется только строка JSON (например, при использовании функций ClickHouse JsonExtract* для
заполнения последующей materialized view), можно повысить производительность ClickPipes, удалив все «невиртуальные» столбцы.