Funciones JSON
Temas
nota
Le recomendamos que utilice las siguientes funciones para trabajar con JSON:
Con JSON_PARSE, solo necesita convertir el texto JSON en un valor de tipo SUPER una vez en la ingesta, después de lo cual puede operar con los valores SUPER. Amazon Redshift analiza los valores SUPER de forma más eficiente que VARCHAR, que es el resultado de las funciones JSON basadas en texto. Para obtener más información acerca de cómo trabajar con el tipo de datos SUPER, vaya a Ingesta y consulta de datos semiestructurados en Amazon Redshift.
Cuando necesita almacenar un conjunto relativamente pequeño de pares clave-valor, puede ahorrar espacio al almacenar los datos en formato JSON. Debido a que las cadenas JSON se pueden almacenar en una única columna, utilizar JSON puede ser más eficiente que almacenar los datos en formato de tabla. Por ejemplo, suponga que tiene una tabla dispersa, donde necesita tener muchas columnas para representar completamente todos los atributos posibles, pero la mayoría de los valores son NULL para cualquier fila o columna dada. Al usar JSON para almacenamiento, puede almacenar los datos para una fila en pares clave-valor en una única cadena JSON y eliminar las columnas de tabla poco pobladas.
Además, puede modificar fácilmente las cadenas JSON para almacenar pares clave-valor adicionales cuando el esquema JSON cambia sin necesidad de agregar columnas a una tabla.
Recomendamos utilizar JSON con moderación. JSON no es una buena opción para almacenar grandes conjuntos de datos porque, al almacenar datos dispersos en una única columna, JSON no utiliza la arquitectura de almacén de columnas de Amazon Redshift. Aunque Amazon Redshift admite las funciones JSON en las columnas CHAR y VARCHAR, recomendamos utilizar SUPER para procesar los datos con el formato de serialización de JSON. SUPER utiliza una representación sin esquema posterior al análisis con la que se pueden consultar datos jerárquicos de manera eficiente. Para obtener más información acerca del tipo de datos SUPER, consulte Ingesta y consulta de datos semiestructurados en Amazon Redshift.
JSON utiliza cadenas de texto con cifrado UTF-8, por lo que las cadenas JSON se pueden almacenar como tipos de datos CHAR o VARCHAR.
Las cadenas JSON deben tener el formato JSON adecuado, conforme a las siguientes reglas:
-
El JSON a nivel raíz puede ser un objeto JSON o una matriz JSON. Un objeto JSON es un conjunto no ordenado de pares clave-valor separados por comas y delimitado con llaves.
Por ejemplo,
{"one":1, "two":2}
-
Una matriz JSON es un conjunto ordenado de valores separados por comas delimitado entre corchetes.
A continuación se muestra un ejemplo:
["first", {"one":1}, "second", 3, null]
-
Las matrices JSON utilizan un índice basado en cero; el primer elemento en una matriz está en la posición 0. En un par clave:valor de JSON, la clave es una cadena con comillas dobles.
-
El valor JSON puede ser cualquiera de los siguientes valores:
-
Objeto JSON
-
matriz
-
cadena
Se representa con comillas dobles
-
number
Incluye números enteros, decimales y flotantes
-
boolean
-
null
-
-
Los objetos y las matrices vacíos son valores JSON válidos.
-
Los campos JSON distinguen entre mayúsculas y minúsculas.
-
Se ignoran los espacios en blanco entre los elementos estructurales de JSON (como
{ }, [ ]
).
Las funciones JSON de Amazon Redshift y el comando COPY de Amazon Redshift utilizan los mismos métodos para trabajar con datos con formato JSON. Para obtener más información acerca de cómo trabajar con JSON;, consulte COPY de formato JSON