Перейти к основному содержимому
Перейти к основному содержимому

Справочник

Поддерживаемые источники данных

НазваниеЛоготипТипСтатусОписание
Apache KafkaПотоковыйСтабильныйНастройте ClickPipes и начните приём потоковых данных из Apache Kafka в ClickHouse Cloud.
Confluent CloudПотоковыйСтабильныйЗадействуйте совокупную мощь Confluent и ClickHouse Cloud с помощью нашей прямой интеграции.
Redpanda
логотип 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.

NameDescriptionRecommended Data Type
_keyKafka Message KeyString
_timestampKafka Timestamp (точность в миллисекундах)DateTime64(3)
_partitionKafka PartitionInt32
_offsetKafka OffsetInt64
_topicKafka TopicString
_header_keysПараллельный массив ключей в заголовках (Headers) записиArray(String)
_header_valuesПараллельный массив значений заголовков (Headers) записиArray(String)
_raw_messageПолное сообщение KafkaString

Обратите внимание, что столбец _raw_message рекомендуется использовать только для данных в формате JSON. Для сценариев, когда требуется только JSON-строка (например, при использовании функций ClickHouse JsonExtract* для заполнения нижестоящего materialized view), можно повысить производительность ClickPipes, удалив все «не виртуальные» столбцы.