Crear flujos de datos

Objective

After completing this lesson, you will be able to crear un flujo de datos básico

Flujos de datos de Data Services

Los flujos de datos contienen los objetos de origen, transformación y destino que representan las actividades clave en la integración de datos y los procesos de calidad de datos.

Uso de flujo de datos

Los flujos de datos determinan cómo se extrae la información de las fuentes, se transforma y se carga en destinos. Las líneas que conectan objetos en un flujo de datos representan el flujo de datos con procesos de integración y calidad de datos.

Flujos de datos:

  • Extraer, transformar y cargar datos.
  • Determine el flujo de datos.
  • Son operaciones cerradas.
  • Se crean en la biblioteca de objetos local o en la paleta de herramientas.

Cada icono que coloque en el diagrama de flujo de datos se convierte en un paso en el flujo de datos como se muestra en la figura.

Puede utilizar objetos de origen y destino y transformaciones como pasos en un flujo de datos. Realice conexiones entre los iconos para determinar el orden en el que Data Services completa los pasos.

Pasos del flujo de datos

Cada paso de un flujo de datos, hasta la definición de destino, produce un resultado intermedio. El resultado intermedio se denomina conjunto de datos.

El resultado intermedio es un conjunto de filas de la operación anterior y el esquema en el que se organizan las filas. Este conjunto de datos puede procesarse adicionalmente y dirigirse a otro conjunto de datos. Un conjunto de datos podría ser, por ejemplo, los resultados de una consulta que contiene una cláusula WHERE, para filtrar algunas filas, que fluye al siguiente paso en el flujo de datos que limpiará esas filas.

Los flujos de datos son operaciones cerradas, incluso cuando son pasos en un flujo de trabajo. Cualquier conjunto de datos creado dentro de un flujo de datos no está disponible para otros pasos del flujo de trabajo o del job. Por lo tanto, la única forma de que un flujo de datos genere datos que se podrían seguir procesando es cargar los datos en una tabla o archivo.

Objetos fuente

Un objeto de origen se genera a partir de metadatos de objeto en un almacén de datos o a partir de un formato de archivo al arrastrarlo y soltarlo en el área de trabajo de flujo de datos.

Objetos de origen de almacén de datos

Si desea leer datos de una tabla u otro objeto en un almacén de datos, primero debe haber importado los metadatos para este objeto. A continuación, estará disponible en la biblioteca de objetos y podrá arrastrarlo y soltarlo en su flujo de trabajo como fuente.

Data Services analiza los metadatos para definir la estructura (el esquema) de los datos de entrada. Este esquema es lo único que se necesita para seguir creando el flujo de datos. Por supuesto, en el momento de la ejecución, también utilizará la información del almacén de datos para conectarse a la fuente y obtener los datos reales.

Objetos fuente de formato de fichero

Para los formatos de archivo es el mismo principio, pero una vez creado el objeto de origen en el flujo de datos, algunas propiedades están disponibles para su modificación. Por ejemplo, las opciones de ubicación de archivo o tratamiento de errores.

Se podría crear un formato de archivo con un archivo de muestra en local para acceder a los archivos desde el servidor de tareas, que es la única opción que funcionaría, ya que es el servidor de tareas el que ejecuta la tarea.

También puede crear varios objetos de origen desde el mismo formato de archivo, en el mismo flujo de datos, pero obteniendo diferentes archivos (con la misma estructura) para unirlos, por ejemplo.

Intentémoslo

Ahora definamos objetos de origen en sus flujos de datos:

Si desea probarlo usted mismo, continúe:

La transformación de la consulta

La transformación de consulta, que es una de las transformaciones de plataforma, es la transformación más utilizada y se incluye en la mayoría de los flujos de datos. Por este motivo, se incluye en la paleta de herramientas con otros objetos estándar.

La transformación Consulta le permite seleccionar datos de un origen y filtrarlos o reformatearlos a medida que se mueve al destino. La figura muestra un ejemplo de una transformación de consulta aplicando un filtro entre el origen y el destino.

Consultar operaciones de transformación

