Overview
En esta guía, podrá obtener información sobre los formatos de datos que utiliza cuando trabaja con el conector MongoDB Kafka y su canalización.
Esta guía utiliza el siguiente documento de muestra para mostrar el comportamiento de los diferentes formatos:
{company:"MongoDB"}
JSON
JSON es un formato de intercambio de datos basado en la notación de objetos de JavaScript. Representa el Documento de muestra en JSON como este:
{"company":"MongoDB"}
Es posible que encuentre los siguientes formatos de datos relacionados con JSON al trabajar con el conector:
Para obtener más información sobre JSON, consulte el sitio web oficial de JSON.
Raw JSON
JSON sin procesar es un formato de datos que consta de objetos JSON escritos como cadenas. El documento de ejemplo se representa en JSON sin procesar de la siguiente manera:
"{\"company\":\"MongoDB\"}"
Se utiliza JSON sin procesar al especificar un convertidor de cadenas en un conector de origen o destino. Para ver las configuraciones del conector que especifican un convertidor de cadenas, consulte Guíade convertidores.
BSON
BSON es una codificación de serialización binaria para objetos tipo JSON. BSON codifica el documento de ejemplo de la siguiente manera:
\x1a\x00\x00\x00\x02company\x00\x08\x00\x00\x00MongoDB\x00\x00
Sus conectores utilizan el formato BSON para enviar y recibir documentos desde su implementación de MongoDB.
Para obtener más información sobre BSON,consulte la especificación BSON.
JSON Schema
JSON Schema es una sintaxis para especificar esquemas para objetos JSON. Un esquema es una definición adjunta a un tema de Apache Kafka que define los valores válidos para ese tema.
Puede especificar un esquema para el documento de muestra con el esquema JSON de la siguiente manera:
{ "$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 }
Se utiliza el esquema JSON al aplicar convertidores de esquema JSON a los conectores. Para ver las configuraciones de conectores que especifican un convertidor de esquema JSON, consulte la guía de convertidores.
Para obtener más información, consulte el sitio web oficial del esquema JSON.
Avro
Apache Avro es un framework de código abierto para serializar y transportar datos descritos mediante esquemas. Avro define dos formatos de datos relevantes para el conector:
Para obtener más información sobre Apache Avro, consulte la documentación de Apache Avro.
Avro Schema
El esquema Avro es una sintaxis de definición de esquema basada en JSON. El esquema Avro admite la especificación de los siguientes grupos de tipos de datos:
Advertencia
Tipos de Avro no compatibles
El conector no admite los siguientes tipos de Avro:
enumtipos. Utilicestringen su lugar.fixedtipos. Utilicebytesen su lugar.nullcomo tipo primitivo. Sin embargo, se admitenullcomo elemento en ununion.uniontipos con más de 2 elementos.uniontipos con más de un elementonull.
Importante
Conectores de sumidero y tipos lógicos
El conector de receptor MongoDB Kafka admite todos los tipos primitivos y complejos del esquema Avro; sin embargo, los conectores de receptor solo admiten los siguientes tipos lógicos:
decimaldatetime-millistime-microstimestamp-millistimestamp-micros
Puede construir un esquema de Avro para el documento de muestra de la siguiente manera:
{ "type": "record", "name": "example", "doc": "example documents have a company field", "fields": [ { "name": "company", "type": "string" } ] }
Utilice el esquema Avro cuando defina un esquema para un conector de origen MongoDB Kafka.
Para obtener una lista de todos los tipos de esquemas de Avro, consulte la especificación de Apache Avro.
Codificación binaria Avro
Avro especifica una codificación de serialización binaria para objetos JSON definidos por un esquema Avro.
Si utiliza el esquema Avro anterior, puede representar el documento de muestra con codificación binaria Avro de la siguiente manera:
\x0eMongoDB
Se utiliza la codificación binaria Avro al especificar un conversor Avro en un conector de origen o destino. Para ver las configuraciones de conectores que especifican un conversor Avro, consulte la guía de conversores.
Para obtener más información sobre la codificación binaria de Avro, consulte esta sección de la especificación de Avro.
Arreglos de bytes
Una matriz de bytes es una secuencia consecutiva de bytes no estructurados.
Puede representar el documento de muestra como una matriz de bytes utilizando cualquiera de las codificaciones mencionadas anteriormente.
Se utilizan matrices de bytes cuando los convertidores envían o reciben datos de Apache Kafka. Para más información sobre convertidores, consulte la guía de convertidores.