Pular para o conteúdo principal

Fontes de dados compatíveis

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.
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:

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. 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 2 de julho de 2026