Documentos de Académico
Documentos de Profesional
Documentos de Cultura
07 Poblando Un Datawarehouse 1.4
07 Poblando Un Datawarehouse 1.4
Los procesos que pueblan el Datamart extraen, transforman y cargan los datos en
el Datamart. Por esto se les llama procesos ETL (Extraction, Transformation,
Loading).
1. Etapas de un proceso ETL
Modelo
Extracción y Carga - Dimensional
Modelo Dimensional
(Normalizado)
Mapeos de datos (desnormalizado)
Indican donde se
encuentran en el esquema
lógico fuente, los
elementos del esquema
lógico conceptual.
Permiten asociar cada
elemento.
1. Etapas de un proceso ETL
Transformación
Fuente Datos Modelo Multidimensional
Contenido de Agenda
Extracción
(datos origen)
Transformación
Carga
Contenido de Agenda
Origen Destino
Ejercicio: 1. Asistente de Importación y Exportación
Ejercicio 1
Tiempo: 20 minutos
Realiza la importación y exportación usando el asistente.
4. Implementación de ETL a través de SQL Server
Integration Services
SQL Server Data Tools (SSDT) y el diseñador de paquetes
Solution
Explorer
Package
Designer
Properties
Tool Box Connection Window
Manager
4. Implementación de ETL a través de SQL Server
Integration Services
Paquetes: Conexiones y Transformación
Tipos de Transformaciones
Connection Manager
Ejercicio: 2. Crear Conexiones y Transformaciones básicas
Ejercicio 2
Tiempo: 20 minutos
Crea conexiones y transformaciones en un proyecto de SQL Server Integration
Services.
En el siguiente ejercicio, se creará un proyecto SSIS que transferirá las filas de un join
entre las tablas Product y ProductSubCategory en la base de datos AdventureWorks,
hacia una tabla llamada ResumenProductos, ubicada en la base de datos
AWorks_MartDemo. Para esto, se utilizará la transformación Data Flow Task.
4. Implementación de ETL a través de SQL Server
Integration Services
Precedencias
Definen vínculos entre contenedores y tareas, y evalúan
condiciones que determinan la secuencia en la que deben ser
procesados
El orden de ejecución de las tareas se define a través de
precedencias
Las condiciones que controlan cuando las transiciones ocurrirán
son evaluadas mediante propiedades de restricción y puede
incluir :
Tipos de precedencias :
On Success
On Failure
Ejercicio: 3. Precedencias
Ejercicio 3
Tiempo: 20 minutos
Define precedencias en un proyecto de SQL Server Integration Services.
En el siguiente ejercicio, se implementará una tarea Execute SQL Task que limpiará la
tabla Resumen Productos y además, estableceremos precedencias con el Data Flow
Task “Copiar productos”
4. Implementación de ETL a través de SQL Server
Integration Services
Destination Components
https://msdn.microsoft.com/en-us/library/ms13593
9(v=sql.110).
aspx
Transformation Components
Ejercicio: 4. Script Component
Ejercicio 4
Tiempo: 20 minutos
Escribe una transformación personalizada a través del Script Component.
Containers (Contenedores)
Sirven para agrupar todos los
componentes de un paquete
Su principal función es definir el
alcance , secuencia de ejecución e
interacción de los componentes de un
paquete
Tipos de contenedores:
1. Sequence Container
2. For Each Loop
3. For Loop
4. Implementación de ETL a través de SQL Server
Integration Services
Ejemplo :
Si la carpeta especificada por el enumerador
contiene cuatro archivos, el bucle se repetirá
cuatro veces y copiará cuatro archivos.
4. Implementación de ETL a través de SQL Server
Integration Services
Ejercicio 5
Tiempo: 20 minutos
Define variables en el paquete. Uso del contenedor For Each Loop
En el siguiente ejercicio, leeremos una serie de archivos de texto correspondiente a
datos enviados por diferentes plantas, para ello definiremos una variable
varTerritoryFile y un contenedor del tipo For Each Loop que nos permitirá recorrer
cada uno de los archivos y cargarlos a la tabla “Despachos”.
4. Implementación de ETL a través de SQL Server
Integration Services
Ejercicio 6
Tiempo: 20 minutos
Utiliza las transformaciones Data Conversion y Lookup.
En el siguiente ejercicio, se usará la transformación Data Conversion para transformar
tipos de datos UNICODE de un archivo Access a no-UNICODE; adicionalmente, se
implementará una transformación Lookup para buscar la equivalencia de códigos de
ciudades y obtener sus descripciones
4. Implementación de ETL a través de SQL Server
Integration Services
Package Configurations
Permiten que los paquetes de SQL Server Integration Services tomen valores iniciales a partir de orígenes
externos.
Los package configurations permiten definir información de entrada a través de:
Tipo Descripción
Archivo de configuración XML Los valores quedan almacenados en un archivo XML. El paquete
SSIS cargará estos valores al iniciarse su ejecución
Variables de entorno Los valores de entrada del paquete se obtienen de las variables
de entorno de Windows
Entrada de Registro Los valores de entrada del paquete se obtienen desde el registro
de Windows.
Parent package variable Los valores de entrada del paquete se encuentran definidos
como variables en un paquete de nivel superior que contiene al paquete actual
SQL Server Los valores de entrada del paquete se encuentran almacenados en una
tabla de SQL Server
4. Implementación de ETL a través de SQL Server
Integration Services
Ejemplo :
El siguiente código XML muestra la
Ejemplo :
La siguiente instrucción SQL muestra la
instrucción CREATE TABLE
El nombre que asigna a la configuración, es el valor
predeterminada que proporciona el que se almacena en la columna ConfigurationFilter.
asistente para la configuración de
paquetes.
Ejercicio: 7 Package Configurations
Ejercicio 7
Tiempo: 20 minutos
Utiliza package configurations en el proyecto SSIS desarrollado.
En el siguiente ejercicio, se agregará un package configuration que almacenará una
configuración para determinar si el paquete debe ejecutarse o no.
Dicho valor será asignado a una variable, y evaluado en una tarea de tipo Script Task
para definir si la ejecución del paquete debe interrumpirse
4. Implementación de ETL a través de SQL Server
Integration Services
Ejercicio 8
Tiempo: 20 minutos
Utiliza la transformación Derived Column en el proyecto SSIS desarrollado.
En el siguiente ejercicio, se creará un DerivedColumn para concatenar los valores de
las columnas “FirstName” y “LastName” de la tabla Person.Contact, y enviar el
resultado hacia una nueva tabla llamada “ResumenContactos”.
4. Implementación de ETL a través de SQL Server
Integration Services
_Similarity : Una columna que describe la similitud entre los valores input y referencia de columnas. Esta
columna contiene una puntuación de similitud en cada fila que es la siguiente:
_Confidence : Una columna que describe la calidad de la coincidencia entre los valores input y referencia
de columnas
Ejercicio: 9 Fuzzy Lookup
Ejercicio 9
Tiempo: 20 minutos
Utiliza la transformación Fuzzy Lookup en el proyecto SSIS desarrollado .
Ejercicio: 9 Fuzzy Lookup
4. Implementación de ETL a través de SQL Server
Integration Services
Ejercicio 10
Tiempo: 20 minutos
Utiliza la transformación Aggregate y Sort en el proyecto SSIS desarrollado.
En Este ejercicio se efectuara una agregación sobre un archivo de texto que contiene información con la siguiente:
Observar que cada cliente tiene información en dos plantas (1 y 4). Se desea obtener el tota de la columna
“Cantidad” para cada cliente.
Por ejemplo, el total de cantidad para el primer cliente seria 13 (suma de 4 y 9) . La salida estará ordenada
descendentemente por cantidad.
4. Implementación de ETL a través de SQL Server
Integration Services
Input 1 Input 2
Merge Join (Combinación de mezcla)
La transformación Merge Join permite combinar filas c
1,67000
provenientes de múltiples orígenes.
v
2,78000
La implementación de una transformación Merge Join
tiene las siguientes condiciones:
Las columnas que cumplen el papel de Join Keys deben
tener el mismo tipo de datos.
Las filas que ingresan a la transformación Merge Join
deben estar ordenadas con base en los valores de las
columnas que cumplen el papel de Join Keys.
Por ejemplo : Pueden tenerse las siguientes filas en un
archivo de texto (contiene ID Cliente y las ventas) y una
tabla de BD que contiene el ID Cliente y el nombre del
cliente. Se requiere unir la información en una sola tabla.
Output
Ejercicio: 11 Merge Join
Ejercicio 11
Tiempo: 20 minutos
Utiliza la transformación Merge Join en el proyecto SSIS desarrollado.
4. Implementación de ETL a través de SQL Server
Integration Services
Ejercicio 12
Tiempo: 20 minutos
Utiliza la transformación Conditional Split en el proyecto SSIS desarrollado.
4. Implementación de ETL a través de SQL Server
Integration Services
Una vez terminado, los paquetes del proyecto deben desplegarse en un servidor de
SSIS
Los paquetes pueden residir en :
El sistema de archivos (File System) : Se graba en un archivo ubicado en una carpeta del sistema de
archivos del servidor
En la BD de sistema msdb : Se almacena en la base de datos MSDB (BD SQL Server)
Una vez que los paquetes han sido distribuidos, pueden ser ejecutados en cualquier
momento desde SSMS. Se puede programar automáticamente a través de la
creación de Jobs en SQL Server Agent.
4. Implementación de ETL a través de SQL Server
Integration Services
Manual : Copiar en el servidor el archivo del paquete (. dtsx) y cargarlo en SSIS. Solo se puede distribuir
un paquete a la vez.
Utilitario de despliegue (Deployment Utility) : Es un asistente que produce un archivo que puede
ejecutarse en el servidor. Se puede distribuir varios paquetes a la vez.
Ejercicio: 13 Distribución (Deployment) del proyecto SSIS
Ejercicio 13
Tiempo: 20 minutos
Despliega el proyecto SSIS en forma manual.
En el siguiente ejercicio, se desplegarán los paquetes desarrollados hacia el Servidor
SSIS utilizando la forma manual. Luego del despliegue, se ejecutarán los paquetes en
el servidor
4. Implementación de ETL a través de SQL Server
Integration Services
Ejercicio 14
Tiempo: 20 minutos
Programa la ejecución de un paquete SQL Integration Services.
Laboratorio 2: Creación de un proceso ETL
Column Length Distribution Profile Informa todas las distintas longitudes de los valores de cadena de una columna seleccionada y el porcentaje de filas de
(Perfil de distribución de longitud de la tabla que cada longitud representa. Por ejemplo, un perfil de una columna de códigos de estado que deben ser dos
Columna) caracteres y descubrir valores de más de dos caracteres.
Column Null Ratio Profile Informa sobre el porcentaje de valores nulos en la columna seleccionada. Por ejemplo, un perfil de una columna
(Perfil de Proporción de columnas nulas) Código Postal y descubrir un alto porcentaje inaceptablemente de los códigos que faltan.
Column Pattern Profile Notifica un conjunto de expresiones regulares que cubren el porcentaje especificado de valores en una columna de serie.
(Perfil de patrón de columna) Por ejemplo, un perfil de patrón de una columna Código Postal podría generar las expresiones regulares. Si usted ve
otras expresiones regulares, los datos probablemente contiene valores que no son válidos o en un formato incorrecto.
Column Statistics Profile Informa estadísticas como : mínimo, máximo, promedio y desviación estándar para las columnas numéricas, y mínimo
(Perfil de Estadísticas de Columna) y máximo para las columnas datetime. Por ejemplo, un perfil de una columna de fechas históricas y descubrir una fecha
máxima que está en el futuro.
Column Value Distribution Profile Informa todos los valores distintos en la columna seleccionada y el porcentaje de filas de la tabla que representa cada
(Perfil de distribución de valores de columna) valor. También puede reportar valores que representan más de un determinado porcentaje de filas de la tabla. Por
ejemplo, un perfil de una columna que se supone que contiene los estados en los Estados Unidos y descubrir más de 50
valores distintos.
Laboratorio 2: Creación de un proceso ETL
Candidate Key Profile Indica si una columna o conjunto de columnas es una clave, o una clave aproximada, para la tabla seleccionada. Este
(Perfil de claves candidatas) perfil también le ayuda a identificar problemas de los datos, como los valores duplicados en una posible columna de
clave. .
Functional Dependency Profile Informa sobre la medida en que los valores de una columna (la columna dependiente) dependen de los valores en otra
(Perfil de dependencia funcional) columna o conjunto de columnas (la columna determinante). Por ejemplo, perfil de la dependencia entre una columna
que contiene códigos postales de Estados Unidos y una columna que contiene los estados en los Estados Unidos. El
mismo código postal debería tener siempre el mismo estado, pero el perfil detecta violaciones de esta dependencia.
Value Inclusion Profile Calcula la superposición en los valores entre dos columnas o conjuntos de columnas. Este perfil puede determinar si una
(Perfil de inclusión de valores) columna o conjunto de columnas es adecuado para actuar como una clave externa entre las tablas seleccionadas. Por
ejemplo, genera un perfil de la columna ProductID de una tabla de ventas y descubre que la columna contiene valores
que no se encuentran en la columna ProductID de la tabla productos.
Laboratorio 2: Creación de un proceso ETL
Laboratorio 2
Tiempo: 60 minutos
Utilice una tarea que permita mover archivos de texto.
Utilice el componente DataProfiling.
Creación de un proceso ETL desde el origen de datos hasta el Datawarehouse.
Resumen del Capítulo