CHAPTER 3: RESEARCH METHODOLOGY
3.9 Limitations
La tarea conocida como Extracción, transformación y carga consiste en un proceso automático para recuperar datos desde una o más fuentes de información hacia las tablas que conforman el Data Warehouse. El Paquete ETL, como será conocido a éste paquete, considera todas las restricciones y agregaciones de información requeridas para aplicar las operaciones de análisis mencionadas en el capítulo 3. Para el desarrollo de éste paquete se usó del archivo (MS Access) donde se encuentra la base de datos del Inventario Nacional forestal y de Suelos 2004-2009, una hoja de cálculo (MS Excel), donde se encuentran las ecuaciones de volumen para el estado de México y las herramientas del servicio de integración incluida en la versión Enterprise de SQL Server.
Para ejecutar el paquete de integración es necesario seguirlas instrucciones siguientes:
1. Abrir la aplicación SQL Server Data Tools que se encuentra en la lista de todos los programas.
2. Selecciona abrir proyecto en la ventana de Visual Studio 2010 que aparece.
3. Buscar archivo en la ruta C:\proyecto\Carga ArboladoBosqueSelva y seleccionar el proyecto.
153
En la solución que se abre se encuentran todos los comandos y tareas usados para la carga de datos desde la base de datos del INFyS, hacia las tablas del Data Warehouse. En la primera pestaña, etiquetada como control de flujo, se encuentran dos objetos (Figura 53) que llevan a cabo las tareas ETL y procesamiento del cubo de análisis.
Figura 53: Control de flujo del Paquete ETL. Elaboración: Propia para la investigación.
El primer objeto etiquetado como Flujo de datos representa el contenedor para una serie de objetos usados en la manipulación y procesamiento de la información desde diferentes fuentes de datos. El segundo objeto, llamado Tarea de Procesamiento de Cubos de análisis, contiene la conexión hacia el paquete de análisis creado con SSIS y su única tarea consiste en procesar las dimensiones y los cubos definidos de este paquete. En las siguientes secciones se describen con mayor detalle cada una de las tareas.
11.2.1 Integración de la tabla de hechos
En la Figura 54 se visualiza la pestaña flujo de datos donde se puede observar una serie de objetos relacionados que contienen conexiones e instrucciones SQL de selección, proyección,
154
Figura 54. Flujo de datos del Paquete de Integración. Elaboración: Propia para la investigación.
155
ordenación, reunión externa y funciones de agregación. Las tareas y funciones que se encuentran implícitas en los objetos se definen a continuación.
El objeto BD1, crea una conexión hacia un archivo en Microsoft Excel que contiene la información de las ecuaciones de volumen aplicables a algunos géneros arbóreos del Estado de México, obtenidas de Méndez y De los Santos (2011).
El Objeto P1, realiza una transformación a los datos correspondientes al campo género para garantizar la compatibilidad del dominio entre los datos provenientes del archivo de Excel y los provenientes de la base de datos del inventario.
El objeto OR1, sólo realiza una ordenación, por género, de los datos provenientes del objeto unificación de dominio.
El objeto BD2, crea una conexión hacia la base de datos del inventario, además de tener implícita una instrucción SQL que extrae la información relevante desde diferentes tablas y con diferentes restricciones. En el Cuadro 16 se encuentra el comando SQL empleado para extraer los datos así como las restricciones usadas por la CONAFOR en su reporte de resultados. La última restricción en la cláusula condicional hace referencia sólo a la vegetación de bosque y selva debido a que son los dos ecosistemas sobre los cuales recae las estimaciones de volumen de madera, biomasa y carbono.
Cuadro 16. Comando SQL usado para extraer los datos para la tabla de hechos. SELECT IdArboladoBosqueSelva, TblSitio.IdSitio, Genero, DiametroNormal, AlturaTotal, Estado FROM ((TblArboladoBosqueSelva INNER JOIN TblSitio ON TblArboladoBosqueSelva.IdSitio = TblSitio.IdSitio) INNER JOIN TblConglomerado ON TblSitio.IdConglomerado =
TblConglomerado.IdConglomerado)
WHERE Condicion in (1,2) AND (DiametroNormal >= 7.5) AND (DiametroNormal <= 132.5) AND (AlturaTotal >= 5) AND (AlturaTotal <= 47.5) AND (TipoVegetacionLev in (select
IdCveTipoVegetacion from CatTipoVegetacionInegiGeneral where CveTipoVegetacion IN ('Bosque','Selva')))
Elaboración: Propia para la investigación.
El objeto OR2, realiza una ordenación por género, de los datos extraídos de la base de datos del inventario.
El objeto P2, realiza la operación reunión externa por la izquierda para juntar en una sola tabla la información del arbolado con sus respectivas ecuaciones de volumen. Ésta
156
operación conserva toda la información de la tabla que se encuentra del lado izquierdo (los datos proveniente de la base de datos del inventario) y llena con valore nulos el lado derecho de la tabla que después de aplicar una reunión natural, no se encuentren relacionados.
El objeto P3, realiza una operación condicional que separa en otra tabla, los datos que contienen coeficientes con valores nulos.
El objeto C1, agrega una columna calculada, de volumen de madera, a partir de los datos dasométricos del arbolado y su respectiva ecuación de volumen.
El objeto C2, agrega una nueva columna calculada, de volumen de madera, aplicando la ecuación de volumen general para aquellos géneros arbóreos que no cuentan con una ecuación de volumen específica, para el Estado de México.
El objeto P4, separa la información del Estado de México de los otros Estados.
El objeto C3, agrega una nueva columna calculada, de volumen de madera, que utiliza la ecuación de volumen general para todos los estados.
El Objeto OR3 ordena por género los datos provenientes del objeto C1.
El objeto OR4 ordena por género los datos provenientes del objeto C2.
El objeto OR5 ordena por género los datos provenientes del objeto C3.
El objeto P5, realiza una operación de unión de los datos del Estado de México.
El objeto P6, realiza una operación de unión de los datos del Estado de México con los datos del resto de los estados.
El objeto P7, realiza una operación de agregación de datos agrupándolos por sitio.
El objeto BD3, extra la información de la vegetación encontrada en cada sitio para incorporarla como información adicional a la información agregada con el objeto anterior. Cabe mencionar que en cada sitio sólo se registra un tipo de vegetación de acuerdo a un catálogo incorporado que contiene la información de todos los tipos de vegetación del país. La instrucción SQL correspondiente se muestra en el Cuadro 17. Cuadro 17. Comando SQL para extraer la información de vegetación en sitios de muestreo.
select IdSitio,TipoVegetacionLev from TblSitio
157
El objeto OR6, ordena por sitio los datos agrupados por el objeto P7.
El objeto OR7 ordena por sitio los datos extraídos mediante el objeto BD3.
El objeto P8, lleva a cabo una reunión natural, de la información agregada por sitios con su respectiva vegetación.
El objeto DW, corresponde al almacenamiento de la información en la fuente de destino (Data Warehouse); la tarea se realiza mediante una conexión implícita en este objeto con la tabla de hechos presente en el Data Warehouse de análisis. En la Figura 55 se puede observar la relación existente entre la información procesada mediante las diferentes tareas del objeto del paquete y su destino en el Data Warehouse.
Figura 55: Relación entre los campos de los datos procesados y la tabla de hechos. Elaboración: Propia para la investigación.
158
11.2.2 Integración de la dimensión Vegetación
El proceso para extraer la información desde la base de datos del inventario y cargarla en la tabla de dimensión Vegetación en el DW, se realiza mediante los objetos etiquetados como ESTRATOS y DIMENSION VEGETACION, localizados en la parte inferior izquierda del proceso ETL en la Figura 56.
Figura 56: Objetos relacionados en el proceso ETL para la dimensión Vegetación. Elaboración: Propia para la investigación.
En la Figura 56, el objeto etiquetado como ESTRATOS representa una conexión hacia la base de datos del inventario el cual emplea un comando SQL para extraer la información requerida por la dimensión Vegetación. El comando SQL utilizado se puede analizar en el Cuadro 18.
Cuadro 18. Comando SQL usado para extraer los datos para la dimensión “Vegetación”.
SELECT DISTINCT CatTipoVegetacionInegiGeneral.IdCveTipoVegetacion, CatTipoVegetacionInegiGeneral.NomComunidad,
CatTipoVegetacionInegiGeneral.CveTipoVegetacion
FROM ((TblArboladoBosqueSelva INNER JOIN TblSitio ON TblArboladoBosqueSelva.IdSitio = TblSitio.IdSitio) INNER JOIN CatTipoVegetacionInegiGeneral ON TblSitio.TipoVegetacionLev = CatTipoVegetacionInegiGeneral.IdCveTipoVegetacion)
WHERE (TblArboladoBosqueSelva.Condicion IN (1, 2)) AND TblArboladoBosqueSelva.DiametroNormal >= 7.5) AND
(TblArboladoBosqueSelva.DiametroNormal <= 132.5) AND (TblArboladoBosqueSelva.AlturaTotal >= 5) AND
(TblArboladoBosqueSelva.AlturaTotal <= 47.5) AND
(TblSitio.TipoVegetacionLev IN (SELECT IdCveTipoVegetacion FROM CatTipoVegetacionInegiGeneral WHERE (CveTipoVegetacion IN
('Bosque', 'Selva'))))
159
11.2.3 Integración de la dimensión Región
El proceso para extraer la información desde la base de datos del inventario y cargarla en la tabla de dimensión Región en el DW, se realiza mediante los objetos etiquetados como Regionalización y Dimensión Región (Figura 57), ubicado debajo del proceso ETL de la dimensión Vegetación.
Figura 57: Objetos relacionados en el proceso ETL para la dimensión Región. Elaboración: Propia para la investigación.
En el llenado de la tabla de dimensión Región se garantiza que la cardinalidad uno a muchos, de ésta tabla hacia a la tabla de hechos se mantenga; para cumplir con dicha restricción sólo se selecciona la información no repetida sobre los sitios para cada registro en la tabla de hechos. El comando SQL implícito en el objeto Regionalización se puede observar en el Cuadro 19.
Cuadro 19. Comando SQL usado para extraer los datos para la dimensión “Región”. SELECT DISTINCT TblSitio.IdSitio, TblConglomerado.IdConglomerado, CatMunicipio.CveMunicipio, CatMunicipio.NomMunicipio,
CatEstado.CveEstado, CatEstado.NomEstado
FROM TblArboladoBosqueSelva, CatTipoVegetacionInegiGeneral, TblSitio, TblConglomerado, CatEstado, CatMunicipio
WHERE Condicion in (1,2) AND (DiametroNormal >= 7.5) AND (DiametroNormal <= 132.5) AND
(AlturaTotal >= 5) AND (AlturaTotal <= 47.5) AND (TipoVegetacionLev in (select IdCveTipoVegetacion from CatTipoVegetacionInegiGeneral where CveTipoVegetacion IN ('Bosque','Selva'))) ANDTblSitio.IdSitio = TblArboladoBosqueSelva.IdSitio AND TipoVegetacionLev =
IdCveTipoVegetacion AND TblSitio.IdConglomerado = TblConglomerado.IdConglomerado AND
Estado = CatEstado.CveEstado AND Municipio = CatMunicipio.CveMunicipio
160
En la Figura 58 se observa la relación entre los campos generados con la instrucción SQL del Cuadro 20.
Figura 58: Relación entre los campos de la fuente de origen y la tabla de dimensión “Región”.
Elaboración: Propia para la investigación.
Una vez descrito el funcionamiento de los objetos involucrados en la tarea de carga de datos, en la siguiente sección se detalla, paso a paso, la ejecución de las tareas.
11.2.4 Ejecución de la tarea de carga de datos
La tara de integración se puede llevar a cabo mediante la aplicación, desarrollada en la presente tesis, haciendo clic en el botón Cargar Datos. (Figura 57).
Figura 59: Carga de datos mediante aplicación. Elaboración: Propia para la investigación.
161
En SSIS, es necesario abrir el proyecto Integración desde Access que es del tipo Microsoft Visual Studio Solution, que se encuentra en la dirección C:\proyecto\Integracion desde Access. Para poner en marcha la tarea sólo hay que hacer clic en la pestaña generar (Build en la Figura 60, si la instancia de SQL instalada está en inglés) y seleccionar Generar Integración desde Access.
Figura 60: Ejecución del paquete de integración usando SSIS. Elaboración: Propia para la investigación.
En la pestaña Flujo de datos se puede observar, durante la ejecución, que alguno de éstos procesos se ejecutan en paralelo. En la pestaña progreso se puede ver las estadísticas de la ejecución que incluye el tiempo trascurrido y la cantidad de datos procesados.