La transformación de consulta puede realizar las siguientes operaciones:
  • Filtrar datos extraídos de fuentes
  • Uniendo datos de múltiples fuentes
  • Asignación de columnas de esquemas de entrada a esquemas de salida
  • Realizar transformaciones y funciones en los datos
  • Realizar anidamiento y anulación de anidamiento de datos
  • Añadir nuevas columnas, esquemas anidados y resultados de función al esquema de salida
  • Asignación de claves primarias a columnas de salida

Para definir las operaciones que necesita, utilice el Editor de transformaciones. Es una interfaz gráfica para definir las propiedades de las transformaciones. El área de trabajo contiene las siguientes áreas:

  • Esquema de entrada
  • Esquema de salida
  • Opciones

Esquemas de entrada y salida

La siguiente figura muestra las áreas de esquema de entrada y salida.

El área de esquema de entrada muestra el esquema del conjunto de datos de entrada. El área de esquema de salida muestra el esquema del conjunto de datos de salida, incluidas las funciones.

Debe definir una relación entre los esquemas de entrada y de salida para mover datos de la fuente al destino. Para ello, debe asignar cada columna de entrada a la columna de salida correspondiente.

Asignar columnas de entrada a columnas de salida

Realice una de las siguientes acciones en el editor de transformaciones para asignar columnas de entrada a columnas de salida:

  • Arrastre una sola columna desde el área de esquema de entrada al área de esquema de salida.
  • Arrastre una única columna de entrada sobre la columna de salida correspondiente, libere el cursor y seleccione Volver a asignar columna en el menú.
  • Seleccione varias columnas de entrada con Ctrl+clic o Mayús+clic en el teclado y arrastre al esquema de salida Consulta para la asignación automática.
  • Seleccione la columna de salida e introduzca manualmente la asignación en la ficha Asignación en el área de opciones. Puede escribir el nombre de la columna en el área de opciones o arrastrar la columna desde el panel del esquema de entrada.
  • Seleccione la columna de salida, resalte y borre manualmente la asignación en la ficha Asignación en el área de opciones.

Área de opciones

El área Opciones está debajo de las áreas de esquema de entrada y salida en el Editor de transformación de consulta.

Pestañas del área de opciones

PestañaDescripción
Asignación

Especifique cómo se deriva la columna de salida seleccionada.

Seleccionar

Seleccione solo filas distintas, descartando filas duplicadas.

Desde

Especifique los esquemas de entrada utilizados en el esquema de salida actual.

Conexión externa

Especifique una tabla interna y una tabla externa para combinaciones que desee tratar como combinaciones externas.

Dónde

Fije condiciones para determinar qué filas se emiten.

Agrupar por

Especifique una lista de columnas para combinar la salida.

Ordenar por

Especifique columnas para clasificar el conjunto de datos de salida.

Avanzado

Cree subflujos separados para procesar cláusulas de consulta que consumen muchos recursos.

Buscar

Busque una posición específica en el esquema de entrada o en el esquema de salida.

Editor de transformación de consulta para combinaciones

Las combinaciones se definen en la ficha Desde del Editor de transformaciones. La pestaña Desde se muestra en la siguiente figura.

Nota

Hay una forma más antigua de la combinación en la pestaña WHERE, pero es demasiado restrictiva. Se recomienda utilizar la función de combinación en la pestaña De.

Intentémoslo

Comencemos con una transformación de consulta que filtra datos:

Si desea probarlo usted mismo, continúe:

También puedo mostrarle cómo crear una transformación de consulta que combine dos fuentes:

Objetos de destino

El objeto de destino para su flujo de datos puede ser una tabla física o un archivo, y puede añadirlos al flujo de datos arrastrándolos y soltándolos desde los metadatos del almacén de datos o desde un formato de archivo, igual que para los objetos de origen.

Cuando su objeto de destino es una tabla física en una base de datos, el editor de tablas de destino se abre en el área de trabajo. El editor contiene fichas para propiedades de tipo de base de datos, opciones de carga de tablas y técnicas de ajuste para cargar una tarea.

