Implementacion Almacén de Datos
Implementacion Almacén de Datos
Implementacion Almacén de Datos
INTRODUCCIÓN
Gran parte de los datos que se almacenan en un data warehouse provienen de bases de datos
transaccionales (OLTP). Por tanto la incorporación de datos externos se hace para ayudar a hacer
análisis con la idea de tener las más posibles causas sobre un hecho. Estos datos externos pueden estar
o no estar relacionados de manera directa con los hechos que se analizan y sin embargo pueden ayudar
a descubrir tendencias o patrones.
Es importante señalar que una de las razones de existir del almacén de datos es separar la información
para no afectar el desempeño de la base de datos operacional o transaccional (OLTP). Las bases de datos
OLTP son las bases de datos que seguramente conoces, cuyo propósito es ayudar en las operaciones
diarias de las empresas: ventas, nómina, inventario, entre otros.
Las bases de datos operacionales (OLTP) están altamente normalizadas, por lo que también es más
complicado realizar operaciones de análisis en ellas y lo cual llevaría afectar el rendimiento de las mismas.
Por otro lado, un almacén de datos se dice que está desnormalizado, lo que permite llevar a cabo análisis
de manera dedicada y sin tanta sobrecarga de trabajo para la base de datos.
1
Implementación Almacén de Datos Ing. Scarleth Rivera
ÍNDICE
Contenido
INTRODUCCIÓN............................................................................................................................................. 1
ÍNDICE ........................................................................................................................................................... 2
ETLPeliculas1 ............................................................................................................................................... 29
ETLPeliculas2 ............................................................................................................................................... 38
ETLPeliculas3 ............................................................................................................................................... 43
ETLPeliculas4 ............................................................................................................................................... 47
ETLPeliculas5 ............................................................................................................................................... 50
ETLPeliculas6 ............................................................................................................................................... 53
MezclaLibros1 ............................................................................................................................................. 59
MezclaLibros2 ............................................................................................................................................. 64
DWH ............................................................................................................................................................ 66
2
Implementación Almacén de Datos Ing. Scarleth Rivera
Lookup....................................................................................................................................................... 196
CONCLUSIÓN............................................................................................................................................. 247
3
Implementación Almacén de Datos Ing. Scarleth Rivera
INSTALACIONES PREVIAS
Para poder trabajar con un almacén de datos es necesario realizar las siguientes instalaciones:
4
Implementación Almacén de Datos Ing. Scarleth Rivera
5
Implementación Almacén de Datos Ing. Scarleth Rivera
6. Al descargar nos presenta el siguiente instalador, damos doble clic y nos aparece el
siguiente mensaje, damos “Continuar”:
6
Implementación Almacén de Datos Ing. Scarleth Rivera
7
Implementación Almacén de Datos Ing. Scarleth Rivera
9. Se procede a instalar:
8
Implementación Almacén de Datos Ing. Scarleth Rivera
12. En esta parte damos clic en “De momento no, quizás más tarde”:
9
Implementación Almacén de Datos Ing. Scarleth Rivera
10
Implementación Almacén de Datos Ing. Scarleth Rivera
11
Implementación Almacén de Datos Ing. Scarleth Rivera
19. Luego clic en “Instalar”, pero antes, debe cerrar el Visual Studio, si no da error:
12
Implementación Almacén de Datos Ing. Scarleth Rivera
13
Implementación Almacén de Datos Ing. Scarleth Rivera
22. Al terminar la descarga pone un reloj y un mensaje indicando que cuando se cierre
podrá continuar el proceso de instalación:
14
Implementación Almacén de Datos Ing. Scarleth Rivera
15
Implementación Almacén de Datos Ing. Scarleth Rivera
16
Implementación Almacén de Datos Ing. Scarleth Rivera
28. Al cerrar el Visual, nos aparece una ventana para instalar Reporting, damos clic en
“Modify”:
17
Implementación Almacén de Datos Ing. Scarleth Rivera
30. Vamos a instalar el componente para Microsoft Office Access database engine, para
usar archivos desde SQL “AccessDatabaseEngine.exe”, al ejecutar presenta la
siguiente pantalla, marcamos el check de acepto contrato y damos clic en
“siguiente”:
18
Implementación Almacén de Datos Ing. Scarleth Rivera
19
Implementación Almacén de Datos Ing. Scarleth Rivera
33. Vamos a configurar los nuevos servicios con el usuario de dominio, para eso nos
vamos a “Este Equipo” y luego la opción “Administrar”:
20
Implementación Almacén de Datos Ing. Scarleth Rivera
36. Abrimos los Servicios de Windows para buscar los servicios de SQL:
21
Implementación Almacén de Datos Ing. Scarleth Rivera
37. En este caso el servicio de SQL lo tengo con el usuario de Dominio, pero sino
tenemos domino ponemos el usuario que acabamos de crear, luego de este caso se
reinicia el servicio para que tome efecto el cambio:
38. Para el Servicio de Integración, también podemos abrir desde “Inicio”, En la Carpeta
SQL Server 2019 la opción “Sql Server Configuration Manager” y escogemos el
usuario de dominio, pide la clave para seleccionarlo:
22
Implementación Almacén de Datos Ing. Scarleth Rivera
23
Implementación Almacén de Datos Ing. Scarleth Rivera
24
Implementación Almacén de Datos Ing. Scarleth Rivera
25
Implementación Almacén de Datos Ing. Scarleth Rivera
26
Implementación Almacén de Datos Ing. Scarleth Rivera
5. Damos clic derecho sobre la parte de “Flujo de Control” para que nos aparezcan las
opciones y seleccionamos “Cuadro de herramientas de SSIS”:
27
Implementación Almacén de Datos Ing. Scarleth Rivera
1. Primero creamos la base de datos VideoClub, con las diferentes tablas que vamos a utilizar:
28
Implementación Almacén de Datos Ing. Scarleth Rivera
ETLPeliculas1
3. Luego aparecerá el siguiente mensaje, y presionamos “Si a todo”:
5. Al darle doble clic a “Cargar Películas”, nos mueve a la pestaña “Flujo de datos”, nos vamos a los
29
Implementación Almacén de Datos Ing. Scarleth Rivera
6. El siguiente paso es darle doble clic a “Películas” para configurar el excel de donde vamos a
tomar los datos correspondientes, damos clic a “Nueva”-> “Examinar” -> “Aceptar”:
7. Al cargar el archivo escogemos “Hoja 1” y luego podemos dar clic en el botón “Vista Previa” para
ver los datos como se muestra a continuación:
30
Implementación Almacén de Datos Ing. Scarleth Rivera
8. Nos vamos luego a “Columna” para hacer el match de las columnas, luego damos clic en
“Aceptar”:
9. A la conexión que aparece abajo la renombramos para poder identificar las diferentes
conexiones que tendremos en el ETL:
31
Implementación Almacén de Datos Ing. Scarleth Rivera
10. Luego vamos a convertir esa conexión para que sea reconocida por todo el proyecto, dando clic
derecho y escogiendo la opción mostrada:
11. Vamos ahora a agregar una nueva conexión pero lo hacemos desde el panel izquierdo, en la
carpeta “Administradores de conexiones” y damos clic derecho “Nueva conexión” para que nos
aparezca ventana que se muestra, ahí escogemos “OLEDB”, la cual es una buena opción ya que
32
Implementación Almacén de Datos Ing. Scarleth Rivera
12. Aparece una ventana de las conexiones existentes y damos clic en “Nueva”, nos aparece la
ventana donde ponemos el nombre del servidor Sql y escogemos la base, escogemos
“Autenticación de Windows” porque estamos en el mismo servidor. Damos clic en “Aceptar” ->
“Aceptar”:
13. Ahora vamos a seleccionar el destino, para el cual ocupamos el control “Destino de OLE DB” y
renombramos los pasos para que sean más informativos sobre la función que desempeñan.
Además tenemos dos formas de conectar lo controles entre sí, con las flechas donde la azul
corresponde a la ejecución correcta y la roja es una ejecución fallida:
33
Implementación Almacén de Datos Ing. Scarleth Rivera
14. Procedemos a configurar “Insertar Películas”pero antes conectamos la flecha azul, para que al
irnos al siguiente paso podamos hacer el match de los campos, por eso luego escogemos la tabla
“Peliculas”, pero debemos ver la advertencia:
15. Hacemos la conexión de cada campo, para que al momento de insertar sepa qué campo
corresponde en la tabla, se escoge el año porque en excel el campo se llama “year” t le damos
“Aceptar”:
34
Implementación Almacén de Datos Ing. Scarleth Rivera
16. Muestra una advertencia porque el campos Género en el excel tiene datos de 255 caracteres y
en la tabla le pusimos un tamaño 50:
17. Vamos a ocupar el control “Conversión de datos”, para poder recortar los datos de las columnas
Género y Título, que viene de excel y poder insertarla en la tabla Películas. Damos clic en
“Aceptar”. Guardamos los cambios:
35
Implementación Almacén de Datos Ing. Scarleth Rivera
18. Al conectar el convertidor al objeto para inserción hacemos nuevamente el match pero con las
columnas formateadas y que dicen “copia” en el nombre. Damos clic en “Aceptar”:
19. Nos quede así el primer ETL para cargar las Películas y damos clic derecho “Ejecutar paquete”:
36
Implementación Almacén de Datos Ing. Scarleth Rivera
20. Nos muestra esta pantalla que indica que los pasos se ejecutaron correctamente:
21. Haciendo la consulta desde SQL podemos ver los datos insertados:
37
Implementación Almacén de Datos Ing. Scarleth Rivera
ETLPeliculas2
22. Vamos a crear un nuevo llamándolo EL Peliculas2 y le agregamos una “Tarea de flujo de datos” y
le ponemos el mismo nombre del anterior:
23. Pero en esta ocasión vamos a usar un control nuevo “Agregado” que es usado para hacer Group
38
Implementación Almacén de Datos Ing. Scarleth Rivera
By en el set de datos que estamos trabajando y usamos el campo “Genero”. Damos clic en
“Aceptar”:
24. Como destino vamos a escoger “Destino de Excel”, al darle doble clic escogemos la ruta donde
se creará el archivo y le ponemos nombre “Género”. Luego damos clic en “Abrir” -> “Aceptar”:
25. Damos clic en “Nueva” y nos aparece este script de la tabla pero cambiamos los tipos de dato y
tamaño:
39
Implementación Almacén de Datos Ing. Scarleth Rivera
26. Al dar aceptar a la tabla nos aparece ese mensaje, damos clic en “Ok”:
27. Escogemos la hoja de donde pondrá los datos, el cual es la que tiene el signo $:
40
Implementación Almacén de Datos Ing. Scarleth Rivera
28. Luego nos vamos a “Asignaciones” para unir los campos con el correspondiente. Damos clic en
“Aceptar”:
29. Damos clic derecho sobre “ETLPeliculas2” y clic en opción “Ejecutar Paquete”:
41
Implementación Almacén de Datos Ing. Scarleth Rivera
30. Nos muestra otro estilo de pantalla e indica con un check verde que cada paso se ejecutó
correctamente:
31. En la carpeta podemos ver el nuevo archivo Excel creado llamado “Género”:
42
Implementación Almacén de Datos Ing. Scarleth Rivera
ETLPeliculas3
32. Vamos a crear un tercer ETL pero en esta ocasión vamos a dividir los datos, creamos un
“ETLPeliculas3”, agregamos el flujo de datos “Cargar datos” y colocamos el mismo origen
ocupado en los ETL anteriores y nos trajimos el paso de conversión de datos para Género y
Título, del “ETLPeliculas1”:
33. Agregamos un control para “División Condicional”, donde en base al año de la película
43
Implementación Almacén de Datos Ing. Scarleth Rivera
34. Vamos a tener dos destinos OLE DB uno para las películas de siglo pasado y otra para Siglo
actual, entonces al momento de unir la flecha de condicional nos aparecerá una ventana para
escoger la opción que corresponda, como se muestra en la siguiente imagen:
35. El siguiente paso es configurar el destino, por lo que configuramos escogiendo la tabla que le
corresponde a la condición “SigloPasado”:
44
Implementación Almacén de Datos Ing. Scarleth Rivera
36. El paso siguiente es ir a “Asignaciones” para escoger los campos. esto lo hicimos en el
ETLPeliculas 1, donde escogemos las copias de los campos de título y género:
37. Los dos últimos pasos los realizamos para la condición SigloActual pero escogemos la tabla para
ello, damos clic en aceptar luego de hacer el match de los campos, damos clic en “Aceptar”:
45
Implementación Almacén de Datos Ing. Scarleth Rivera
38. Ejecutamos el paquete y si se fija cada flecha luego del condicional indica a qué opción
corresponde:
46
Implementación Almacén de Datos Ing. Scarleth Rivera
ETLPeliculas4
40. Creamos un cuarto ETL para películas pero en este caso usamos el control utilizado para
insertar los datos en más de un origen de datos, por lo que escogimos dos destinos uno a SQL a
la tabla PeliculasMultidifusión y la otra a un Excel, que configuramos con los campos exactos. En
el control “Multidifusión” no se debe configurar nada:
41. Escogemos un origen de datos para crear un archivo Txt, dentro de él escogemos el nombre del
texto:
47
Implementación Almacén de Datos Ing. Scarleth Rivera
42. Formateamos la tabla para que tenga los campos requeridos y luego hacemos el match de los
campos con el origen de datos y los campos formateados:
48
Implementación Almacén de Datos Ing. Scarleth Rivera
44. El resultado se muestra en la siguiente imagen, donde tenemos los datos en SQL y el excel
creado:
49
Implementación Almacén de Datos Ing. Scarleth Rivera
ETLPeliculas5
45. Crearemos el “ETLPeliculas5” y en esta ocasión vamos a probar el control para “Ordenar datos”,
cuando agregamos el ETL 5, y estamos ubicado en el “Flujo de control”, si nos fijamos en el
panel de Propiedades, el Name dice “Package”, como buena práctica ahí debemos colocar el
nombre del paquete del archivo físico. Que es el que podremos identificar para la ejecución en
tareas programadas, por lo que la renombramos:
46. Luego de eso, agregan los pasos que “Obtener Películas” y “Convertir Género y Título” y
arrastramos el control “Ordenar” poniéndole nombre: “Ordenar por Título”, ahí escogemos el
campo y el tipo de ordenamiento en este caso Ascendente:
47. Y por último seleccionamos el destino agregando un control para que los datos caigan en un
archivo plano y dentro de la configuración colocamos el nombre del txt, que en este caso es
50
Implementación Almacén de Datos Ing. Scarleth Rivera
“PeliculasOrdenadas”:
48. En la parte “Avanzadas”, quitamos las copias de las columnas Género y título y las que quedan le
ponemos tamaño (50):
49. En Asignación escogemos las copias de Género y Título que tienen el tamaño (50. Damos clic en
“Aceptar”:
51
Implementación Almacén de Datos Ing. Scarleth Rivera
52
Implementación Almacén de Datos Ing. Scarleth Rivera
ETLPeliculas6
52. Crearemos el “ETLPeliculas6” donde vamos a realizar una búsqueda Aproximada:
53. El primero paso es el control “Origen de OLE DB”, para obtener los datos de la tabla
“tblPeliculasBusqueda”, damos clic en “Cerrar” -> “Aceptar”:
53
Implementación Almacén de Datos Ing. Scarleth Rivera
55. En la pestaña “Conexión”, escogemos la tabla “tblPeliculas”, para realizar la búsqueda dentro de
ella:
54
Implementación Almacén de Datos Ing. Scarleth Rivera
56. En la pestaña “columnas”, se arrastra el campo “Título” de la tabla de la izquierda hacia la tabla
Película y seleccionamos todos menos “PeliculaId” porque no lo tenemos en la tabla destino.
Luego damos clic en “Aceptar”:
57. Agregamos un control llamado “Columna derivada”, como un paso previo para poner el destino
de los datos, al unir el control de búsqueda muestra la siguiente ventana, donde escogemos el
condicional de los datos, en este caso es “Salida de entradas no coincidentes de búsqueda”,
55
Implementación Almacén de Datos Ing. Scarleth Rivera
59. Agregamos el control para insertar los datos un archivo plano, el cual vamos a llamar
“PeliculasSimilitud.txt”:
56
Implementación Almacén de Datos Ing. Scarleth Rivera
57
Implementación Almacén de Datos Ing. Scarleth Rivera
62. Le cambié la condición para que identificara las coincidencias porque el primero no me dio
resultado, al ejecutar me generó este resultado:
58
Implementación Almacén de Datos Ing. Scarleth Rivera
MezclaLibros1
63. Creamos ahora un ETL para cargar Libros y Autores:
59
Implementación Almacén de Datos Ing. Scarleth Rivera
65. Damos clic en visualizar los datos, luego damos “Cerrar” -> “Aceptar”:
66. Colocamos otro control de origen de datos Excel para obtener los Escritores:
60
Implementación Almacén de Datos Ing. Scarleth Rivera
67. Tenemos que ordenar los datos para poder utilizar el paso siguiente, en este caso lo hacemos
por “AutorID” para los dos orígenes de datos, el cual coincide entre Libros y Escritores:
68. Agregamos el control de “combinación de mezcla”, al unir el paso 1, nos aparece la imagen
siguientes, donde debemos escoger en “Entrada” el lado “Izquierdo”, al unir el control 2 a la
mezcla, ya no pide información entendiendo que corresponde el lado derecho:
69. Renombramos el control de combinación de Mezcla por “Inner Join”, ya que su función es unir
ambas tablas por un campo en común, el resultado son los registros que coinciden por el campo
“AutorID”, escogemos los campos y modificamos el campo “Nombre” por Autor. Damos clic en
61
Implementación Almacén de Datos Ing. Scarleth Rivera
“Aceptar”:
70. Agregamos el destino a un Excel, al editar seleccionamos la ruta con el nombre del archivo:
71. En “Nueva”, editamos la tabla del archivo excel con los tipos de datos correctos:, damos clic en
“Aceptar”:
62
Implementación Almacén de Datos Ing. Scarleth Rivera
72. Hacemos el match de los campos del set de resultados obtenidos, damos clic en “Aceptar”:
63
Implementación Almacén de Datos Ing. Scarleth Rivera
MezclaLibros2
74. Por último, creamos otro ETL con los mismos pasos del anterior, pero en este caso agregamos el
contador de registros:
75. Al ejecutar podemos visualizar la cantidad de registros que se obtiene de del “Inner Join”:
64
Implementación Almacén de Datos Ing. Scarleth Rivera
65
Implementación Almacén de Datos Ing. Scarleth Rivera
DWH
Paquete ETLDWH1
2. En flujo de control agregamos una tarea de flujo de datos con el nombre DTLDWH1.
66
Implementación Almacén de Datos Ing. Scarleth Rivera
3. Presionamos doble clic en la tarea flujo de datos y agregamos un origen de Excel con el nombre
“Ventas-Totales-Detalladas2021”.
4. Presionamos doble clic en el origen de Excel para configurar la conexión del archivo.
Presionamos nueva (Conexión de Excel), examinar, seleccionamos el archivo y presionamos
abrir.
67
Implementación Almacén de Datos Ing. Scarleth Rivera
68
Implementación Almacén de Datos Ing. Scarleth Rivera
8. Presionamos doble clic en agrupar por producto para configurar las columnas a agrupar.
Seleccionamos las columnas CODPART y Artículo, le agregamos la operación Group By,
agregamos una columna adicional para las demás columnas con operación Count All para
realizar un conteo y presionamos aceptar.
9. Agregamos un destino de archivo plano donde se guardarán los datos de la salida, cambiamos el
nombre por “Dim_Productos”.
69
Implementación Almacén de Datos Ing. Scarleth Rivera
10. Presionamos doble clic en Dim_Productos para configurar. Presionamos nuevo (conexión de
archivo plano), seleccionamos el formato delimitado y aceptar.
70
Implementación Almacén de Datos Ing. Scarleth Rivera
12. En avanzadas se valida, se cambia los campos de salida adecuados, tipo, tamaño y se presiona
aceptar.
71
Implementación Almacén de Datos Ing. Scarleth Rivera
14. Validamos el archivo generado con los datos agrupados con los números de registros
duplicados.
72
Implementación Almacén de Datos Ing. Scarleth Rivera
Paquete ETLDWH2
73
Implementación Almacén de Datos Ing. Scarleth Rivera
17. Presionamos nueva, ingresamos el nombre del servidor, seleccionamos el nombre de la Base de
Datos y presionamos aceptar.
18. Agregamos una “Tarea Ejecutar SQL” y le cambiamos el nombre a “Limpiar tablas”.
74
Implementación Almacén de Datos Ing. Scarleth Rivera
19. Presionamos doble clic en “Limpiar tablas” para configurar. Seleccionamos la conexión a la BD
del DWH, en “SQL Statement” ingresamos las consultas, en este caso ingresamos los Delete a las
tablas que se necesita limpiar en este paquete. Es importante tener en cuenta las llaves
foráneas, en este caso iniciaremos limpiando la tabla Hechos_Ventas para que no de error.
20. Agregamos una “Tarea flujo de datos”, cambiamos el nombre a “Cargar Dimensión Producto” y
unimos con la “Tarea ejecutar SQL”.
21. Presionamos doble clic en “Cargar Dimensión Productos”, agregamos un origen de Excel y le
cambiamos el nombre a “Ventas-Totales-Detalladas2021”.
75
Implementación Almacén de Datos Ing. Scarleth Rivera
22. Presionamos doble clic en el origen de Excel para configurar. Seleccionamos la conexión ya
creada para la base de datos del DWH y la hoja en la que se encuentran los datos.
76
Implementación Almacén de Datos Ing. Scarleth Rivera
24. Agregamos la herramienta “Agregado” para agrupar y eliminar datos duplicados. Cambiamos el
nombre a “Eliminar duplicados de productos” y unimos al origen de Excel.
25. Presionamos doble clic en la herramienta de agrupado para configurar. Seleccionamos las
columnas “CODART” y “Artículo”, cambiamos el alias de salida iguales a los nombres de los
campos de destino para que realice la unión de columnas automáticamente (Si las columnas no
77
Implementación Almacén de Datos Ing. Scarleth Rivera
tienen los nombres iguales, se tiene que realizar la unión manualmente), agregamos a ambas
columnas la operación “Group By” para realizar el agrupado con las dos columnas y
presionamos aceptar.
26. Agregamos la herramienta “Conversión de datos” para convertir los tipos de datos y tamaños
igual a los campos de la tabla destino, para no tener problemas con las columnas de origen y las
de destino. Seleccionamos las columnas, definimos los tipos de datos, longitud y presionamos
aceptar.
27. Agregamos la herramienta “Ordenar” a como lo indica el nombre para ordenar los datos y se
inserten los datos ordenados a la BD del DWH. Se cambia el nombre de la herramienta a
“Ordenar por COD_PROD” y se une al flujo de datos.
78
Implementación Almacén de Datos Ing. Scarleth Rivera
28. Presionamos doble clic en la herramienta “Ordenar” para configurar. Se selecciona la columna
“copia de COD_PROD”, esta columna con la conversión de datos, se ordenará ascendentemente
y presionamos aceptar.
29. Agregamos la herramienta “Destino de OLE DB” para configurar la conexión al SQL y realice la
inserción de los datos. Se cambia el nombre de la herramienta por “Insertar Dim_Productos” y
se une al flujo de datos.
79
Implementación Almacén de Datos Ing. Scarleth Rivera
30. Se presiona doble clic a “Inserta Dim_Productos” para configurar. Se selecciona la conexión ya
creada a la Base de Datos del DWH1 y se selecciona la tabla destino en este caso
“Dim_Productos”.
31. En asignaciones se cambian las columnas copia que son los campos con la conversión de datos,
en la columna de entrada de COD_PRODKEY se deja en omitir ya que este campo es “Identidad”
por cada inserción llenara el campo con números secuencialmente y presionamos aceptar.
80
Implementación Almacén de Datos Ing. Scarleth Rivera
33. En el SQL Management se realiza un select a la tabla donde se realizó la inserción, validando el
número de filas y el orden.
81
Implementación Almacén de Datos Ing. Scarleth Rivera
34. Agregamos una “Tarea flujo de datos”, cambiamos el nombre a “Cargar Dimension_Clientes” y
unimos con “Cargar Dimension_Productos”.
82
Implementación Almacén de Datos Ing. Scarleth Rivera
36. Presionamos doble clic en el origen de Excel para configurar. Seleccionamos la conexión ya
creada para la base de datos del DWH y la hoja en la que se encuentran los datos.
83
Implementación Almacén de Datos Ing. Scarleth Rivera
38. Agregamos la herramienta “Agregado” para agrupar y eliminar datos duplicados. Cambiamos el
nombre a “Eliminar duplicados de clientes” y unimos al origen de Excel.
39. Presionamos doble clic en la herramienta de agrupado para configurar. Seleccionamos las
columnas “CODCLI”, “CLIENTE”, “PAIS”, “PROVINCIA” y ”ZONA”, cambiamos el alias de salida
iguales a los nombres de los campos de destino para que realice la unión de columnas
84
Implementación Almacén de Datos Ing. Scarleth Rivera
automáticamente (Si las columnas no tienen los nombres iguales, se tiene que realizar la unión
manualmente), agregamos a todas las columnas la operación “Group By” para realizar el
agrupado con las columnas y presionamos aceptar.
40. Agregamos la herramienta “Conversión de datos” para convertir los tipos de datos y tamaños
igual a los campos de la tabla destino, para no tener problemas con las columnas de origen vs
las de destino. Seleccionamos las columnas, definimos los tipos de datos, longitud y
presionamos aceptar.
41. Agregamos la herramienta “Ordenar” a como lo indica el nombre para ordenar los datos y se
inserten los datos ordenados a la BD del DWH. Se cambia el nombre de la herramienta a
“Ordenar por COD_CLI” y se une al flujo de datos.
85
Implementación Almacén de Datos Ing. Scarleth Rivera
42. Presionamos doble clic en la herramienta “Ordenar” para configurar. Se selecciona la columna
“copia de COD_CLI”, esta columna con la conversión de datos, se ordenará ascendentemente y
presionamos aceptar.
43. Agregamos la herramienta “Destino de OLE DB” para configurar la conexión al SQL y realice la
inserción de los datos. Se cambia el nombre de la herramienta por “Insertar Dim_Clientes” y se
une al flujo de datos.
86
Implementación Almacén de Datos Ing. Scarleth Rivera
44. Se presiona doble clic a “Inserta Dim_Clientes” para configurar. Se selecciona la conexión ya
creada a la Base de Datos del DWH1 y se selecciona la tabla destino en este caso
“Dim_Clientes”.
45. En asignaciones se cambian las columnas copia que son los campos con la conversión de datos,
en la columna de entrada de COD_CLIKEY se deja en omitir ya que este campo es “Identidad”
por cada inserción llenará el campo con números secuencialmente y presionamos aceptar.
87
Implementación Almacén de Datos Ing. Scarleth Rivera
48. En el SQL Management se realiza un select a la tabla donde se realizó la inserción, validando el
número de filas y el orden.
88
Implementación Almacén de Datos Ing. Scarleth Rivera
49. Agregamos una tarea ejecutar SQL y le cambiamos el nombre a “Dim_Tiempo” y unimos a “Cargar
Dimension_Clientes”.
50. Presionamos doble clic en “Dim_Tiempo” para configurar. Seleccionamos la conexión a la BD del
DWH, en “SQL Statement” ingresamos las consultas, en este caso ingresamos el script que llenara la
tabla indicada.
89
Implementación Almacén de Datos Ing. Scarleth Rivera
52. En el SQL Management se realiza un select a la tabla donde se realizó la inserción, validando el
número de filas.
90
Implementación Almacén de Datos Ing. Scarleth Rivera
53. Agregamos una “Tarea flujo de datos”, cambiamos el nombre a “Cargar Hechos_Ventas” y unimos
con “Dim_Tiempo”.
54. Presionamos doble clic en “Cargar Hechos_Ventas”, agregamos un origen de Excel y le cambiamos el
nombre a “Ventas-Totales-Detalladas2021”.
91
Implementación Almacén de Datos Ing. Scarleth Rivera
55. Presionamos doble clic en el origen de Excel para configurar. Seleccionamos la conexión ya creada
para la base de datos del DWH y la hoja en la que se encuentra los datos.
92
Implementación Almacén de Datos Ing. Scarleth Rivera
57. Agregamos la herramienta “Agregado” para agrupar y eliminar datos duplicados. Cambiamos el
nombre a “Eliminar duplicados de clientes” y unimos al origen de Excel.
58. Presionamos doble clic en la herramienta de agrupado para configurar. Seleccionamos las columnas
“CODCLI”, “CLIENTE”, “PAIS”, “PROVINCIA” y ”ZONA”, cambiamos el alias de salida iguales a los nombres
de los campos de destino para que realice la unión de columnas automáticamente (Si las columnas no
tienen los nombres iguales, se tiene que realizar la unión manualmente), agregamos a todas las
columnas la operación “Group By” para realizar el agrupado con las columnas y presionamos aceptar.
59. Agregamos la herramienta “Conversión de datos” para convertir los tipos de datos y tamaños igual a
los campos de la tabla destino, para no tener problemas con las columnas de origen vs las de destino.
Seleccionamos las columnas, definimos los tipos de datos, longitud y presionamos aceptar.
93
Implementación Almacén de Datos Ing. Scarleth Rivera
94
Implementación Almacén de Datos Ing. Scarleth Rivera
61. Presionamos doble clic en la herramienta “Búsqueda” para configurar. En general se cambia como se
tratan las filas sin entradas coincidentes a “Redirigir filas a resultados no coincidentes”.
95
Implementación Almacén de Datos Ing. Scarleth Rivera
63. En columnas unimos las columnas COD_PROD y COD_PRODKEY. Seleccionamos como columna de
búsqueda COD_PRODKEY.
96
Implementación Almacén de Datos Ing. Scarleth Rivera
65. Unimos al flujo de datos, en la salida seleccionamos “Salida de entradas coincidentes de búsqueda” y
presionamos aceptar.
66. Presionamos doble clic en la herramienta “Búsqueda” para configurar. En general se cambia como se
tratan las filas sin entradas coincidentes a “Redirigir dilas a resultados no coincidentes”.
97
Implementación Almacén de Datos Ing. Scarleth Rivera
68. En columnas unimos las columnas COD_CLI y COD_CLIKEY. Seleccionamos como columna de
búsqueda COD_CLIKEY.
98
Implementación Almacén de Datos Ing. Scarleth Rivera
70. Unimos al flujo de datos, en la salida seleccionamos “Salida de entradas coincidentes de búsqueda” y
presionamos aceptar.
99
Implementación Almacén de Datos Ing. Scarleth Rivera
71. Presionamos doble clic en la herramienta “Búsqueda” para configurar. En general se cambia como se
tratan las filas sin entradas coincidentes a “Redirigir filas a resultados no coincidentes”.
72. En columnas unimos las columnas FECHA y FECHA. Seleccionamos como columna de búsqueda
FECHA y presionamos aceptar.
100
Implementación Almacén de Datos Ing. Scarleth Rivera
74. Unimos al flujo de datos, en la salida seleccionamos “Salida de entradas coincidentes de búsqueda” y
presionamos aceptar.
101
Implementación Almacén de Datos Ing. Scarleth Rivera
75. Presionamos doble clic en “Cálculo de venta” para configurar. En las columnas arrastramos
“UNIDADES”, “VENTAS” y “COSTOS”; en la columna derivada escogemos las opciones de reemplazar el
campo que le corresponda y en las expresiones agregamos el cálculo para cada columna derivada.
Adicional agregar columna “Utilidad” y en la expresión ingresamos el cálculo (ventas * unidades – costos
* unidades) y presionamos aceptar.
102
Implementación Almacén de Datos Ing. Scarleth Rivera
77. Presionamos doble clic en “Agrupar por Llaves de Dimensiones” y agregamos las llaves de
dimensiones “COD_PROKEY” (Operación Group By), “COD_CLIKEY” (Operación Group By), “FECHA”
(Operación Group By), “UNIDADES” (Operación Sum), “COSTOS” (Operación Sum), “VENTAS” (Operación
Sum), “UTILIDAD” (Operación Sum) y presionamos aceptar.
78. Arrastramos destino de OLE DB y cambiar nombre por “Insertar Hechos_Ventas” y unimos al flujo de
datos.
103
Implementación Almacén de Datos Ing. Scarleth Rivera
79. Presionamos doble clic en destino OLE DB “Insertar Hechos_Ventas” para configurar y seleccionamos
la tabla donde se insertarán los datos.
104
Implementación Almacén de Datos Ing. Scarleth Rivera
80. En asignaciones validamos que las columnas estén correctamente vinculadas, se vinculan
automáticamente cuando las columnas de entradas tienen el mismo nombre de las columnas de destino
y presionamos aceptar.
105
Implementación Almacén de Datos Ing. Scarleth Rivera
106
Implementación Almacén de Datos Ing. Scarleth Rivera
107
Implementación Almacén de Datos Ing. Scarleth Rivera
108
Implementación Almacén de Datos Ing. Scarleth Rivera
82. Para este paquete reutilizaremos la BD de DW1 con la diferencia que agregaremos dos campos
“FECHA_INICIAL” Y “FECHA_FINAL” en las tablas “Dim_Productos” y “Dim_Clientes”. Ejecutamos el
script para crear la base de datos.
109
Implementación Almacén de Datos Ing. Scarleth Rivera
84. En el flujo de control, en Limpiar tablas modificamos la conexión a la nueva base de datos DW2 y
modificamos las tablas a limpiar quedando únicamente “Hechos_Ventas” y “Dim_Tiempo”.
110
Implementación Almacén de Datos Ing. Scarleth Rivera
85. En todas las conexiones a SQL cambiamos las conexiones de DW1 a DW2. Ingresamos al flujo de
datos “Cargar Dimension_Productos” y eliminamos la herramienta “Insertar Dim_Productos”.
86. Agregamos la herramienta “Dimensión de variación lenta”, cambiamos el nombre por “SC02
Dim_Productos” y unimos al flujo.
87. Presionamos doble clic para configurar “SC02 Dim_Productos”. Presionamos siguiente.
111
Implementación Almacén de Datos Ing. Scarleth Rivera
112
Implementación Almacén de Datos Ing. Scarleth Rivera
90. Agregamos la opción de fecha inicial y fecha final, agregamos los campos que corresponden a cada
campo, en variable para establecer valores de fecha seleccionamos “System:StartTime” y presionamos
siguiente.
113
Implementación Almacén de Datos Ing. Scarleth Rivera
114
Implementación Almacén de Datos Ing. Scarleth Rivera
95. Cambiamos el nombre de la herramienta columna derivada por “Expirar Registro”. Presionamos
doble clic y modificamos la expresión de la columna “Fecha_Final” agregando la función GetDate() y
presionamos aceptar.
115
Implementación Almacén de Datos Ing. Scarleth Rivera
96. Cambiamos el nombre de la herramienta “Comando de OLE DB” por “Actualizar Fecha Final”.
Presionamos doble clic, en la pestaña Propiedades de componentes editamos la propiedad
“SQLCOMMAND” lo dejamos igual a la siguiente imagen y presionamos aceptar.
116
Implementación Almacén de Datos Ing. Scarleth Rivera
117
Implementación Almacén de Datos Ing. Scarleth Rivera
100. Agregamos la herramienta “Dimensión de variación lenta”, cambiamos el nombre por “SC02
Dim_Clientes” y unimos al flujo.
118
Implementación Almacén de Datos Ing. Scarleth Rivera
101. Presionamos doble clic para configurar “SC02 Dim_Clientes”. Presionamos siguiente.
102. Seleccionamos la conexión a la BD, tabla “Dim_Clientes” y seleccionamos las columnas de entradas
con nombre de copia que son las columnas creadas por la conversión. En el campo COD_CLIE agregamos
en tipo de clave, clave empresarial y presionamos siguiente.
119
Implementación Almacén de Datos Ing. Scarleth Rivera
103. Agregamos las siguientes columnas de la imagen con el tipo de Atributo histórico y presionamos
siguiente.
120
Implementación Almacén de Datos Ing. Scarleth Rivera
104. Agregamos la opción de fecha inicial y fecha final, agregamos los campos que corresponden a cada
campo, en variable para establecer valores de fecha seleccionamos “System:StartTime” y presionamos
siguiente.
121
Implementación Almacén de Datos Ing. Scarleth Rivera
107. Presionamos doble clic en “SC02 Dim_Productos” y mostrar el editor avanzado. En la pestaña
Propiedades de componentes cambiamos la propiedad “CurrentRowWhere”, se deja igual a la siguiente
imagen y presionamos aceptar.
122
Implementación Almacén de Datos Ing. Scarleth Rivera
108. Cambiamos el nombre de la herramienta columna derivada por “Expirar Registro”. Presionamos
doble clic y modificamos la expresión de la columna “Fecha_Final” agregando la función GetDate() y
presionamos aceptar.
123
Implementación Almacén de Datos Ing. Scarleth Rivera
109. Cambiamos el nombre de la herramienta “Comando de OLE DB” por “Actualizar Fecha Final”.
Presionamos doble clic, en la pestaña Propiedades de componentes editamos la propiedad
“SQLCOMMAND” lo dejamos igual a la siguiente imagen y presionamos aceptar.
124
Implementación Almacén de Datos Ing. Scarleth Rivera
125
Implementación Almacén de Datos Ing. Scarleth Rivera
126
Implementación Almacén de Datos Ing. Scarleth Rivera
127
Implementación Almacén de Datos Ing. Scarleth Rivera
128
Implementación Almacén de Datos Ing. Scarleth Rivera
115. Ejecutamos nuevamente el paquete y podemos observar que en productos realiza el flujo
normalmente, pero al final solo ingresa 1 fila del nuevo producto que ingresamos, esto se debe porque
la configuración está incremental en la tabla productos.
129
Implementación Almacén de Datos Ing. Scarleth Rivera
130
Implementación Almacén de Datos Ing. Scarleth Rivera
117. Presionamos doble clic en la tarea de flujo de datos “Limpiar tablas”, en “SQLStatement”
modificaremos la consulta, solo dejaremos que limpie la tabla Dim_Tiempo y presionamos aceptar.
131
Implementación Almacén de Datos Ing. Scarleth Rivera
132
Implementación Almacén de Datos Ing. Scarleth Rivera
133
Implementación Almacén de Datos Ing. Scarleth Rivera
120. Agregamos dos herramientas ordenar, la primera le cambiamos el nombre a “Ordenar por llaves de
dimensiones 1” y unimos a “Agrupar por Llaves de Dimensiones”, la segunda le cambiamos el nombre a
“Ordenar por llaves de dimensiones 2” y unimos a “Hechos de ventas”.
134
Implementación Almacén de Datos Ing. Scarleth Rivera
121. Configuramos las herramientas de Ordenar, seleccionando las columnas llaves de las tablas de
dimensión y las ordenamos ascendente.
135
Implementación Almacén de Datos Ing. Scarleth Rivera
121. Agregamos la herramienta combinación de mezcla, cambiamos el nombre por “Revisar si existen
cambios vs el DW” y unimos a las dos herramientas de Ordenar.
136
Implementación Almacén de Datos Ing. Scarleth Rivera
122. Presionamos doble clic en “Revisar si existen cambios vs el DW” para configurar. Seleccionamos
combinación externa izquierda para que compare los datos del origen, donde se tomaran las diferencias
e ingresarlas al destino. Seleccionamos todas las columnas del lado izquierdo (origen) y del lado derecho
seleccionamos los campos que no son llaves y se llenan desde el origen, adicional, renombramos y
agregamos al nombre de la columna “Hechos” para diferenciar las columnas entre los orígenes.
137
Implementación Almacén de Datos Ing. Scarleth Rivera
138
Implementación Almacén de Datos Ing. Scarleth Rivera
125. Presionamos doble clic en la herramienta “Insertar Hechos_Ventas” para configurar la conexión a la
base de datos DW2, la tabla “Hechos_Ventas”, validamos la columna y presionamos aceptar.
139
Implementación Almacén de Datos Ing. Scarleth Rivera
140
Implementación Almacén de Datos Ing. Scarleth Rivera
141
Implementación Almacén de Datos Ing. Scarleth Rivera
142
Implementación Almacén de Datos Ing. Scarleth Rivera
130. En la pestaña Asignaciones de columnas, agregamos las asignaciones de las columnas a los
parámetros que ingresamos en la consulta según el orden ingresado y presionamos aceptar.
143
Implementación Almacén de Datos Ing. Scarleth Rivera
131. En el SQL Management volvemos a ejecutar el script de la creación de la base de datos DW2 para
recrearla y probar el paquete “ETLDWH4”.
144
Implementación Almacén de Datos Ing. Scarleth Rivera
134. Ejecutamos el paquete por segunda vez para validar que no inserta o actualiza ninguna fila al no
tener ninguna modificación en la data origen.
145
Implementación Almacén de Datos Ing. Scarleth Rivera
135. Modificamos el archivo de Excel la última fila, guardamos y ejecutamos el paquete por tercera vez
para validar que actualiza 1 fila que es la fila que modificamos en el archivo de origen.
146
Implementación Almacén de Datos Ing. Scarleth Rivera
147
Implementación Almacén de Datos Ing. Scarleth Rivera
1. Se realiza captura del script de creación de Base de datos de DW2 con FILEGROUPS, simulando
con rutas diferentes para tenerlos en servidores o discos de almacenamientos diferentes.
148
Implementación Almacén de Datos Ing. Scarleth Rivera
3. Ejecución de paquete ETLDWH4 con base de datos recreada con mejoras (FILEGROUP,
separación de rutas de almacenamiento).
149
Implementación Almacén de Datos Ing. Scarleth Rivera
150
Implementación Almacén de Datos Ing. Scarleth Rivera
ANEXOS
Según las indicaciones realizaremos una práctica sobre la creación de ETL. Para ello realizaremos los
siguientes pasos:
1. Crear nuevo Proyecto dentro de la solución creada en la primera Práctica. Nos vamos a
“Archivo” -> “Agregar” -> “Nuevo Proyecto”:
2. Nos aparece la pantalla para crear el proyecto, lo que hacemos es buscar “Integration” y
seleccionamos la primera opción. Damos clic en “Siguiente”:
151
Implementación Almacén de Datos Ing. Scarleth Rivera
3. Escogemos el nombre del proyecto y conservamos la ruta de la solución. Damos clic en “Crear”:
4. Renombré el proyecto anterior porque se llamaba como la solución. Luego podemos ver ambos
proyectos:
5. Adicional procedemos a ejecutar el script de la Base de datos con las inserción de datos:
152
Implementación Almacén de Datos Ing. Scarleth Rivera
Aggregate
6. Vamos a trabajar con el primer paso el cual es agregar las nuevas tablas “Promedios” y
“JugadoresPorNacionalidad”
7. Agregamos un “Execute TSQL Statement”, lo conectamos a la base de datos SSIS, dentro del
campo “Connection” desplegamos el combo, nos aparece la ventana con las conexiones
153
Implementación Almacén de Datos Ing. Scarleth Rivera
8. Colocamos el nombre del Server y seleccionamos la base correspondiente, luego damos clic en
“Aceptar” -> “Aceptar” :
154
Implementación Almacén de Datos Ing. Scarleth Rivera
10. Agregamos una “Tarea Flujo de datos” y los llamamos “Valores agregados”:
11. Dentro del Flujo de datos, se agrega un control “Origen de OLE DB”, dentro, configuramos la
155
Implementación Almacén de Datos Ing. Scarleth Rivera
12. Agregamos un nuevo control tipo “Agregado”, en la configuración, el primer paso es dar clic en
el botón “Avanzados”, se va desplegar un cuadro en la parte de arriba y el botón dirá “Básico”:
13. Agregamos dos variable, la primera agregación es “PromedioPeso” que usa el campo de la tabla
“PiePreferido” seleccionado del combo “Agrupado por columna”y abajo agregamos también el
campo “PesoKG” y escogemos en “Operación” el tipo “AVG” de Average:
156
Implementación Almacén de Datos Ing. Scarleth Rivera
15. El siguiente paso es crear un control de Destino OLE DB para insertar los datos en la tabla
“Promedios” de la base SSIS, al conectar el control agregado al destino, despliega la siguiente
ventana para escoger el tipo de agrupación que vamos a usar para obtener los datos:
157
Implementación Almacén de Datos Ing. Scarleth Rivera
158
Implementación Almacén de Datos Ing. Scarleth Rivera
17. En la pestaña de “Asignaciones”, se debe escoger los campos correspondientes, damos clic en
“Aceptar”:
18. Agregamos un segundo destino OLE DB, para insertar los datos en la
tabla”JugadoresPorNacionalidad”:
159
Implementación Almacén de Datos Ing. Scarleth Rivera
20. Así queda el diagrama de Flujo, pero tenemos una advertencia de truncado de datos en el
campo “PiePreferido”:
160
Implementación Almacén de Datos Ing. Scarleth Rivera
22. Por lo anterior agregamos un control de “Conversión de datos”, para cambiar el campo
“PiePreferido” de tamaño 50 a 10, como la tabla destino y lo renombramos:
161
Implementación Almacén de Datos Ing. Scarleth Rivera
23. Hacemos los cambios pertinentes para que se use el nuevo campo en “Agregado” e “Insertar
Promedios” y ya no sale la advertencia:
162
Implementación Almacén de Datos Ing. Scarleth Rivera
Conditional Split
26. El primer paso es crear dos tablas con la misma estructura de la tabla Fifa pero que indiquen
Mayores y Menores en el nombre:
163
Implementación Almacén de Datos Ing. Scarleth Rivera
27. Agregamos un nuevo paquete en en cual agregamos un flujo de datos llamado “Insertar
Jugadores por Edad”:
28. Agregamos un nuevo Origen de datos OLE DB, lo configuramos para que los datos se obtengan
de un consulta SQL, damos clic en “Aceptar”:
164
Implementación Almacén de Datos Ing. Scarleth Rivera
29. Agregamos el control “División Condicional”, donde agregamos la función Year() para obtener el
año y poder escoger las fecha que son menores o iguales a 1990:
30. Creamos dos destinos, uno para la tabla Mayores y la otra para insertar los datos en la tabla
Menores:
165
Implementación Almacén de Datos Ing. Scarleth Rivera
31. Escogemos la tabla “Mayores1990” y enlazamos los campos, damos clic en “Aceptar”:
166
Implementación Almacén de Datos Ing. Scarleth Rivera
Derived Column
167
Implementación Almacén de Datos Ing. Scarleth Rivera
35. Agregamos el Control de flujo de datos con el nombre de “insertar Jugadores por Edad”
36. Agregamos un control de Origen de datos y configuramos la consulta sql que se muestra en
imagen, damos clic en “Aceptar”:
168
Implementación Almacén de Datos Ing. Scarleth Rivera
37. Agregamos una columna derivada para “calcular Edad”, haciendo uso de la fórmula “DateDiff”:
38. Creamos el destino del ETL, para que se almacenen los datos en la tabla correspondiente:
169
Implementación Almacén de Datos Ing. Scarleth Rivera
170
Implementación Almacén de Datos Ing. Scarleth Rivera
41. Creamos el ETL y ponemos un tarea de Flujo de datos, dentro de él ponemos el control de
origen de datos, con el “Modo de acceso a datos” tipo “Comando SQL”:
171
Implementación Almacén de Datos Ing. Scarleth Rivera
43. Al darle clic al botón “Siguiente” nos aparece las opciones de conexión y escogemos la tabla
“dw.Fifa”, nos aparecen los campos que hacen match con el origen de datos y escogemos en la
“columna de clave”: “Llave Empresarial”:
44. En la siguiente pantalla, escogemos dos columnas, el primero “Club” con el tipo “Atributo
Histórico” y el “nombre” es tipo “Atributo variable” agregamos también “FechaNacimiento”
como “Atributo Fijo”:
172
Implementación Almacén de Datos Ing. Scarleth Rivera
45. Marcamos el check para que presente error si el campo FechaNacimiento, si hay alguna
variación y el otro sin marcar:
46. Escogemos la segunda opción y seleccionamos la Fechas Inicio y Final, seleccionamos la variable
tipo “StartTime”
173
Implementación Almacén de Datos Ing. Scarleth Rivera
174
Implementación Almacén de Datos Ing. Scarleth Rivera
175
Implementación Almacén de Datos Ing. Scarleth Rivera
52. Vamos a hacer una prueba para ver qué hace el ETL, en este caso vamos a cambiar la Fecha de
Nacimiento, el cual debe dar error porque en la configuración marcamos como atributo fijo:
176
Implementación Almacén de Datos Ing. Scarleth Rivera
53. Al ejecutar ejecutar el paquete nos presenta error para impedirlo que no se cambie el campo de
Fecha de Nacimiento:
54. Vamos a actualizar el campo Nombre el cual configuramos como “Atributo variable”, hacemos
select para ver los datos antes de ejecutar el paquete. Modificamos el origen de datos para que
obtenga el código que actualizamos:
177
Implementación Almacén de Datos Ing. Scarleth Rivera
56. Al hacer select a la tabla destino, vemos que el campo se cambió de forma normal, sin agregar
registros nuevos:
178
Implementación Almacén de Datos Ing. Scarleth Rivera
57. El tercer ejemplo es para probar el campo que escogimos como “Atributo histórico”,
actualizamos el campo “Club”, y vemos el resultado del código de ejemplo antes de ejecutar,
cambiamos también el origen para solo obtener el registro del ejemplo:
58. Al ejecutar el paquete y verificar los datos, vemos que se agrega un nuevo registro en la tabla
destino, vamos viendo como se mueve las “FechasFin”, con el nuevo registros tiene ese dato en
“Null”:
179
Implementación Almacén de Datos Ing. Scarleth Rivera
60. Usamos los archivos que tenemos dentro de la carpeta “Demos” y creamos el archivo
“Rutas.txt”, lo llenamos seleccionando todos los archivos luego damos (click derecho + Shift),
luego le quitamos las comillas dobles y guardamos:
180
Implementación Almacén de Datos Ing. Scarleth Rivera
61. Creamos en Flujo de datos y dentro, agregamos, el origen de datos, el cual proviene de un
Archivo Plano, seleccionamos la ruta donde está el txt y deschequeamos la opción de que la
primera línea del archivo son los encabezados:
181
Implementación Almacén de Datos Ing. Scarleth Rivera
63. Agregamos el control “Importar columna”, en la segunda pestaña señalamos el campo rutas:
64. Nos ubicamos la opción “Salida de Importar Columna”, seleccionamos Columnas de salida y
damos clic en el botón “Agregar Columna”, y lo llamamos “Archivos”
182
Implementación Almacén de Datos Ing. Scarleth Rivera
183
Implementación Almacén de Datos Ing. Scarleth Rivera
184
Implementación Almacén de Datos Ing. Scarleth Rivera
70. Hacemos select a la tabla y podemos ver que tenemos el archivo dentro de la base de datos:
185
Implementación Almacén de Datos Ing. Scarleth Rivera
186
Implementación Almacén de Datos Ing. Scarleth Rivera
73. Ejecutamos el paquete pero antes vemos que no están los archivos:
187
Implementación Almacén de Datos Ing. Scarleth Rivera
For Loop
76. Creamos un parámetro, tipo entero dando clic derecho sobre la parte en blanco del “Flujo de
Control” y le vamos a poner “Contador”:
188
Implementación Almacén de Datos Ing. Scarleth Rivera
77. Agregamos un contenedor para hacer un bucle, dentro de él colocamos un control de para
ejecutar Tarea SQL, seleccionamos la conexión y colocamos el código sugerido:
189
Implementación Almacén de Datos Ing. Scarleth Rivera
79. Configuramos el Contenedor del bucle, con los datos, sobre los datos, para recorrer el ciclo y
cuando detenerse:
190
Implementación Almacén de Datos Ing. Scarleth Rivera
ForEach Loop
191
Implementación Almacén de Datos Ing. Scarleth Rivera
84. Creamos un control “Tarea Ejecutar SQL ”, seleccionamos la conexión y colocamos un select
para un top 10 a la tabla Fifa:
192
Implementación Almacén de Datos Ing. Scarleth Rivera
85. En la pestaña “Conjunto de resultados”, damos clic al botón “Agregar” y en la columna “Result
Name” colocamos un cero y en “Nombre de Variable”, escogemos la variable “Datos”, creado
anteriormente:
86. Agregamos un control “Contenedor de Bucles Foreach”, al configurar nos vamos a la pestaña
“Colección”. Dentro de ahí, vamos escoger del combo “Enumerador de ADO para foreach” y nos
cambia los datos abajo, ahí escogemos la variable “Datos”, damos clic en “Aceptar”:
193
Implementación Almacén de Datos Ing. Scarleth Rivera
87. En la pestaña “Asignación de variables” del Contenedor, se escoge la variable “ID” que devolverá
el valor de cada iteración, damos clic en “Aceptar”:
88. Dentro del bucle vamos tener un control para ejecutar una consulta sql, la cual va a actualizar el
campo, pero amarrado a una variable:
194
Implementación Almacén de Datos Ing. Scarleth Rivera
90. Verificamos que todos los registros están nulos antes de ejecutar el paquete:
195
Implementación Almacén de Datos Ing. Scarleth Rivera
91. Al ejecutar y hacer select de la consulta anterior, vemos que tenemos 10 registros, por el top 10
de la tarea ejecutar sql:
Lookup
196
Implementación Almacén de Datos Ing. Scarleth Rivera
94. Aquí vamos a agregar un control “Búsqueda” entre “Calcular Edad” y “Insertamos en
EdadJugaores”; en la configuración, en la pestaña “General” escogemos en el combo con la
opción “Redirigir filas a resultados no coincidentes”
197
Implementación Almacén de Datos Ing. Scarleth Rivera
96. En “Columnas” enlazamos el código “ID”, siempre dentro del control de “Búsqueda”:
198
Implementación Almacén de Datos Ing. Scarleth Rivera
97. Verificamos que sacando la cantidad de Registros la tabla “Fifa” tiene 1000 registros más que la
tabla “EdadJugadores”:
98.Al ejecutar el paquete, en el mensaje nos indica que insertó 1000 filas y en SQL podemos ver
también:
199
Implementación Almacén de Datos Ing. Scarleth Rivera
99. En este ejecicios, agregamos dos “Flujo de datos”, como se muestra en la imagen:
200
Implementación Almacén de Datos Ing. Scarleth Rivera
102. En la pestaña “Columnas” y en la columna “Posición” el “ID” le ponemos “1”, esto se usa
como un índice, damos clic en “Aceptar”:
201
Implementación Almacén de Datos Ing. Scarleth Rivera
103. Enlazamos las columnas del Origen de datos, damos clic en “Aceptar”:
104. Dentro del segundo Control Flujo de datos “Con caché”, agregamos primero el origen de
datos, en la cual usaremos una consulta de “Fifa” con pocos campos:
202
Implementación Almacén de Datos Ing. Scarleth Rivera
203
Implementación Almacén de Datos Ing. Scarleth Rivera
204
Implementación Almacén de Datos Ing. Scarleth Rivera
110. Ejecutamos el paquete y podemos ver que se trajo 17 mil registros de la tabla
“EdadJugadores” al archivo “Caché”:
205
Implementación Almacén de Datos Ing. Scarleth Rivera
111. En el segundo Flujo de datos ejecutamos pero los datos lo toma de caché, con el
objetivo de mejorar los tiempos de respuestas de lecturas en tablas grandes, viendo el select de
la cantidad se volvió a restaurar con los 1000 registros insertados de la caché:
206
Implementación Almacén de Datos Ing. Scarleth Rivera
207
Implementación Almacén de Datos Ing. Scarleth Rivera
208
Implementación Almacén de Datos Ing. Scarleth Rivera
Merge Join
209
Implementación Almacén de Datos Ing. Scarleth Rivera
120. Creamos otro componente de Origen de datos pero ahora lo llamamos “Jugadores” y lo
enlazamos directamente con la tabla “Fifa”:
210
Implementación Almacén de Datos Ing. Scarleth Rivera
121. Luego agregamos un control para ordenar los datos por “ID”, lo hacemos para ambos
orígenes de datos del paso anterior:
122. Agregamos el control para “Mezclar”, al enlazar con el control “Ordenar”, nos despliega
esta pantalla de la imagen y escogemos el orden de la “Entrada”, seleccionamos la primera
opción y damos clic en “Aceptar”:
211
Implementación Almacén de Datos Ing. Scarleth Rivera
123. Para finalizar colocamos un componente para insertar los datos en la tabla
“EdadNacimientoJugadores”:
212
Implementación Almacén de Datos Ing. Scarleth Rivera
213
Implementación Almacén de Datos Ing. Scarleth Rivera
127. Agregamos dos orígenes de datos uno para obtener los datos de la tabla
“Menores1990” y “Mayores1990” de la base de datos “Fifa”. Damos clic en “Aceptar”:
128. Es obligatorio tener un control de “Ordenar” para que luego podamos usar el control
“Mezclar”:
214
Implementación Almacén de Datos Ing. Scarleth Rivera
129. Agregamos el componente “Mezclar” para unir los datos de ambos set de datos,
escogemos entrada 1 y al unir el segundo control de “Mayore1990” entiende que el la 2 parte:
130. Agregamos un control “Destino OLE DB” para insertar los datos en la tabla “FifaMerged”
215
Implementación Almacén de Datos Ing. Scarleth Rivera
131. Enlazamos los campos, de un lado solo tenemos 3 columnas, y en el destino todas las de
la tabla “Fifa”, damos clic en “Aceptar”:
216
Implementación Almacén de Datos Ing. Scarleth Rivera
217
Implementación Almacén de Datos Ing. Scarleth Rivera
135. Dentro de la tarea de Flujo de datos “Ejercicio Union All”, copiamos los dos orígenes de
datos del ejercicio anterior, procedemos en agregar el componentes “Unión de todo” y no
debemos configurar nada adicional:
136. Creamos una segunda tabla “FifaMerged2”, para que tengamos los campos exacto de
las tablas “Menores1990” y “Mayores1990” para usar el componente “Unión de Todo”.
Adicional hacemos los “count()” nuevo para luego identificar la cantidad de la tabla final:
218
Implementación Almacén de Datos Ing. Scarleth Rivera
138. En la pestaña “Asignaciones”, podemos ver que los campos ya están enlazados y
corresponde con los campos de origen, damos clic en “Aceptar”:
219
Implementación Almacén de Datos Ing. Scarleth Rivera
139. Al ejecutar el paquete y comprobar los datos vemos que la tabla usada en el paso
“Final” tiene los los 17994 registros:
Merge
220
Implementación Almacén de Datos Ing. Scarleth Rivera
Multicast
221
Implementación Almacén de Datos Ing. Scarleth Rivera
144. Dentro del Data Flow, colocamos un control de origen OLD DB con la consulta siguiente
donde nos traemos solamente el nombre de la tabla “Fifa”:
145. Agregamos un control Multicast, que lo que hace es poder tener más de un destino para
los datos, agregamos el primer destino que es a la tabla creada “NombresUno” y hacemos
match del campo “Nombre” en “Asignaciones”. Damos clic en “Aceptar”:
146. Creamos ahora un control de destino para archivos planos. Primero escogemos la ruta
222
Implementación Almacén de Datos Ing. Scarleth Rivera
223
Implementación Almacén de Datos Ing. Scarleth Rivera
148. Ejecutamos el paquete y verificamos que tenemos los datos tanto en la tabla como en el
archivo txt:
OLE DB Command
149. Agregamos nuevo campo para almacenar el rango de altura de los jugadores en la tabla
“Fifa”
224
Implementación Almacén de Datos Ing. Scarleth Rivera
225
Implementación Almacén de Datos Ing. Scarleth Rivera
152. Agregamos ahora un “Comando OLE DB” y configuramos primero la conexión, en este
caso la de la bases SSIS:
154. Por último en la pestaña “Asignación”, escogemos los datos que corresponderá con los
226
Implementación Almacén de Datos Ing. Scarleth Rivera
227
Implementación Almacén de Datos Ing. Scarleth Rivera
157. Agregamos dos orígenes de datos con la misma consulta solo que el nombre indica que
uno es para datos Absoluto y Relativo:
228
Implementación Almacén de Datos Ing. Scarleth Rivera
158. En este paso escogemos el control “Muestreo de fila” y escogemos 1000 en el dato
“Número de Filas”, vemos que las columnas hacen matchy damos clic en “Aceptar”:
229
Implementación Almacén de Datos Ing. Scarleth Rivera
160. Añadiremos dos controles de destino de datos para cada componente, al enlazar vamos
a tener el condicional de “Seleccionados” y “No seleccionados”:
230
Implementación Almacén de Datos Ing. Scarleth Rivera
231
Implementación Almacén de Datos Ing. Scarleth Rivera
232
Implementación Almacén de Datos Ing. Scarleth Rivera
166. Ejecutando el paquete vemos que al consultar las tablas creadas inicialmente:
Rowcount
233
Implementación Almacén de Datos Ing. Scarleth Rivera
168. Copiamos el flujo de datos del ejercicio “15-OLE DB Command”, ya que los vamos a
utilizar y solo le agregaremos unas tareas adicionales y creamos una variable llamada
“Contador”:
234
Implementación Almacén de Datos Ing. Scarleth Rivera
170. Agregamos en la parte del Flujo de datos un componente “Tarea Ejecutar SQL” y
colocalos un insert a la tabla que creamos en un paso anterior:
171. Seleccionamos los parámetros, les colocamos el número de orden y el tamaño de los
parámetros:
235
Implementación Almacén de Datos Ing. Scarleth Rivera
Script Component
236
Implementación Almacén de Datos Ing. Scarleth Rivera
174. Escogemos un control “Componente de script”, nos aparece esta pantalla pero para
escoger el tipo, luego enlazamos con el origen:
237
Implementación Almacén de Datos Ing. Scarleth Rivera
238
Implementación Almacén de Datos Ing. Scarleth Rivera
178. Nos vamos a la pestaña “String” y damos clic en el botón “Editar Script”
179. Nos abre un proyecto en C#, dónde ponemos el codigo para separa las palabras:
239
Implementación Almacén de Datos Ing. Scarleth Rivera
240
Implementación Almacén de Datos Ing. Scarleth Rivera
Script Task
241
Implementación Almacén de Datos Ing. Scarleth Rivera
184. Creamos un control “Tarea Stript”, lo primero que configuramos son las variables que
creamos dentro del Campo “ReadOnlyVariables”:
185. Una vez seleccionadas las variables, damos clic en el botón “Editar script”:
242
Implementación Almacén de Datos Ing. Scarleth Rivera
Sequence Container
186. Creamos dos tablas e insertamos los registros en una de las tablas:
243
Implementación Almacén de Datos Ing. Scarleth Rivera
188. Y el segundo, es otro control para ejecutar tarea, pero ahora le ponemos que vamos a
renombrar la tabla DemoDest por Demo:
189. Por último en las propiedades del “Contenedor de secuencias” , cambiamos la opción de
“TransactionOpcion” a “Required”:
244
Implementación Almacén de Datos Ing. Scarleth Rivera
190. La ejecución presenta un error porque ya existe una tabla con ese mismo nombre, y
anula la transacción:
245
Implementación Almacén de Datos Ing. Scarleth Rivera
ANEXO 2
246
Implementación Almacén de Datos Ing. Scarleth Rivera
CONCLUSIÓN
En base a los ejercicios presentados en clase y las prácticas sugeridas, creamos una buena base de
conocimiento para la limpieza y creación de nuestros propios DWH, por lo que agradecemos al profesor
Denis Guido, por su excelente trabajo en la enseñanza en todos los módulos impartido, ambos estamos
satisfechos con lo aprendido.
247