es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo JSONEachRow puede soportar datos binarios?

Este documento sugiere que el formato JSONEachRow puede manejar datos binarios.

http://www.devdoc.net/database/ClickhouseDocs_19.4.1.3-docs/interfaces/formats/#jsoneachrow

Según mi comprensión, los datos binarios pueden contener cualquier byte y debido a esto, los datos pueden representar cualquier cosa y pueden romper la estructura JSON.

Por ejemplo, una cadena puede contener algunos bytes que pueden representar una comilla si se interpretan en UTF-8 o algunos bytes inválidos.

Entonces,

¿Cómo lo están logrando?

¿Cómo saben cuándo esa cadena termina realmente?

Al final, la base de datos necesita interpretar el comando y los valores, por lo que deben estar utilizando alguna codificación para hacerlo.

Por favor, corríjame si estoy equivocado de alguna manera.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, según el documento proporcionado, el formato JSONEachRow puede manejar datos binarios.

    El formato JSONEachRow logra esto codificando los datos binarios en una cadena de bytes codificados en base64. Esto garantiza que los datos binarios no se rompan y se puedan transportar de forma segura utilizando la estructura JSON.

    En cuanto a saber cuándo termina realmente la cadena, la cadena codificada de bytes en base64 tiene una delimitación de longitud, de modo que el servidor sabe exactamente cuántos bytes esperar y cuándo termina la cadena.

    Luego, la base de datos descodifica la cadena codificada en base64 de nuevo en los datos binarios originales utilizando un algoritmo de decodificación. Esto permite la transmisión y el almacenamiento seguros y precisos de datos binarios en un formato JSON.

Comments are closed.