Documente Academic
Documente Profesional
Documente Cultură
parte 1
2
Si una compañía europea quiere analizar aquellos
países y gamas de productos en los que las ventas
vayan excepcionalmente bien para premiar a las
mejores oficinas comerciales.
4
Diagrama OLTP que alimenta al DWH anterior para la parte de ventas (solo se usa una
parte de las tablas) de facturación de productos, actividades de empleados e información
de publicidad
5
Diferencias OLTP- OLAP
- Diseñar el DWH
- Cargar el DWH
- Mantener el DWH
6
Los datos en un DWH se organizan en torno
a los hechos, con sus atributos y medidas que
pueden verse en mayor o menor detalle según
sus dimensiones.
Por ejemplo una cadena de supermercados
puede tener como hechos básicos las ventas.
7
Las ventas en DWH tienen
medidas: importe, cantidad, número de clientes
y se puede detallar o agregar en varias, responden
generalmente a la pregunta “cuánto”
dimensiones: fecha (día, mes, año, bimestre…) de
la venta, producto de la venta, lugar de la venta, etc.
responden al “cuándo”,“qué”,“dónde”, etc.
8
Resultado del análisis de
datos es el Modelo ROLAP
elaborado de preferencia
para su fácil mantenimiento
en herramienta CASE
El modelo ha de permitir, de una manera sencilla,
obtener información sobre hechos a diferentes
niveles de agregación. Por ejemplo, el hecho
10
En el modelo ROLAP Ventas Las flechas se pueden leer
como “se agrega en”.
11
La forma que tienen estos conjuntos de hechos y sus
dimensiones hace que se llamen:
• “estrella simple”
cuando no hay caminos alternativos
en las dimensiones, con una tabla estrella
cada una.
ó
• “estrella jerárquica” o “copo de nieve” cuando hay varias tablas
copo de nieve en cada dimensión, o incluso caminos alternativos
en las dimensiones.
12
Cuando el número de dimensiones no excede
de tres, podemos representar cada combinación
de niveles de agregación como un cubo. El cubo
está formado por casillas, cada casilla representa
un hecho.
13
Si hay más de 3 dimensiones, se habla de un
hipercubo.
Esta estructura permite:
agregación (varias casillas se fusionan en
casillas más grandes) nivel máximo de
agregación en dimensión tiempo en el
ejemplo es un año
14
Por tanto el almacén de datos (data warehouse) estará formado
por muchas estrellas formando una “constelación”.
Se pueden compartir dimensiones, noten que la dimensión
tiempo por ser información histórica siempre aparece
15
Los sistemas de almacenes de bases de datos
pueden implementarse utilizando 4 tipos de
esquemas físicos:
ROLAP (Relational OLAP): se construye sobre
una base de datos relacional, es menos costoso
MOLAP (Multidimensional OLAP): se construye
sobre estructuras basadas en matrices
multidimensionales, es más eficiente
16
Ejemplos de sistemas ROLAP
Microstrategy (Con interfaz completamente
multidimensional mientras que por debajo existe
un sistema relacional),
Informix Metacube u
oracle Discoverer
Pentaho Data Integration, Pentaho workbench
ODI, OBI
Business Intelligence Sqlserver
Ejemplos de sistemas MOLAP
Oracle Express o
Hyperion Enterprise.
17
18
2 Tabla de hechos (fact tables): se crea una única tabla de
hechos por datamart. En esta tabla se incluye un atributo para
cada dimensión, que será FK a cada una de las tablas copo de
nieve de mayor detalle, además, todos estos atributos forman
la clave primaria. Adicionalmente, pueden existir atributos que
representen información de cada hecho,
denominados medidas.
19
3 Tablas estrella (star tables): para cada dimensión se crea una
tabla que tiene un atributo para cada nivel de agregación
diferente en la dimensión. Cada uno de estos atributos es una
FK que hace referencia a tablas copo de nieve. Todos los
atributos PK de las tablas estrella forman la PK de la tabla de
hechos.
20
Esquema Estrella SIMPLE
21
22
Estas tablas Estrella, representan “pre-
concatenaciones”, o “pre-joins” entre las tablas
copo de nieve.
Evitan concatenaciones costosas cuando se
realizan operaciones roll-up.
23
Además de la estructura anterior, los sistemas
ROLAP se pueden acompañar de:
24
Existe también sistemas
DOLAP (Desktop, por su lugar en donde se
almacena)
y
HOLAP (Híbrido = ROLAP para diseñar + MOLAP
para almacenar)
25
Inconvenientes en MOLAP
Se necesitan sistemas específicos. Esto ocasiona un
costo mayor de software
27
Extensiones del modelo entidad relación (1999)
o de modelos orientados a objetos (2001).
https://www.service-architecture.com/articles/web-
services/common_warehouse_meta-
model_cwm.html
http://www.omg.org/spec/CWM/
28
4 pasos principales para ANALIZAR
un almacén de datos (para cada
datamart)
1. Elegir “dominio” de la organización sobre el que
se deseen realizar informes complejos.
Ejemplos, datamart sobre
pedidos,
ventas,
facturación, etc.
29
2 Decidir el hecho central y el “gránulo” (nivel de
detalle) máximo que se va a necesitar sobre él.
30
3. Identificar las dimensiones que caracterizan el
“dominio” y su jerarquía de agregación, así como los
atributos básicos de cada nivel. Incluir atributos
descriptivos imprescindibleS para ayudar en la
visualización.
31
4. Determinar y refinar las medidas y atributos
necesarios para los hechos y las dimensiones.
Generalmente las medidas de los hechos son
valores numéricos agregables
(totales,
cuentas,
medias…).
33
DISEÑO FÍSICO DE DATA WAREHOUSE
(PARTE 2)
34
Los DataWarehouses se acercan o exceden el
terabyte son llamadas VLDBs (Very Large Databases).
35
1 Particionamiento
Las tablas deben particionarse y ubicarse en varios
discos, donde las tablas de hechos pueden llegar a
ocupar varios cientos de gigabytes.
El particionamiento permite que los datos de una
tabla lógica se repartan en múltiples conjuntos de
datos físicos.
36
Este particionamiento se aplica generalmente
en una columna de la tabla de hechos, que
comúnmente es la columna que indica la fecha,
no puede ser una columna derivada ni
contener valores nulos.
37
Desde el punto de vista lógico, aparecerán
como si estuvieran juntos aunque se
encuentren separados físicamente.
Si dividimos una tabla grande en múltiples
particiones más pequeñas, mejoraremos:
• el rendimiento de las operaciones de
mantenimiento,
• copias de seguridad,
• recuperaciones,
• transacciones y
• consultas.
38
Una tabla puede ser particionada en hasta 64.000 particiones
separadas.
Se recomiendan cuando:
•La tabla tiene un tamaño superior a 2 GB.
•Tablas que mantienen históricos.
39
1) particionamiento por rangos.
Create table EMPLEADO (
Empno Number(10) primary key,
Name varchar2(40),
Deptno number(2),
Salary number(7,2),
Birth_date date,
Soc_sec_num varchar2(9),
State_code char(2),
Constraint fk_deptno foreign key (deptno) references dept(deptno)
)
partition by range (deptno)
(partition PART1 values less than (11)
tablespace PART1_TS,
partition PART2 values less than (21)
tablespace PART2_TS,
partition PART3 values less than (31)
tablespace PART3_TS,
partition PART4 values less than (MAXVALUE)
tablespace PART4_TS)
40
Consultas directas a las particiones.
Ejemplo:
Select *
From EMPLEADO partition (PART2)
Where Deptno between 11 and 20;
41
Indexación de particiones.
Create index EMPLEADO_DEPTNO
On EMPLEADO(deptno)
Local
(partition PART1
tablespace PART1_NDX_TS,
partition PART2
tablespace PART2_NDX_TS,
partition PART3
tablespace PART3_NDX_TS,
partition PART4
tablespace PART4_NDX_TS)
local le indica a Oracle que cree un índice
diferente para cada partición de la tabla
EMPLEADO
42
También se pueden crear índices “globales”.
43
Gestión de particiones
Alter table EMPLEADO
Modify partition PART1
Storage (next 1M pctincrease 0);
44
3) Partición Hash.
Esta opción es útil cuando:
• Se desconoce la correspondencia en función de los rangos y
Es difícil balancearla manualmente, por tanto el RDBMS lo realiza
automático.
• No elegir una columna con un alto grado de valores duplicados
ya que esto puede generar particiones no balanceadas
45
4) Partición compuesta o Particionamiento por Composición.
Cada partición se particiona a su vez es sub-particiones. Las particiones más
generales se hacen con el método de rango. Cada partición se sub-particiona con el
método de hash o por lista.
CREATE TABLE sales_composite
(salesman_id NUMBER(5),
sales_name VARCHAR2(30),
sales_amount NUMBER(10),
sales_date DATE)
PARTITION BY RANGE(sales_date)
SUBPARTITION BY HASH(salesman_id)
SUBPARTITION TEMPLATE(
SUBPARTITION sp1 TABLESPACE data1,
SUBPARTITION sp2 TABLESPACE data2,
SUBPARTITION sp3 TABLESPACE data3,
SUBPARTITION sp4 TABLESPACE data4)
(PARTITION sales_jan2000 VALUES THAN
(TO_DATE(’01/02/2000’,’DD/MM/YYYY’)
PARTITION sales_feb2000 VALUES THAN
(TO_DATE(’01/03/2000’,’DD/MM/YYYY’
PARTITION sales_mar2000 VALUES THAN
(TO_DATE(’01/04/2000’,’DD/MM/YYYY’
PARTITION sales_apr2000 VALUES THAN 46
2 Clustering
Esta técnica es importante permite en el mismo segmento incluir
varias tablas que frecuentemente se utilizan juntas
Ejemplo de Cluster Índice
1) Cree un cluster.
CREATE CLUSTER scott.ord_clu
(ord_no NUMBER (3))
SIZE 200 TABLESPACE DATA01
STORAGE (INITIAL 5M NEXT 5M
PCTINCREASE 0);
2) Cree un índice cluster.
CREATE INDEX scott.ord_clu_idx
ON CLUSTER scott.ord_clu
TABLESPACE INDX01
STORAGE (INITIAL 1M NEXT 1M
PCTINCREASE 0);
47
3) Cree tablas en el cluster.
CREATE TABLE scott.ord
(ord_no NUMBER (3) CONSTRAINT ord_pk PRIMARY KEY,
Ord_dt DATE,
cust_cd VARCHAR2 (3))
CLUSTER scott.ord_clu (ord_no);
48
Ejemplo de Cluster HASH
1) Cree un Cluster
CREATE CLUSTER scott.off_clu
(country VARCHAR2 (2),
postcode VARCHAR2 (8))
SIZE 500 HASHKEYS 1000
TABLESPACE DATA01
STORAGE (INITIAL 5M NEXT 5M
PCTINCREASE 0);
50
3 Indexado
La mayoría de los DBMSs proveen varios algoritmos,
entre ellos B-tree, Hash, llave Invertida y Binario.
51
4 TABLAS DE INDICE ORGANIZADO
Permite almacenar una tabla e índice en el mismo
segmento, no se almacena el rowid, se ejercita
mayor control sobre el ordenamiento de los
datos.
52
La tabla de índice organizado puede ser utilizada
como cualquier otra tabla.
53
Ejemplo de tablas de índice organizado
CREATE TABLE scott.sales
( office_code NUMBER(3),
qtr_end DATE,
revenue NUMBER (10,2),
review VARCHAR2 (1000),
CONSTRAINT sales_pk PRIMARY KEY (office_code, qtr_end))
ORGANIZATION INDEX TABLESPACE data01
PCTTHRESHOLD 20 Almacena los datos además de PK, default
50
INCLUDING (REVIEW) se trasladan a data02 después de
revenue, si excede umbral disponible en el bloque por pctused
OVERFLOW TABLESPACE data02; mejora la capacidad de E/S
54
ETL-ELT
(PARTE 3,
este tema tiene otras
diapositivas en una ppt
independiente)
55
Carga y mantenimiento del almacén de datos
Los procesos de carga de un almacén de
datos son procesos de “migración”.
Extraction,
Transformation,
Load
56
Dicho sistema no se compra, ni se descarga de
internet, sino que: la construcción del ETL es
responsabilidad del equipo de desarrollo.
57
El sistema ETL se encarga de:
58
c) Creación de PK’s nuevas en tabla de hechos
59
h) Planificación de la carga y mantenimiento: Define el
orden de la carga, para evitar
violar restricciones de integridad,
saturar la BD transaccional,
paralizar el almacén de datos.
i) Indización: Crear índices sobre las claves y atributos
que se consideren relevantes, en ocasiones se
eliminan, para que las cargas de datos sean más
rápidas y después se crean nuevamente.
j) Pruebas de calidad:
Definir métricas de calidad de datos (conciliación de
cifras origen-destino),
tener un responsable de calidad (conteos para
comprobar migraciones)
60
En ocasiones los sistemas ETL se basan en un almacenamiento
intermedio (ODS), esto puede parecer abusar de recursos, pero es
extremadamente útil para realizar la limpieza y transformación, sin
que afecte la obtención de reportes, ni interrumpa los OLTP.
Consiste en lo siguiente.
1)extraer y cargar los datos de manera “BULK” directamente a una Base
de Datos o tablas especialmente creadas para los datos de paso
(conocido también como staging).
62
2) teniendo la información en staging proseguimos a elaborar el proceso de
transformación de los datos que posteriormente pasaran a nuestra base de
datos del datawarehouse.
63
3) con los datos transformados en nuestros procesos propios de la base de
datos, seguimos al proceso de inserción a nuestro datawarehouse, limpiando
nuestros datos de paso si es conveniente.
64
Ventajas de E-LT sobre ETL
Velocidad de proceso y transformación, la principal ventaja de E-LT es la forma en
que trabaja cada herramienta implicada, en el caso de ETL las herramientas de
transformación evalúan registro por registro y en E-LT la transformación se
hace en la base de datos que evalúa los registros en lotes.
65
•Otra ventaja de E-LT es que una base de datos está preparada para la
optimización de recursos ya sea de disco, memoria y proceso, lo cual
hace que el rendimiento del proceso sea administrado por la
configuración de la base de datos,
•En los casos de las herramientas de ETL, no toman ventaja de la
configuración del disco (RAID) ni de la distribución de la memoria y
procesador, esto debido a que hacen transformaciones temporales y
en muchos casos redundantes.
66
Comentarios de uso de Almacenes
de Datos
Parte 4
67
USO DE INFORMACIÓN
EN UN DATA MART O
DATA WAREHOUSE
Explotación (Uso) de un almacén de datos (operadores
de consulta OLAP)
69
Por ejemplo
“obtener el total de ventas”.
En un entorno geográfico,
dicha consulta se podría realizar eligiendo 2 categorías
“refrescos y congelados” y
eligiendo el nivel trimestre para la dimensión tiempo.
Además, se elegiría la medida que se desea (importe).
70
71
Supongamos que queremos las ventas de refrescos en las ciudades
(Valencia y León)
Los operadores, permiten modificar la consulta, son navegadores de
informes. Para este ejemplo podemos utilizar el operador drill,
que permite más detalle.
pivot
74
El operador pivot permite cambiar algunas filas por
columnas. Esta operación, aparentemente sencilla, no
está generalizada en muchos sistemas de bases de
datos. Este cambio permite que valores de columnas
pasen a ser nombre de nuevas columnas y viceversa.
76
El operador Slice & dice permite escoger parte de la información
mostrada, no por agregación sino por selección (Where).
77
Ejemplo Oracle --PIVOT
--Crea la tabla emp select to_char(fecha,'yyyy') anio, job, count(*)
from emp
create table emp (
group by to_char(fecha,'yyyy'),job
emp_id number(10) constraint emp_pk primary key,
order by anio,job;
job varchar2(20) not null, --
fecha date select anio,ANALYST,CLERK,MANAGER,SALESMAN
); from (select to_char(fecha,'yyyy') anio, job from emp)
---Llena la tabla pivot (count(*) for job in ('ANALYST' as
ANALYST,'CLERK' as CLERK,'MANAGER' as
insert into emp values MANAGER,'SALESMAN' as SALESMAN))
(1,'CLERK',to_date('01/01/1980','DD/MM/YYYY'));
order by anio;
insert into emp
values(2,'ANALYST',to_date('01/01/1981','DD/MM/YYY
URLs PARA MAS INFORMACIÒN
Y'));
http://www.oracle.com/technetwork/es/articles/sql/ca
insert into emp racteristicas-database11g-2108415-esa.html
values(3,'MANAGER',to_date('01/01/1981','DD/MM/YY
YY'));
https://technet.microsoft.com/es-
insert into emp es/library/ms177410(v=sql.105).aspx
values(4,'CLERK',to_date('01/01/1981','DD/MM/YYYY'))
;
insert into emp
values(5,'SALESMAN',to_date('01/01/1981','DD/MM/YY
YY'));
insert into emp
values(6,'ANALYST',to_date('01/01/1987','DD/MM/YYY
Y'));
Los almácenes de datos pueden agilizar muchos procesos diferentes de
análisis.
79
Según el carácter de estos usuarios se les puede
catalogar en 2 grandes grupos:
81
Tampoco es cierto que un almacén de datos
sólo tenga sentido si tenemos una base de
datos transaccional inicial.
82
En gran medida, un almacén de datos también
facilita:
la limpieza y
la transformación de datos
(en especial para generar “vistas minables” en
tiempo real).
83