MaxCompute admite cuatro tipos de datos complejos: ARRAY, MAP, STRUCT y JSON. Este tema describe las funciones y características del tipo de dato JSON.
Índice
|
Función |
Características |
|
Devuelve un tipo ARRAY, MAP o STRUCT a partir de una cadena JSON según el formato de salida especificado. |
|
|
Extrae una cadena de una cadena JSON mediante una ruta especificada. |
|
|
Transforma un objeto JSON, que puede estar vacío, en un arreglo JSON que contiene dicho objeto. |
|
|
Comprueba si un documento JSON contiene un elemento JSON específico. |
|
|
Verifica si existe un JSONPath determinado dentro de un documento JSON. |
|
|
Expande cada elemento de un arreglo u objeto JSON en varias filas. |
|
|
Extrae datos de una cadena o tipo de dato JSON con base en un JSONPath definido. |
|
|
Convierte un tipo de dato JSON a cadena. La salida no se formatea de manera predeterminada. |
|
|
Inserta un valor JSON en una posición específica dentro de un documento JSON. |
|
|
Devuelve la longitud de los datos JSON en una ruta determinada. |
|
|
Genera un objeto JSON a partir de pares clave-valor. |
|
|
Convierte una cadena al tipo de dato JSON. Se devuelve un error si la cadena no tiene un formato JSON válido. |
|
|
Formatea una cadena JSON para mejorar su legibilidad mediante saltos de línea y espacios. |
|
|
Reemplaza un valor existente o agrega uno nuevo en una ruta específica de un documento JSON. |
|
|
Elimina todos los campos o elementos con valor |
|
|
Extrae cadenas de una cadena JSON estándar para un grupo de claves determinado. |
|
|
Devuelve el nombre del tipo de un valor JSON. |
|
|
Quita las comillas de una cadena JSON. |
|
|
Comprueba si una cadena es JSON válido. |
|
|
Convierte un tipo de dato complejo especificado en una cadena JSON. |
Notas de uso
-
Requisitos de versión del SDK
Solo se admiten Java SDK V0.44.0 y versiones posteriores.
Solo se admiten PyODPS V0.11.4.1 y versiones posteriores.
-
Límites de operaciones de tabla
No es posible agregar una columna JSON a una tabla.
Las tablas agrupadas (clustered tables) no son compatibles.
Las tablas de tipo Delta Table no son compatibles.
-
Límites de operaciones SQL
No se admiten operaciones de comparación sobre el tipo JSON.
No utilice cláusulas
ORDER BYniGROUP BYcon el tipo JSON. Tampoco use una columna de tipo JSON como clave deJOIN.
-
Precisión de datos
La parte entera de un NUMBER JSON se almacena como tipo BIGINT. Se produce un desbordamiento si el entero excede el rango de BIGINT.
La parte decimal de un NUMBER JSON se almacena como tipo DOUBLE. Puede haber pérdida de precisión al convertir la parte decimal al tipo DOUBLE.
Límites de caracteres: El carácter Unicode
\u0000no es compatible en las cadenas utilizadas para generar datos JSON.Compatibilidad de motores: Si utiliza otro motor, como Hologres, para leer datos de una tabla, no podrá leer el tipo de dato JSON.
Las UDF de Java y Python no admiten el tipo JSON.
El tipo de dato JSON permite un anidamiento de hasta 20 niveles de profundidad.
-
Herramientas de desarrollo
Las herramientas de desarrollo compatibles incluyen el cliente MaxCompute (odpscmd), MaxCompute Studio y DataWorks. Los ecosistemas externos como Dataphin no son compatibles. Si desea utilizar el tipo de dato JSON con un sistema externo, confirme su compatibilidad antes de comenzar. Al usar el cliente odpscmd, tenga en cuenta lo siguiente:
Actualice el cliente a la versión V0.46.5 o posterior. De lo contrario, no podrá ejecutar el comando
DESC json_tableni descargar datos JSON mediante Tunnel.En el archivo
conf\odps_config.iniubicado en la ruta de instalación del cliente, establezca el parámetrouse_instance_tunnelenfalse. De lo contrario, las consultas fallarán.
Referencias
Para obtener más información sobre el tipo de dato JSON, consulte JSON data type.