Pular para o conteúdo principal

Fontes de dados compatíveis

NomeLogoTipoStatusDescrição
Apache Kafkalogo do Apache KafkaStreamingEstávelConfigure o ClickPipes e inicie a ingestão de dados em streaming do Apache Kafka para o ClickHouse Cloud.
Confluent Cloudlogo do Confluent CloudStreamingEstávelDesbloqueie o poder combinado do Confluent e do ClickHouse Cloud por meio da nossa integração direta.
Redpandalogo do RedpandaStreamingEstávelConfigure o ClickPipes e inicie a ingestão de dados em streaming do Redpanda para o ClickHouse Cloud.
AWS MSKlogo do AWS MSKStreamingEstávelConfigure o ClickPipes e inicie a ingestão de dados em streaming do AWS MSK para o ClickHouse Cloud.
Azure Event Hubslogo do Azure Event HubsStreamingEstávelConfigure o ClickPipes e inicie a ingestão de dados em streaming do Azure Event Hubs para o ClickHouse Cloud.
WarpStreamlogo do WarpStreamStreamingEstávelConfigure o ClickPipes e inicie a ingestão de dados em streaming do WarpStream para o ClickHouse Cloud.

Formatos de dados compatíveis

Os formatos compatíveis são:

Tipos de dados suportados

Tipos padrão

Os seguintes tipos de dados padrão do ClickHouse são atualmente compatíveis com o ClickPipes:
  • Tipos numéricos básicos - [U]Int8/16/32/64, Float32/64 e BFloat16
  • Tipos inteiros grandes - [U]Int128/256
  • Tipos Decimal
  • Boolean
  • String
  • FixedString
  • Date, Date32
  • DateTime, DateTime64 (apenas fusos horários UTC)
  • Enum8/Enum16
  • UUID
  • IPv4
  • IPv6
  • Time, Time64
  • JSON
  • todos os tipos LowCardinality do ClickHouse
  • map com chaves e valores usando qualquer um dos tipos acima (incluindo Nullable)
  • Tuple e Array com elementos usando qualquer um dos tipos acima (incluindo Nullable, com apenas um nível de profundidade)
  • Tipos SimpleAggregateFunction (para destinos AggregatingMergeTree ou SummingMergeTree)

Suporte ao tipo Variant

O ClickPipes oferece suporte ao tipo Variant nas seguintes situações:
  • Unions do Avro. Se o seu esquema Avro contiver uma union com vários tipos não nulos, o ClickPipes inferirá o tipo Variant apropriado. Fora isso, tipos Variant não são compatíveis com dados Avro.
  • Campos JSON. Você pode especificar manualmente um tipo Variant (como Variant(String, Int64, DateTime)) para qualquer campo JSON no fluxo de dados de origem. Subtipos complexos (arrays/maps/tuples) não são compatíveis. Além disso, devido à forma como o ClickPipes determina qual subtipo Variant correto deve ser usado, apenas um tipo inteiro ou datetime pode ser usado na definição de Variant - por exemplo, Variant(Int64, UInt32) não é compatível.

Suporte ao tipo JSON

O ClickPipes oferece suporte ao tipo JSON nas seguintes situações:
  • Campos Avro Record e Protobuf Message sempre podem ser atribuídos a uma coluna JSON.
  • Campos Avro String e Bytes podem ser atribuídos a uma coluna JSON se o campo Avro realmente contiver objetos JSON em formato String.
  • Tipos Protobuf String e Bytes podem ser atribuídos a uma coluna JSON se o campo Protobuf realmente contiver objetos JSON em formato String.
  • Campos JSON que sejam sempre um objeto JSON podem ser atribuídos a uma coluna JSON de destino.
Observe que será necessário alterar manualmente a coluna de destino para o tipo JSON desejado, incluindo quaisquer caminhos fixos ou ignorados.

Avro

Tipos de dados Avro compatíveis

O ClickPipes oferece suporte a todos os tipos Primitive e Complex do Avro, bem como a todos os tipos lógicos do Avro, exceto local-timestamp-millis e local_timestamp-micros. Os tipos record do Avro são convertidos em Tuple, os tipos array em Array e map em Map (apenas chaves do tipo string). Em geral, as conversões listadas aqui estão disponíveis. Recomendamos usar correspondência exata de tipos para os tipos numéricos do Avro, pois o ClickPipes não verifica overflow nem perda de precisão na conversão de tipos. Como alternativa, todos os tipos do Avro podem ser inseridos em uma coluna String e, nesse caso, serão representados como uma string JSON válida.

