Поддерживаемые источники данных
Поддерживаемые форматы данных
Поддерживаемые типы данных
Стандартные типы
- Базовые числовые типы — [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
- Time, Time64
- JSON
- все типы ClickHouse LowCardinality
- Map, где ключи и значения используют любой из перечисленных выше типов (включая Nullable)
- Tuple и Array, где элементы используют любой из перечисленных выше типов (включая Nullable; только один уровень вложенности)
- типы SimpleAggregateFunction (для пунктов назначения AggregatingMergeTree или SummingMergeTree)
Поддержка типа Variant
- Union в Avro. Если ваша схема Avro содержит union с несколькими типами, отличными от null, ClickPipes определит подходящий тип Variant. В остальных случаях типы Variant для данных Avro не поддерживаются.
- Поля JSON. Вы можете вручную указать тип Variant (например,
Variant(String, Int64, DateTime)) для любого поля JSON в исходном потоке данных. Сложные подтипы (arrays/maps/tuples) не поддерживаются. Кроме того, из-за особенностей того, как ClickPipes определяет нужный подтип варианта, в определении Variant можно использовать только один целочисленный тип или тип datetime — например,Variant(Int64, UInt32)не поддерживается.
Поддержка JSON-типа
- Поля Avro Record и Protobuf Message всегда можно назначить JSON-столбцу.
- Поля Avro String и Bytes можно назначить JSON-столбцу, если поле Avro фактически содержит объекты JSON, представленные в виде строк.
- Типы Protobuf String и Bytes можно назначить JSON-столбцу, если поле Protobuf фактически содержит объекты JSON, представленные в виде строк.
- Поля JSON, которые всегда содержат объект JSON, можно назначить целевому JSON-столбцу.
Avro
Поддерживаемые типы данных Avro
local-timestamp-millis и local_timestamp-micros. Типы Avro record преобразуются в Tuple, типы array — в Array, а map — в Map (только со строковыми ключами). В общем случае доступны преобразования, перечисленные здесь. Мы рекомендуем использовать точное соответствие типов для числовых типов Avro, поскольку ClickPipes не проверяет переполнение или потерю точности при преобразовании типов.
Также все типы Avro можно вставить в столбец String; в этом случае они будут представлены как корректная JSON-строка.
Типы Nullable и union в Avro
(T, null) или (null, T), где T — базовый тип Avro. Во время определения схемы такие union будут сопоставляться со столбцом ClickHouse “Nullable”. Обратите внимание, что ClickHouse не поддерживает типы
Nullable(Array), Nullable(Map) и Nullable(Tuple). Union с null в Avro для этих типов будут сопоставлены с версиями без Nullable (типы Avro Record сопоставляются с именованным Tuple в ClickHouse). Значения Avro “null” для этих типов будут вставлены как:
- пустой Array для null-массива Avro
- пустой Map для null-значения Avro Map
- именованный Tuple со всеми значениями по умолчанию/нулевыми значениями для null-Record Avro
Protobuf
Поддерживаемые типы данных Protobuf
group из proto2. Для базовых преобразований типов используются
следующие сопоставления:
Также поддерживаются варианты
Array, Map и Nullable для всех базовых типов.
Также поддерживаются следующие стандартные типы:
Protobuf oneof
oneof по умолчанию сопоставляются с именованным Tuple, в котором не более одного поля содержит значение, отличное от значения по умолчанию.
Эти поля также могут автоматически сопоставляться со столбцом Variant, где активное значение принимает тип
того входящего поля, которое задано. Кроме того, каждое входящее поле можно вручную сопоставить с отдельным столбцом ClickHouse; поскольку поля oneof
взаимоисключают друг друга, в каждой записи будет заполнен только один столбец.
Списки сообщений
Виртуальные столбцы Kafka
Add Column.
Обратите внимание, что столбец
_raw_message рекомендуется использовать только для данных JSON.
В сценариях, где требуется только строка JSON (например, при использовании функций ClickHouse JsonExtract* для
заполнения последующей materialized view), удаление всех «не виртуальных» столбцов может повысить производительность ClickPipes.