Nota

La mayoría de las fichas del editor de tablas de destino se centran en la migración o en las técnicas de ajuste de rendimiento. Nos concentraremos solo en la pestaña Opciones.

Opciones del editor de tablas de destino

OpciónDescripción
Comparación de columnas

Especifique cómo se asignan las columnas de entrada a las columnas de salida. Se producen errores de validación si los tipos de datos de las columnas no coinciden.

Eliminar datos de una tabla antes de cargar

Utilice esta opción para enviar una sentencia TRUNCATE para borrar el contenido de una tabla antes de cargarla durante los jobs de fondo. El valor predeterminado de la opción es No seleccionado.

Ignorar columnas con valor

Especifique un valor en una columna de origen que no desee actualizar en la tabla de destino.

Utilizar teclas de entrada

Habilite Data Services para utilizar las claves primarias de la tabla fuente. Por defecto, utiliza la clave primaria de la tabla de destino.

Actualizar columnas clave

Actualizar valores de columna clave al cargar datos en el destino.

Formato de archivo como destinos

Si utiliza un formato de archivo como destino, podrá modificar la ubicación del archivo, igual que para el objeto de origen.

También tiene la opción de eliminar el contenido del archivo antes de cargarlo con datos nuevos.

En función de lo que haya definido en el formato de archivo, y esto no se puede editar en el objeto de destino, puede pedir que escriba una fila de cabecera o no,

Tablas de plantilla

Puede utilizar tablas de plantilla en el desarrollo de aplicaciones temprano cuando diseñe y pruebe un proyecto.

Las tablas de plantilla tienen las siguientes funciones:

  • Permiten cambios de esquema sin ir al Sistema de gestión de base de datos relacional (RDMS).
  • No existen en la base de datos subyacente hasta que el flujo de datos se haya ejecutado correctamente una vez.
  • Una vez ejecutadas, se convierten en tablas reales en la base de datos subyacente.
  • Solo se identifican como tablas de plantilla en los metadatos dentro del repositorio de Data Services.
  • El Editor de tabla de destino tiene la opción de Soltar y recrear tabla para tablas de plantilla.
  • La opción Importar tabla convierte una tabla modelo en una tabla normal.

Con las tablas de plantilla, no tiene que crear una nueva tabla en su almacén de datos e importar los metadatos a Data Services. Data Services crea automáticamente la tabla en la base de datos con el esquema definido por el flujo de datos al ejecutar el job.

Al crear una tabla de plantilla como destino en un flujo de datos, puede utilizarla como fuente en otros flujos de datos.

Debe convertir las tablas de plantilla en tablas normales para poder utilizar la nueva tabla en expresiones, funciones y opciones de transformación. Al convertir la tabla modelo, ya no puede modificar el esquema.

Intentémoslo

Añadamos una tabla de destino en el primer job y veamos cómo utilizar una tabla de plantilla en la segunda:

Si desea probarlo usted mismo, continúe:

Ejecución de job

Al crear su proyecto, jobs y flujos de datos asociados, puede ejecutar el job en Data Services para mover los datos de origen a destino.

Jobs inmediatos y jobs programados

Puede ejecutar jobs de las dos formas siguientes:

  • Puestos inmediatos

    Data Services inicia tareas por lotes y en tiempo real y las ejecuta inmediatamente desde el Diseñador. Designer y el servidor de tareas designado deben estar ejecutándose para ejecutar la tarea. Ejecutar jobs inmediatos solo durante el ciclo de desarrollo.

  • Tareas programadas

    Se programan los jobs de fondo. Utilice la consola de gestión de servicios de datos o un programador externo para programar el job. El servidor de tareas debe estar en ejecución para ejecutar una tarea programada.

Nota

Un job no se ejecuta si tiene errores de sintaxis.

Gestionar opciones de ejecución

Antes de ejecutar el job, puede editar algunas opciones:

  • Modificando las propiedades del job, de modo que todas y cada una de las ejecuciones tengan las mismas opciones.
  • Modificando las propiedades de ejecución, de modo que las opciones solo sean válidas para esta ejecución en particular.

