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. Represente o documento de amostra 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
Raw JSON is a data format that consists of JSON objects written as strings. You represent the sample document in Raw JSON like this:
"{\"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 is a binary serialization encoding for JSON-like objects. BSON encodes the sample document like this:
\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.
You can specify a schema for the sample document with JSON Schema like this:
{ "$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:
enumtipos. Em vez disso, usestring.fixedtipos. Em vez disso, usebytes.nullcomo um tipo primitivo. No entanto,nullcomo um elemento em umunioné suportado.uniontipos com mais de 2 elementos.uniontipos 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:
decimaldatetime-millistime-microstimestamp-millistimestamp-micros
You can construct an Avro schema for the sample document like this:
{ "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.
If you use the preceding Avro schema, you can represent the sample document with Avro binary encoding like this:
\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.