Data Formats
Nesta página
Visão geral
Neste guia, você pode aprender sobre os formatos de dados que usa ao trabalhar com o Conector Kafka MongoDB e seu pipeline.
Este guia usa o seguinte documento de amostra para mostrar o comportamento dos diferentes formatos:
{company:"MongoDB"}
JSON
JSON é um formato de troca de dados baseado em notação de objeto JavaScript. Você representa odocumento sample em JSON da seguinte forma:
{"company":"MongoDB"}
Você pode encontrar os seguintes formatos de dados relacionados a JSON ao trabalhar com o conector:
Para mais informações sobre JSON, consulte o site oficial de JSON.
Raw JSON
O JSON bruto é um formato de dados que consiste em objetos JSON gravados como strings. Você representa o documento de amostra em JSON bruto desta forma:
"{\"company\":\"MongoDB\"}"
Você usa JSON bruto ao especificar um conversor de string em um conector de origem ou coletor. Para visualizar as configurações de conectores que especificam um conversor de string, consulte o guia Conversores .
BSON
BSON é uma codificação de serialização binária para objetos semelhantes a JSON. A BSON codifica o documento de exemplo da seguinte forma:
\x1a\x00\x00\x00\x02company\x00\x08\x00\x00\x00MongoDB\x00\x00
Seus conectores usam o formato BSON para enviar e receber documentos do deployment do MongoDB.
Para obter mais informações sobre o BSON, consulte a especificação BSON.
JSON schema
O JSON schema é uma sintaxe para especificar esquemas para objetos JSON. Um esquema é uma definição anexada a um Tópico Apache Kafka que define valores válidos para esse tópico.
Você pode especificar um esquema para o documento de exemplo com JSON schema da seguinte maneira:
{ "$schema":"http://json-schema.org/draft-07/schema", "$id":"unique id", "type":"object", "title":"Example Schema", "description":"JSON Schema for the sample document.", "required":[ "company" ], "properties":{ "company":{ "$id":"another unique id", "type":"string", "title":"Company", "description":"A field to hold the name of a company" } }, "additionalProperties":false }
Você utiliza o JSON schema quando você aplica conversores de JSON schema para seus conectores. Para visualizar as configurações de conector que especificam um conversor de JSON schema, consulte a guia Conversores.
Para mais informações, consulte o site oficial do JSON Schema.
Avro
O Apache Avro é uma estrutura de código aberto para serializar e transportar dados descritos por esquemas. A Avro define dois formatos de dados relevantes para o conector:
Para obter mais informações sobre o Apache Avro, consulte a Documentação do Apache Avro.
Avro Schema
O esquema Avro é uma sintaxe de definição de esquema baseada em JSON. O esquema Avro suporta a especificação dos seguintes grupos de tipos de dados:
Aviso
Tipos de Avro não suportados
O conector não é compatível com os seguintes tipos Avro:
enum
tipos. Em vez disso, usestring
.fixed
tipos. Em vez disso, usebytes
.null
como um tipo primitivo. No entanto,null
como um elemento em umunion
é suportado.union
tipos com mais de 2 elementos.union
tipos com mais de um elementonull
.
Importante
Conectores de afundamento e tipos lógicos
O conector de coletor do MongoDB Kafka é compatível com todos os tipos primitivos e complexos do esquema Avro, mas os conectores de coletor são compatíveis apenas com os seguintes tipos lógicos:
decimal
date
time-millis
time-micros
timestamp-millis
timestamp-micros
Você pode construir um esquema Avro para o documento de exemplo da seguinte maneira:
{ "type": "record", "name": "example", "doc": "example documents have a company field", "fields": [ { "name": "company", "type": "string" } ] }
Você usa o esquema Avro quando definir um esquema para um conector de origem MongoDB Kafka.
Para obter uma lista de todos os tipos de esquema Avro, consulte a especificação Apache Avro.
Codificação binária Avro
Avro especifica uma codificação de serialização binária para objetos JSON definidos por um esquema Avro.
Se você usar o esquema Avro anterior, poderá representar o documento de exemplo com codificação binária Avro da seguinte maneira:
\x0eMongoDB
Você usa a codificação binária Avro quando especifica um conversor Avro em uma fonte ou conector de pia. Para visualizar as configurações de conectores que especificam um conversor Avro, consulte o guia Conversores.
Para saber mais sobre a codificação binária Avro, consulte esta seção da especificação Avro.
Arrays de bytes
Uma array de bytes é uma sequência consecutiva de bytes não estruturados.
Você pode representar o documento de amostra como uma array de bytes usando qualquer uma das codificações mencionadas acima.
Você usa arrays de bytes quando seus conversores enviam ou recebem dados do Apache Kafka. Para mais informações sobre conversores, consulte o guia Conversores.