Propiedades de ejecución compartidas

OpciónDescripción
Imprimir todos los mensajes de trace

Registre todos los mensajes de trace en el log.

Recopilar estadísticas para la optimización

Recopile estadísticas para que el optimizador de servicios de datos pueda elegir un tipo óptimo de caché en memoria o paginable.

Recopilar estadísticas para la supervisión

Visualizar estadísticas de caché en el monitor de rendimiento en el administrador.

Utilizar estadísticas recopiladas

Utilice las estadísticas de caché recopiladas en una ejecución anterior del job.

Propiedades de ejecución no disponibles como propiedades de job

OpciónDescripción
Configuración del sistema

Especifique la configuración del sistema que se debe utilizar al ejecutar el job. Una configuración del sistema define un conjunto de configuraciones del almacén de datos, que definen las conexiones del almacén de datos.

Servidor de tareas o grupo de servidores

Especifique el servidor de tareas o el grupo de servidores para ejecutar la tarea.

Data Services puede colocar información de solicitud fallida en un archivo de registro. Data Services no registra las solicitudes fallidas de forma predeterminada porque puede ralentizar el rendimiento. La colocación de información de solicitud fallida en un archivo de registro debe estar activada en el administrador de la consola de administración.

Verificar si hay errores

Cuando se ejecuta un job, Data Services produce 3 ficheros de log, que se visualizan desde la ficha Monitor del área de proyecto. Por defecto, los ficheros de log también se fijan para que se visualicen automáticamente en el área de trabajo cuando se ejecuta un job.

Seleccione los iconos Trace, Monitor y Error para ver los archivos de log que se crean durante la ejecución del job.

Si el tercer icono, que representa una cruz, se visualiza en color y no está atenuado, significa que se han detectado errores.

Es posible que el log de trace indique que el job se ha completado correctamente pero que aún tiene algunos errores si ha configurado el flujo de datos para capturar algunos errores específicos, como errores de conversión de datos durante el acceso a archivos o la carga de archivos, por ejemplo.

Intentémoslo

Por último, ejecutemos estos jobs:

Si desea probarlo usted mismo, continúe:

Flujos de trabajo

Como hemos visto antes, puede crear flujos de trabajo dentro de su trabajo y diseñar los flujos de datos dentro de esos flujos de trabajo en lugar de colocarlos directamente en el trabajo.

Aquí hay un par de analogías para ayudar a comprender el papel de los flujos de trabajo en sus trabajos:

Para las personas que pueden pensar como programadores, puede comparar flujos de trabajo con subrutinas. El job es el programa principal y puede llamar flujos de trabajo (como subrutinas). Los flujos de trabajo pueden hacer casi cualquier cosa que un trabajo pueda hacer, pero no pueden ejecutarse de forma independiente (deben ser llamados por un trabajo u otro flujo de trabajo).

Para los no programadores, piense en los flujos de trabajo de la misma manera que piensa en los paréntesis en la aritmética. Los paréntesis le permiten manipular el orden de las operaciones en expresiones matemáticas. Del mismo modo, los flujos de trabajo nos permiten controlar el orden de ejecución de las operaciones, como scripts y flujos de datos, dentro de una tarea.

Para los jobs y flujos de datos simples que estamos empezando aquí, probablemente no utilizaremos flujos de trabajo. Pero a medida que sus trabajos se vuelven más complejos, con múltiples flujos de datos, scripts, etc., los flujos de trabajo pueden hacer que partes del trabajo sean modulares y más flexibles, sin afectar al rendimiento. Y como bono, ¡son reutilizables en múltiples trabajos!

Recuerde que los flujos de datos son reutilizables. Pero si dos flujos de datos dependientes deben ir juntos, tal vez con algún script entre ellos, podría cerrarlos en un flujo de trabajo y reutilizar el flujo de trabajo completo. (Recuerde también que los scripts NO son objetos reutilizables como tales). ¡Esto ahorra mucho tiempo de diseño!