En esta Ruta de aprendizaje conectada, crearemos una Cadena que ilustra cómo convertir a CSV un conjunto de datos JSON con objetos anidados. Además, exploraremos cómo utilizar una unión cartesiana para aplanar esta estructura anidada.
| Objetivo principal de aprendizaje | Capacidad del conector JSON para objetos JSON anidados |
| Objetivos de aprendizaje secundarios | Transformación tabular Comando de consulta avanzada |
| Requisitos previos | Configurar la conexión del conector JSON Configurar la conexión del conector HTTP. |
| Plantilla de ayuda | CLP | Acceso a Objetos Anidados JSON |
Paso 1: Crea una Cadena
- Agregar una nueva Cadena.
- Nombre de la Cadena: CLP | Acceso a Objetos Anidados JSON.
- Crea una variable de cadena y rellénala con los siguientes valores:
- Nombre: cv-JSON-Donut
- Valor: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/donut.json
- Guarda la cadena.
Etapa 2: Recuperar datos JSON
Utiliza el conector HTTP para recuperar datos relacionados con los recuentos en formato JSON desde una ubicación web.
- Añade un comando GET desde el conector HTTP al nodo Inicio.
- Configura el comando utilizando los siguientes valores:
Nombre OBTENER - Datos JSON Nombre de usuario <leave> Contraseña <leave> Certificado CA <leave> Certificado <leave> Certificado Clave Privada <leave> Mostrar respuesta Comprobado dirección URL|URL cv-JSON-Donut Variable en cadena Cadena de consulta <leave> Tipo de contenido aplicación/json Respuesta
<leave> - Guarda el comando.
Etapa 3: Obtener datos JSON no anidados
Esta cadena utiliza el comando Objeto a CSV del Conector JSON para extraer las claves de nombre y tipo, que no están anidadas, del objeto JSON.
Nota: Es importante comprender el esquema del conjunto de datos JSON. Para visualizar el esquema, se puede utilizar un comando Listar contenido de archivos del conector Utilidades de archivos. Como referencia, aquí tienes el esquema JSON del "donut":
Esquemas:
{"id": "0001", "tipo": "rosquilla", "nombre": "Tarta", "ppu":0.55, "rebozado": {"masa":[{"id": "1001", "tipo": "Normal"},{"id": "1002", "tipo": "Chocolate"},{"id": "1003", "tipo": "Arándanos"},{"id": "1004", "tipo": "Comida del Diablo"}]}, "cobertura":[{"id": "5001", "tipo": "Ninguna"},{"id":"5002", "type": "Glazed"}, {"id": "5005", "type": "Sugar"},{"id": "5007", "type": "Powdered Sugar"}, {"id": "5006", "type": "Chocolate with Sprinkles"},{"id": "5003", "type": "Chocolate"}, {"id": "5004", "type": "Maple"}]. } - Añadir un Objeto al Comando CSV desde el Conector JSON a la Cadena.
- Conecta el Nodo de inicio (GET - Datos JSON) al comando Objeto a CSV.
- Abre el comando y configúralo utilizando los siguientes valores.
- Nombre del comando: Objeto a CSV - Nombre y Tipo.
- Para el parámetro Datos JSON, selecciona la Respuesta Resultado desde el comando GET - Datos JSON.
- Deja en blanco los parámetros Texto de entrada y Ruta a la raíz.
- Deja el parámetro Delimitador multivalor como una coma (,).
- Marca la casilla de verificación Vista previa del resultado.
- Selecciona Tubería para el parámetro Delimitador.
La sección Columnas se utiliza para especificar qué elementos del objeto JSON se extraerán a un conjunto de datos en columnas (CSV). - Haz clic en el botón Añadir una vez para añadir dos columnas.
- Para la primera columna, introduce nombre para el Nombre de columna y .nombre para los parámetros JSONPath.
- Para la segunda columna, introduce tipo para la columna Tipo de y .tipo para los parámetros JSONPath.
- Guarda el comando.
Etapa 4: Obtén la lista de los ingredientes.
Utiliza el comando Matriz a CSV del conector JSON para obtener la lista de toppings de la matriz JSON anidada.
- Añadir un comando Matriz a CSV desde el conector JSON a la cadena.
- Conecta el comando GET - Datos JSON al comando Matriz a CSV.
- Configura el comando utilizando los siguientes valores:
- Pon nombre al comando: Matriz a CSV - Complementos.
- Para el parámetro Datos JSON, selecciona Respuesta Resultado desde el comando GET - Datos JSON.
- Deja en blanco el parámetro Texto de entrada.
- Para el parámetro Path to root, escribe topping (en minúsculas) y pulsa Intro. Topping debe aparecer con un signo igual delante en una burbuja gris.
- Deja en blanco el parámetro Filtro.
- Deja el valor predeterminado de coma (,) para el parámetro Delimitador multivalor.
- Marca la casilla de verificación Vista previa del resultado.
- En la sección Columnas, especificamos la(s) clave(s) en la matriz JSON para la(s) que extraer el(los) valor(es) a una columna en el CSV resultante.
- Para el primer parámetro Nombre de columna, introduce ToppingID, y en el parámetro JSONPath, introduce .id.
- Para el segundo parámetro Nombre de la columna, introduce ToppingType, y en el parámetro JSONPath, introduce .type.
- Para el parámetro Delimitador, selecciona Tubería.
- Guarda el comando.
Etapa 5: Obtén una lista de los bateadores.
Esta cadena utiliza el comando Matriz a CSV del conector JSON para obtener la lista de bateadores de la matriz JSON anidada. Utilizaremos dos comandos De matriz a CSV para extraer los rebozados y los toppings debido a la diferente anidación de cada matriz.
Utilizar un comando Objeto a CSV con JSONPaths anidados (por ejemplo, .topping[*].type) crea valores multiparte, que son más difíciles de utilizar en un conjunto de datos CSV.
- Añade un comando Matriz a CSV desde el conector JSON a la cadena.
- Conecta el comando GET - Datos JSON al comando Matriz a CSV.
- Configura el comando utilizando los siguientes valores:
- Nombre del comando: Matriz a CSV - Bateadores.
- Para el parámetro Datos JSON, selecciona la Respuesta Resultado desde el comando GET - Datos JSON.
- Deja en blanco el parámetro Texto de entrada.
- Para el parámetro Ruta a la raíz, escribe bateadores (todo en minúsculas) y pulsa Intro. A continuación, escribe batter (todo en minúsculas) y pulsa Intro.
Mezclas y mezcla deben aparecer en este orden en dos burbujas grises. - Deja en blanco el parámetro Filtro.
- Deja el valor predeterminado, coma (,), para el parámetro Delimitador multivalor.
- Marca la opción Vista previa de resultado.
- En la sección Columnas, especificamos la(s) clave(s) en la matriz JSON para la(s) que extraer el(los) valor(es) a una columna en el CSV resultante.
- Para el parámetro Nombre de columna, introduce BatterID y en el parámetro JSONPath, introduce .id.
- Para el parámetro Nombre de la columna, introduce BatterType y en el parámetro JSONPath, introduce .type.
- Para el parámetro Delimitador, selecciona Tubería.
- Guarda el comando.
Etapa 6: Aplanar los datos
Utilizaremos una "unión cartesiana" en un comando Consulta avanzada del conector de transformación tabular para aplanar el conjunto de datos. Una unión cartesiana crea todas las combinaciones posibles de los elementos que extrajimos utilizando los comandos Objeto a CSV y Matriz a CSV.
- Añade un comando Consulta avanzada desde el conector de Transformación tabular a la cadena.
- Conecta cada uno de los Objeto a CSV - Nombre y Tipo, Matriz a CSV - Bateadores, y Matriz a CSV - Toppings Comandos al comando Consulta avanzada.
- Configura este comando utilizando los siguientes valores:
- Pon nombre al comando: Consulta avanzada - Aplanar objeto JSON.
- En la sección Tablas, haz clic en el botón Añadir a dos veces para que haya tres tablas disponibles.
Completa las Tablas utilizando los siguientes valores:Archivo Nombre de tabla Selecciona el archivo convertido Salida del comando Objeto a CSV - Nombre y tipo. Nombre Seleccionar Archivo convertido Salida desde la Matriz a CSV - Comando Remates. Bateador Selecciona el archivo convertido Resultado del comando Matriz a CSV - Toppings. Arriba - Para el parámetro Consulta, introduce lo siguiente:
Selecciona Tipo como tipo_de_postre, Nombre como variedad, TipoDeBatido, TipoDeTopado a partir de Nombre, Batido, Topado. - Para los parámetros Delimitador de Entrada y Delimitador de Salida, especifica Tubería.
- Marca la casilla Vista previa de resultados.
- Guarda el comando.
Paso 7: Probar la cadena y revisar los resultados AAA
- Publica en la Cadena.
- Haz clic en Ejecutar y luego selecciona Ejecutar Cadena.
- Una vez completada la Cadena,
- Haz clic en el nodo Consulta avanzada - Aplanar objeto JSON y selecciona la pestaña Resultados.
- Confirma que el Recuento de Registros es 28.
- Selecciona la pestaña Registros y confirma que la vista previa de datos coincide con la siguiente captura de pantalla.
Para obtener más información sobre la transformación de datos mediante Cadenas, consulta Rutas de aprendizaje conectadas - Introducción a la transformación.