Справочник
Поддерживаемые источники данных
| Название | Логотип | Тип | Статус | Описание |
|---|---|---|---|---|
| Apache Kafka | Потоковый | Стабильный | Настройте ClickPipes и начните приём потоковых данных из Apache Kafka в ClickHouse Cloud. | |
| Confluent Cloud | Потоковый | Стабильный | Задействуйте совокупную мощь Confluent и ClickHouse Cloud с помощью нашей прямой интеграции. | |
| Redpanda | Потоковый | Стабильный | Настройте ClickPipes и начните приём потоковых данных из Redpanda в ClickHouse Cloud. | |
| AWS MSK | Потоковый | Стабильный | Настройте ClickPipes и начните приём потоковых данных из AWS MSK в ClickHouse Cloud. | |
| Azure Event Hubs | Потоковый | Стабильный | Настройте ClickPipes и начните приём потоковых данных из Azure Event Hubs в ClickHouse Cloud. | |
| WarpStream | Потоковый | Стабильный | Настройте 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 для этих типов будут отображены в варианты, не допускающие NULL (типы Avro Record отображаются в именованный Tuple в ClickHouse). Значения null в Avro для этих типов будут вставляться как:
- Пустой Array для массива Avro со значением null
- Пустой Map для Map Avro со значением null
- Именованный Tuple со всеми значениями по умолчанию/нулевыми значениями для Record Avro со значением null
Поддержка типа Variant
ClickPipes поддерживает тип Variant в следующих случаях:
- Объединения Avro (Avro unions). Если ваша схема Avro содержит union с несколькими типами, отличными от null, ClickPipes выведет соответствующий тип Variant. В остальных случаях тип Variant для данных Avro не поддерживается.
- Поля JSON. Вы можете вручную указать тип Variant (например,
Variant(String, Int64, DateTime)) для любого поля JSON во входящем потоке данных. Сложные подтипы (массивы/отображения/кортежи) не поддерживаются. Кроме того, из-за того, как ClickPipes определяет корректный подтип Variant, в определении Variant может использоваться только один целочисленный или один тип даты/времени — например,Variant(Int64, UInt32)не поддерживается.
Поддержка типа JSON
ClickPipes поддерживают тип JSON в следующих случаях:
- Типы Avro Record всегда можно сопоставить со столбцом типа JSON.
- Типы Avro String и Bytes можно сопоставить со столбцом типа JSON, если в столбце фактически хранятся строки в формате JSON.
- Поля JSON, которые всегда являются JSON-объектом, можно сопоставить с целевым столбцом типа JSON.
Обратите внимание, что целевой столбец (включая любые явно заданные или пропускаемые пути) вам потребуется вручную изменить на нужный тип JSON.
Виртуальные столбцы Kafka
Для потоковых источников данных, совместимых с Kafka, доступны следующие виртуальные столбцы. При создании новой целевой таблицы виртуальные столбцы можно добавить с помощью кнопки Add Column.
| Name | Description | Recommended Data Type |
|---|---|---|
_key | Kafka Message Key | String |
_timestamp | Kafka Timestamp (точность в миллисекундах) | DateTime64(3) |
_partition | Kafka Partition | Int32 |
_offset | Kafka Offset | Int64 |
_topic | Kafka Topic | String |
_header_keys | Параллельный массив ключей в заголовках (Headers) записи | Array(String) |
_header_values | Параллельный массив значений заголовков (Headers) записи | Array(String) |
_raw_message | Полное сообщение Kafka | String |
Обратите внимание, что столбец _raw_message рекомендуется использовать только для данных в формате JSON.
Для сценариев, когда требуется только JSON-строка (например, при использовании функций ClickHouse JsonExtract* для
заполнения нижестоящего materialized view), можно повысить производительность ClickPipes, удалив все «не виртуальные» столбцы.