• No se han encontrado resultados

CAPITULO II: MARCO TEÓRICO

2.3. MARCO CONCEPTUAL

2.3.1. Extracción, Transformación y Carga en Data Warehouse

2.3.1.2. Extracción de Almacenamiento de Datos

Puede extraer datos de dos maneras: A.Extracción Utilizando archivos de datos B. Extracción Mediante Operaciones Distribuidas

A. Extracción Utilización de archivos de datos

Cuando el sistema de origen es una base de datos Oracle, las siguientes alternativas están disponibles para la extracción de datos en archivos:

 Extraer en archivos planos mediante SQL * Plus

 Extraer en archivos planos Usando OCI o Pro Programas * C

La extracción en archivos planos mediante SQL * Plus

La técnica más básica para la extracción de datos es ejecutar una consulta SQL en SQL * Plus y dirigir la salida de la consulta en un archivo. Por ejemplo, la siguiente secuencia de comandos SQL podría ejecutar:

Ejemplo 2.1: Extracción de Archivos planos mediante SQL * PLUS SET echo off SET pagesize 0 SPOOL archivodesalida.txt

SELECT distinct t1.campo1 ||'|'|| t2. campo2

FROM table1 t1, table2 t2 WHERE t1.table2_id = t2.table2_id AND t1.campox= ‘condición’;

SPOOL off

El formato exacto del archivo de salida se puede especificar mediante el sistema SQL * Plus. Esta técnica de extracción ofrece la ventaja de almacenar el resultado en un formato personalizado.

La extracción en archivos planos usando OCI o programas Pro*C

Los programas OCI (u otros programas que utilizan interfaces de llamada de Oracle, tales como programas de Pro * C), también se pueden utilizar para extraer los datos. Estas técnicas suelen proporcionar un rendimiento mejorado sobre el enfoque de SQL * Plus, a pesar de que también requieren programación adicional. Al igual que el enfoque de SQL * Plus, un programa de la OCI puede extraer los resultados de cualquier consulta SQL. Al usar OCI o SQL * Plus para la extracción, se necesita información adicional, además de los datos en sí. Como mínimo, se necesita información sobre las columnas extraídas. También es útil conocer el formato de extracción, lo que podría ser el separador entre columnas distintas.

Exportando usando la utilidad Export

La utilidad de exportación permite tablas (incluidos los datos) para ser exportados a archivos de exportación de base de datos Oracle. A diferencia del SQL * Plus y enfoques OCI, que describen la extracción de los resultados de una instrucción SQL, el Export proporciona un mecanismo para la extracción de objetos de base de datos. Por lo tanto, la exportación se diferencia de los enfoques anteriores en varios aspectos importantes:

Los archivos de exportación contienen metadatos, así como datos. Un archivo de exportación contiene no sólo los datos en bruto de una tabla, sino también información sobre cómo volver a crear la tabla, incluyendo potencialmente cualquier índice, restricciones, subsidios y otros atributos asociados a esa tabla.

 Un único archivo de exportación puede contener un subconjunto de un solo objeto, muchos objetos de base de datos, o incluso un esquema entero.

 La exportación no se puede utilizar directamente para exportar los resultados de una consulta SQL compleja.

 El exportar sólo se puede utilizar para extraer subconjuntos de objetos de base distintos.

 La salida de la utilidad de exportación debe ser procesada usando la utilidad de importación.

Oracle proporciona las utilidades originales de exportación e importación para dar compatibilidad y la infraestructura de exportación/importación de

La extracción en archivos usando tablas externas

Además de la utilidad de exportación, puede utilizar tablas externas para extraer los resultados de cualquier operación SELECT.

El siguiente ejemplo se extrae el resultado de una operación de unión en paralelo en los cuatro archivos especificados. El tipo de tabla externa sólo se permite para la extracción de datos es el ORACLE_DATAPUMP. Ejemplo 2.2: Creación de Tablas Externas

CREATE DIRECTORY extraccion_dir AS 'C:\ibk\'; DROP TABLE extract_cust;

CREATE TABLE extract_cust ORGANIZATION EXTERNAL

(TYPE ORACLE_DATAPUMP DEFAULT DIRECTORY extraccion_dir ACCESS PARAMETERS

(NOBADFILE NOLOGFILE)

LOCATION ('extract_cust1.exp', 'extract_cust2.exp', 'extract_cust3.exp', 'extract_cust4.exp'))

PARALLEL 4 REJECT LIMIT UNLIMITED AS

SELECT c.*, co.country_name, co.country_subregion, co.country_region FROM customers c, countries co where co.country_id=c.country_id;

B. Extracción Mediante Operaciones Distribuidas

El uso de la tecnología-consulta distribuida, una base de datos de Oracle puede consultar directamente tablas ubicadas en varios sistemas de origen diferentes, como otra base de datos Oracle o un sistema heredado relacionado con la tecnología de Gateway de Oracle. En concreto, un almacén de datos o base de datos provisional pueden acceder directamente

a las tablas y datos ubicados en un sistema de fuente conectada. Los Gateways son otra forma de tecnología-consulta distribuida.

Los Gateways (puertas de enlace) permiten a una base de datos de Oracle (tales como un almacén de datos) acceder a las tablas de base de datos almacenados en remoto, bases de datos que no son de Oracle. Este es el método más simple para mover datos entre dos bases de datos Oracle, ya que combina la extracción y transformación en un solo paso, y requiere la programación mínima. Sin embargo, esto no siempre es factible.

Supongamos que usted quería extraer una lista de nombres de los empleados con los nombres de departamento de una base de datos fuente y almacenar estos datos en el almacén de datos. Usando una conexión de Red de Oracle y la tecnología-consulta distribuida, esto se puede lograr mediante una única instrucción SQL:

Ejemplo 2.3: Creación de Tablas mediante subconsultas

CREATE TABLE country_city AS SELECT distinct t1.country_name, t2.cust_city

FROM countries@source_db t1, customers@source_db t2 WHERE t1.country_id = t2.country_id

AND t1.country_name='United States of America';

Esta sentencia crea una tabla local en una tabla de datos, country_city, y lo llena con los datos de los países y las tablas de los clientes en el sistema de origen.

Esta técnica es ideal para mover pequeños volúmenes de datos. Sin embargo, los datos se transportan desde el sistema de origen al almacén de datos a través de una única conexión de red de Oracle. Por lo tanto, la

datos, técnicas de extracción de datos basado en archivos y de transporte son a menudo más escalable y por lo tanto más apropiado.