En esta Ruta de aprendizaje conectada, crearemos una Cadena que ilustra cómo convertir un archivo XML a CSV. Además, exploraremos cómo comparar conjuntos de datos para aislar diferencias.
Objetivo principal de aprendizaje | El conector XML |
Objetivos de aprendizaje secundarios | Transformación tabular Filtros inteligentes, cambio de delimitador y comandos de consulta avanzados |
Requisitos previos | Configurar la conexión del conector XML |
Plantilla de apoyo | CLP | Acceso a datos XML |
Paso 1: Crear una cadena
- Añadir una nueva cadena
- Nombre de la cadena CLP | Acceso a datos XML
- Crea dos variables Cadena:
- En Variables en cadena, haga clic dos veces en el signo más
- Variable XML
- Nombre: cv-XML-Employee
- Valor: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employees.xml
- Variable CSV
- Nombre: cv-CSV-Employee
- Valor: https://cs-sftp-training-bucket.s3.amazonaws.com/cs-training/transformation-qs/employee_detail.csv
- Salvar la cadena
Paso 2: Recuperar datos en formato CSV
Utilice el conector HTTP para recuperar datos relacionados con el recuento en formato CSV. En pasos posteriores, recuperaremos información similar sobre recuentos en formato XML y, a continuación, compararemos los conjuntos de datos para identificar las diferencias.
- Añada un comando GET del conector HTTP al nodo Inicio.
- Configure el Comando con lo siguiente:
Nombre | GET - Recuento en formato CSV |
Nombre de usuario | <dejar en blanco> |
Contraseña | <dejar en blanco> |
Certificado CA | <dejar en blanco> |
Certificado | <dejar en blanco> |
Clave privada del certificado | <dejar en blanco> |
Mostrar respuesta | Comprobado |
dirección URL|URL | cv-CSV-Empleado Variable de cadena |
Cadena de consulta | <dejar en blanco> |
Tipo de contenido | texto/csv |
Respuesta | <dejar en blanco> |
- Guardar el comando
Paso 3: Recuperar datos en formato XML
Utilice el conector HTTP para recuperar datos relacionados con el recuento en formato XML. Como se indica en el paso 2, en un paso posterior compararemos el conjunto de datos XML con el conjunto de datos CSV para identificar las diferencias.
- Añada un comando GET del conector HTTP a la cadena.
- Conecte el nodo de inicio (GET - Recuento en formato CSV) al comando GET .
- Configure el Comando con lo siguiente:
Nombre GET - Recuento en formato XML Nombre de usuario <dejar en blanco> Contraseña <dejar en blanco> Certificado CA <dejar en blanco> Certificado <dejar en blanco> Clave privada del certificado <dejar en blanco> Mostrar respuesta Comprobado dirección URL|URL cv-XML-Empleado Variable de cadena Cadena de consulta <dejar en blanco> Tipo de contenido aplicación/xml Respuesta <dejar en blanco> - Guardar el comando
Paso 4: Convertir el archivo XML a Delimitado
Utilizar el conector XML para convertir los datos XML a un formato CSV que nos permita aprovechar comandos más adelante en la cadena que esperan datos en un formato delimitado.
- Añada un comando Lista de elementos a CSV desde el conector XML a la cadena.
- Conecte el comando GET - Headcount in XML Format al comando Element List to CSV .
- En el parámetro Archivo de entrada , seleccione la Salida de respuesta del comando GET - Recuento en formato XML .
- Deje en blanco el parámetro Entrada Texto.
- En el parámetro Path to root , introduzca la siguiente información sobre el sobre:
/datos_empleado/empleado
- Compruebe el parámetro Preview Result .
- En la sección Columnas , haga clic 12 veces en el botón Añadir.
- Para cada una de las columnas añadidas, introduzca el nombre del campo del registro de datos previsualizado en el paso anterior en los campos Column Name y XPath .
- Ejemplo: emp_id
- ⚠️ El campo XPath distingue entre mayúsculas y minúsculas y debe coincidir con las mayúsculas del sobre.
- En el parámetro Delimitador multivalor, introduzca un tubo (|).
- Guardar el comando
- Para cada una de las columnas añadidas, introduzca el nombre del campo del registro de datos previsualizado en el paso anterior en los campos Column Name y XPath .
- Publicar, Ejecutar y Ejecutar la Cadena.
- Revise la pestaña Log del nodo de comando Element List to CSV - All Employees y confirme que se muestra una lista de empleados.
⚠️ No omita la ejecución y revisión de resultados de este paso ya que se creará una Copia de este Comando en la Cadena y cualquier error deberá ser corregido posteriormente a través de múltiples instancias del Comando.
Paso 5: Cambiar el XML convertido de delimitado por tabulaciones a delimitado por comas
Utilice el conector de transformación tabular para convertir la salida generada a partir de la conversión XML de un formato delimitado por tabulaciones a un formato delimitado por comas.
- Añada un comando Cambiar delimitador del conector Transformación tabular a la cadena.
- Conecte el comando Lista de elementos a CSV - Todos los empleados al comando Cambiar delimitador .
- Configure el Comando con lo siguiente:
Nombre | Cambiar delimitador - Todos los empleados |
Fichero de entrada | Archivo convertido Salida de la lista de elementos a CSV - Todos los empleados Comando |
Delimitador de entrada | \t |
Delimitador de salida | , |
- Guarda el comando.
Paso 6: Comparar los conjuntos de datos CSV y XML para identificar las diferencias
Utilice la consulta avanzada para identificar sistemáticamente las diferencias entre los conjuntos de datos XML y CSV nativos. En este ejemplo, identifique los registros del conjunto de datos XML que sean diferentes o que falten en el conjunto de datos CSV. Cualquier registro adicional encontrado en el conjunto de datos CSV que no esté en el conjunto de datos XML no será identificado por este ejercicio.
- Añada un comando Advanced Query del conector Tabular Transformation a la cadena.
- Conecte el comando Cambiar Delimitador - Todos los Empleados al comando Consulta Avanzada .
- Nombre el comando: Consulta avanzada - Todos los empleados
- En la sección Tablas , haga clic en el botón Añadir para añadir una segunda pestaña.
- Para la primera tabla, especifique la salida CSV Result del comando Change Delimiter - All Employees .
- Especifique XML como nombre de la tabla .
- Para la segunda tabla, especifique la salida de respuesta del comando GET - Headcount in CSV Format .
- Especifique CSV como nombre de la tabla .
- En el parámetro Consulta, introduzca lo siguiente:
- Para la primera tabla, especifique la salida CSV Result del comando Change Delimiter - All Employees .
Select * from XML EXCEPT Select * from CSV
-
- En los campos Delimitador de entrada y Delimitador de salida , especifique Coma.
- Marque la opción Previsualizar resultados .
- Comando Guardar
- Publicar, Ejecutar y Ejecutar la Cadena.
- Revise la pestaña Log del nodo de comandos Advanced Query - All Employees y confirme que los ID de los empleados coinciden con los siguientes para los registros devueltos por la consulta.
Identificación del empleado
01-6875791
10-4199621
38-3932553
63-0417180
78-3600453
85-6818050
97-2828467
Paso 7: Añadir un grupo de comandos
Añade un Grupo de Comandos a la Cadena para organizar mejor los Comandos. Aunque este paso es necesario en términos de este ejercicio, no es un requisito técnico para la Cadena. Este paso es simplemente para ilustrar la capacidad de organizar los nodos de una Cadena.
- Añada un grupo de mando a la cadena.
- Conecte el comando GET - Headcount in XML Format a la sección In del grupo de comandos.
- Haga clic en el grupo de comandos y seleccione el icono del cuentagotas para cambiar el color de los comandos a rojo.
- Nombre del Grupo: Empleados activos
Paso 8: Filtrar datos CSV sólo para empleados activos
Utilice un filtro inteligente para conservar sólo los registros de empleados en los que el empleado está activo. Al definir el filtro, asumimos que el campo terminado (termed) que está en blanco indica que un empleado está activo.
- Añada un comando Filtro inteligente de filas del conector de transformación tabular a la cadena.
- Conecte el Inicio de Grupo del Grupo de Comandos al Comando Filtro Inteligente .
- Edita el comando:
- Nombre el Comando: Filtro Inteligente Filas - Datos CSV - Empleados Activos.
- En el parámetro Archivo de entrada, seleccione la respuesta Salida del comando GET - Headcount en formato CSV.
- Deje en blanco el parámetro Archivo de salida .
- Especifique Coma como Delimitador .
- En la sección Filtros ,
- Haga clic en el botón Añadir en los filtros Texto .
- En el parámetro Nombre de columna , introduzca denominado.
- Marque la opción Case Insensitive .
- En el menú desplegable Condición , seleccione Igual a.
- En el parámetro Compare Text , introduzca true.
- Marque la opción No .
- Deje sin marcar la casilla Recortar . Este filtro identificará cualquier registro en el que el campo denominado no contenga un valor de verdadero (es decir, falso o en blanco).
- Deje marcada la opción Preview Result .
- La opción Invertir permite que el Filtro inteligente mantenga (marcada) o elimine (desmarcada) todas las filas que coincidan con los criterios del filtro. En este ejercicio, queremos mantener todas las filas en las que el campo denominado tiene un valor de verdadero o en blanco. Para ello, Compruebe la opción Inversa .
- Guarda el comando.
Paso 9: Filtrar datos XML al convertir a Delimitado
En este paso, filtramos los datos XML al convertirlos a un formato delimitado para identificar sólo a los empleados activos. Posteriormente, este conjunto de datos se comparará con el conjunto de datos CSV filtrados para identificar diferencias.
- Copie la lista de elementos a CSV - Todos los empleados Comando.
- Conecte el Grupo Inicio del Grupo de Comandos al Comando Lista de Elementos a CSV - Todos los Empleados (Copiar) .
- Edita el comando.
- Nombre del comando: Lista de Elementos a CSV - Empleados Activos.
- En el parámetro Ruta a raíz, introduzca lo siguiente. El siguiente formato filtra en función de que el campo denominado tenga un valor distinto de verdadero.
/datos_empleado/empleado[¡termed!='true']
- Guarda el comando.
Paso 10: Cambiar los datos XML filtrados a delimitados por comas
Al igual que con la lista de empleados completa, la lista de empleados activos filtrada que se ha convertido de XML a delimitada por tabulaciones debe convertirse a delimitada por comas.
- Copie el comando Cambiar Delimitador - Todos los Empleados .
- Conecte el comando Lista de elementos a CSV - Empleados activos al comando Elemento Cambiar delimitador - Todos los empleados (Copiar) .
- Edita el comando.
- Nombre el comando: Cambiar Delimitador - Empleados Activos.
- Modifique el parámetro Archivo de entrada para utilizar el archivo Convertido Salida del comando Lista de elementos a CSV - Empleados activos .
- Guarda el comando.
Paso 11: Comprobar las diferencias con los empleados activos
Al igual que con la lista de empleados completa, la lista de empleados activos filtrada que se ha convertido de XML a delimitada por tabulaciones debe convertirse a delimitada por comas.
- Copie el comando Consulta avanzada - Todos los empleados .
- Conecte el comando Out del Grupo de Comandos al comando Consulta Avanzada - Todos los Empleados (Copiar) . Conectando el comando Consulta Avanzada - Todos los Empleados al Grupo de Salida se asegura que todo lo conectado al Grupo de Salida termine antes de que la cadena progrese a los comandos en el Grupo de Salida.
- Editar el comando
- Nombre el comando: Consulta Avanzada - Empleados Activos.
- En la sección Tablas , modifique el parámetro Archivo para ambas tablas:
Tabla | Archivo |
XML|XML | Salida de resultados CSV del comando Cambiar delimitador - Empleados activos |
archivo .csv | Salida de Filtro Inteligente de las Filas de Filtro Inteligente - Sólo Activo, Comando de Datos CSV |
- Guarda el comando.
Paso 12: Probar el ejercicio
Ahora que la cadena está completa, prueba el resultado.
- Publica la cadena.
- Haga clic en Ejecutar y, a continuación, seleccione Ejecutar cadena.
- Una vez completada la Cadena, haga clic en el nodo Consulta Avanzada - Empleados Activos.
- En la pestaña Salidas, confirme que se han emitido 4 registros.
- Haga clic en la pestaña Registros y confirme que los ID de los empleados coinciden con los que aparecen a continuación para los registros devueltos por la consulta.
Identificación del empleado
01-6875791
63-0417180
78-3600453
85-6818050
Para obtener más información sobre la transformación de datos mediante cadenas, consulta Connected Learning Paths - Transformation Introduction