Tipos Nullable e unions do Avro

Os tipos Nullable no Avro são definidos usando um esquema Union de (T, null) ou (null, T), em que T é o tipo base do Avro. Durante a inferência de esquema, essas unions serão mapeadas para uma coluna “Nullable” no ClickHouse. Observe que o ClickHouse não oferece suporte a Nullable(Array), Nullable(Map) ou Nullable(Tuple). As unions com null do Avro para esses tipos serão mapeadas para versões não anuláveis (os tipos Record do Avro são mapeados para um named Tuple no ClickHouse). Os “nulls” do Avro para esses tipos serão inseridos como:
  • Um Array vazio para um array nulo do Avro
  • Um Map vazio para um Map nulo do Avro
  • Um named Tuple com todos os valores padrão/zero para um Record nulo do Avro

Protobuf

Tipos de dados Protobuf suportados

O ClickPipes oferece suporte a todos os tipos do Protobuf 2 e 3, com exceção do tipo group do proto 2, obsoleto há muito tempo. As conversões básicas de tipos usam os seguintes mapeamentos:
Variantes Array, Map e Nullable de todos os tipos básicos também são suportadas.
Tipo ProtobufTipo ClickHouse
boolUInt8
floatFloat32
doubleFloat64
int32, sint32, sfixed32Int32
int64, sint64, sfixed64Int64
uint32, fixed32UInt32
uint64, fixed64UInt64
string, bytesString
enumEnum
repeated TArray(T)
messageTuple
Para tipos numéricos, recomenda-se usar correspondência exata para evitar estouros ou perda de precisão.
Os seguintes tipos bem conhecidos também são suportados:
Tipo bem conhecidoTipo ClickHouse
google.protobuf.TimestampDateTime, DateTime64
google.protobuf.DurationTime, Time64
google.protobuf.StringValue, google.protobuf.BytesValueNullable(String)
google.protobuf.Int32Value, google.protobuf.SInt32Value, google.protobuf.SFixed32ValueNullable(Int32)
google.protobuf.Int64Value, google.protobuf.SInt64Value, google.protobuf.SFixed64ValueNullable(Int64)
google.protobuf.UInt32Value, google.protobuf.Fixed32ValueNullable(UInt32)
google.protobuf.UInt64Value, google.protobuf.Fixed64ValueNullable(UInt64)
google.protobuf.FloatValueNullable(Float32)
google.protobuf.DoubleValueNullable(Float64)
google.protobuf.BoolValueNullable(UInt8)

oneof do Protobuf

Durante a inferência de esquema, os campos oneof do Protobuf são mapeados por padrão para uma Tuple nomeada, em que no máximo um campo terá um valor diferente do padrão. Esses campos também podem ser mapeados automaticamente para uma coluna Variant, em que o valor ativo assume o tipo do campo constituinte que estiver definido. Como alternativa, cada campo constituinte pode ser mapeado manualmente para sua própria coluna no ClickHouse; como os campos oneof são mutuamente exclusivos, apenas uma coluna será preenchida por registro.

Listas de mensagens

Se o esquema Protobuf de nível superior definido para o ClickPipe contiver um único campo repetido que seja, ele próprio, uma Message do protobuf, a inferência de esquema e o mapeamento de colunas serão baseados no campo Message “contido”. A mensagem do Kafka será processada como uma lista dessas mensagens, e uma única mensagem do Kafka será descompactada em várias linhas no ClickHouse.

Colunas virtuais do Kafka

As colunas virtuais a seguir são compatíveis com fontes de dados de streaming compatíveis com Kafka. Ao criar um novo destino, as colunas virtuais podem ser adicionadas à tabela de destino usando o botão Add Column.
NomeDescriçãoTipo de dado recomendado
_keyChave da mensagem do KafkaString
_timestampTimestamp do Kafka (precisão de milissegundos)DateTime64(3)
_partitionPartição do KafkaInt32
_offsetOffset do KafkaInt64
_topicTópico do KafkaString
_header_keysArray paralelo de chaves nos headers do registroArray(String)
_header_valuesArray paralelo de headers nos headers do registroArray(String)
_raw_messageMensagem completa do KafkaString
Observe que a coluna _raw_message é recomendada apenas para dados JSON. Para casos de uso em que apenas a string JSON é necessária (como ao usar funções JsonExtract* do ClickHouse para alimentar uma visão materializada downstream), remover todas as colunas “não virtuais” pode melhorar o desempenho do ClickPipes.
Última modificação em 10 de junho de 2026