El documento describe los conceptos fundamentales de Business Intelligence (BI). BI se enfoca en crear inteligencia a partir de los datos operativos de un negocio para facilitar la toma de decisiones. Una solución de BI integra y analiza datos de múltiples fuentes para generar informes y análisis que ayuden a los usuarios a comprender el negocio.
3. Qué persigue BI?
• Crear inteligencia a partir de los datos operativos de un negocio
“the technology used for collecting and analyzing business information”
Para toma de decisiones
Que responda a las necesidades de tiempo para poder ejecutar acciones:
Tendiente a llegar cada vez más al tiempo real
Ojo: una solución de BI está inclinada en su mayoría hacia los datos:
• Subject Oriented: alrededor de los temas de importancia para la organización / no a sus procesos
• Integrated: integrada consistentemente en el valor de sus variables
• Non-Volatile: que los datos no se van a perder cada vez que van creciendo
• Time-Variant:
• Tecnologías Relacionadas
ETL Tools
OLAP/Data Analysis Tools
Reporting Tools
Databases
3
4. Actores de una solución de BI
• Usuario Final
DSS (decision support system): quien toma decisiones [Excel-adictos]
[consume MDX]
• BI Analyst
Quien conoce los detalles de las ETL
• Solución de BI (facilidades para)
• DB (acceso a datos)
• ETL: Procesos de cargue
[Acorde al tipo de solución:Pequeña/Mediana/Grande ]
• One-Shot”: se realiza una sola vez el cargue; se eliminan los datos y se
vuelve a montar si se necesitan refrescar
• Incrementales; no se puede hacer un cargue borrando lo datos previos
• Data Cleaning:
• Limpieza y calidad de datos
• DW: Crear modelos multidimensionales con las siguientes caracteristicas
• Subject Oriented: entities or event relating to a specific subject
• Time-Variant: enable reporting of changes over time
• Non-Volatile: never overwrittern or deleted
• Integrated
• Análisis de datos
• Delivery (Reportes Operativos, Reportes Analiticos, Dashboards )
4
6. Componentes
ETL pipeline
DataSources: OLTP DB’s / Files
Mirrors (a veces si no se puede manipular el sist.origen)
Jobs
Staging Area
DataWarehouse/DataMarts
OLAP Cubes
Reports [MDX/SQL]
(OperationalDataStore: preparar computos)
Client Tools (Delivery)
6
7. A dimensional model (logical)
– Cubes & virtual cubes
– Shared & private dimensions
– Calculated measures in cube and in query language
– Parent-child hierarchies
… mapped onto a star/snowflake schema (physical)
– Fact table
– Dimension tables
– Measures, hierarchies
– Joined by foreign key relationships
7
8. Elementos
Fact:
• Algo que ha pasado y/o puede ser medido
• Algo que el usuario va a agregar de múltiples formas para generar un reporte
• Relevant Business Events
• Ej. Venta de un producto, Total de ventas por mes
• NOTA1: 1 hecho se relaciona con * dimensiones
• a traves de (1) surrogate keys: id para hacer join ,
• (2) natural keys:
• Ej: el serial de un producto que se vende
• Ej: texto en forma de fecha “YYYYMMDD” para identificar un dato en
la dimensión tiempo
• NOTA2: no relacionar hechos entre sí directamente por razones funcionales
• NOTA3: tiende a crecer mucho / un update dado que faltó algo la estructura puede
ser muy costoso
• Bridge Tables
• Tablas de hecho sin atributos [transitorias]
• TransactionFactTable: guarda eventos y medidas que pueden ser después analizados
• SnapshotTable: en determinado rango de tiempo guardar los estados de una
medida, para: {(1) guardar resultados agregados para mejor performance en una
consulta (2) comparar la evolución de una situación a través del tiempo}
Dimension
• Ej: lista de productos, clientes, Espacio de tiempo
• Relevant Business Entities
• NOTA1: puede tener atributos
• NOTA2: tiende a crecer poco
• Junk Dimension: Recoge los atributos que no pertenecen a una dimensión en
8
9. particular (atributos que asumen rangos de valores reducidos)
• Degenerate Dimensions: datos que no son funcionalmente
significativos pero que no se pueden borrar (ej. Id_transaccion)
• SlowlyChange Dimension (SCD): donde a través del tiempo pueden
cambiar los valores (Ej: la dirección de un cliente) (manejar solo
dejando el valor anterior, o duplicando un registro y adicionando un
campo con fecha de validez del registro)
Measure
Schemas
– Star: FactTable directly related with dimensions
– Snowflake: Es un Starschema con tablas intermedias
Navegar
- Drill-Down: “desagregar”: [descomponer un agregado en sus constituyentes]
- Ej1: habiendo determinado las ventas por pais, romper el valor de
ventas por cada ciudad
- Ej2: habiendo determinado las ventas por ciudad, romper el valor de
ventas por cada tienda específica
- Roll-Up: “agregar” alrededor de una dimensión
- Ej1: habiendo determinado las ventas por ciudad, se quiere saber el
valor total de ventas por pais.
Data Mining
- Algoritmos: Clustering/asociacion/clasificación/predicción
8
13. Structural Updates:
cuando hubo datos que se dejaron de almacenar; se hace el alter a la factTable,
El alter a la estructura puede ser sencillo
el update puede ser costoso
Data Updates:
cuando un dato del DW quedó mal:
Revisar si existen atributos que han sido calculados acorde al dato que quedó mal,
Revisar si el dato pertenece a una SlowlyChangeDimension
A veces es menos costoso hacer el cargue “One-Shot”
12
14. Define lo que se llama “bus architecture”: diferentes datasources de relevancia en el negocio son entrelazados
para conformar dimensiones
Separar la db en 2 tipos de entidades
Dimension
Fact
Posible: de-normalizacion de dimensiones
13
16. Fase 1: levantar requisitos de informacion especificos
• Encontrar origenes de datos
• entender necesidades
• Preguntas multidimensionalidad
• Data a encontrar con base en los indicadores a obtener
• Definir modelo multidimensional/datamarts
• Selección de herramientas de trabajo con BI (alinadas a arquitectura empresarial)
Fase2:
• Extraer los datos de fuentes de informacion, para encontrar respuestas a la fase anterior
• Buscar posibles puntos donde se necesite DataCleaning
• Definicion de estrategia de ETL (one-shot/incremental)
Fase3:
• Integrar y cargar en crudo los datos en un formato utilizable para analisis (nueva
db/existente/consolidacion)
Fase4:
• Trabajar sobre los datos extraidos mediante las herramienas creando graficos, reportes, para llegar a las
respuestas
• Definicion de perspectivas de cubos según los actores del negocio, definicion de reportes
Fase5:
• Se entregan las herramientas a los usuarios finales que les permiten explorar los datos de forma intuitiva
15
17. 1. BusinessCase Assestment
• Propuesta, Costo/Beneficio:ROI, Motivaciones
• Análisis del Negocio:
• Necesidades de Información
• Ejemplo: FINANCE & SALES department
• How much revenue do we generate by region, month, and movie category?
• Which movie categories generate the highest revenue and is this constant
over time?
• Ejemplo: LOGISTICS & PURCHASING
• How do our distributors score in terms of product assortment, price, and
delivery performance?
• Tipos de Fuentes de datos (Operacionales, Privados, Externos)
• Riesgos
• Tecnologia / capacidades del grupo de trabajo / Integración de componentes
2. Enterprise Infrastructure Evaluation
• Repositories, DW Infrastructure [Tomar ventajas de nuevas tecnologías]
• Estandares (naming_standards), metodologías, testing
3. Project Planning
• Alcance
• Recursos
4. Project Requirements Definition
• Req.Generales del negocio
• Req.Calidad Datos
• Req.Funcionales
• (OJO): no es una lista de pseudo-reportes
• Problema de negocio a resolver [QUÉ,QUIÉN,CÓMO,CUÁNDO,DÓNDE]
• BusinessEvents (Facts)
5. Data Analysis
• DataQuality
• DW Model (Enterprise logical datamodel)
16
18. 6. Application Protptyping
• Selección de pequeña funcionalidad para probar la arquitectura planteada
7. Metadata repository
• Informacion tecnica que se debe guardar adicionalmente al negocio
8. DB Design
• Que permite almacenar la data de forma agregada
• No todos los reportes son estrategicos y no todos son multidimensionales
9. ETL Design
• Cargues de fuentes de datos, Mapeos, Homologaciones
10. Metadata Repository design
• Diseño del DW
11. Desarrollo del ETL
No necesariamente un ETL es siempre la mejor opcion
12. Desarrollo de la aplicación
• Incluir todos los puntos que implica el delivery de datos al usuario final
• Incluye la construccion de lso cubos especificos
• Se puede desarrollar en paralelo con el desarrollo de los ETL
13. DataMining
• Incluri herramientas de analisis de datos para poder analizar la informacion reprotada, y
no solo series de reportes
• Algoritmos: Clustering/asociacion/clasificación/predicción
14. MetadataRepository Development
15. Implementtion
• Se refiere a poner en marcha el sistema en el cliente, con lso procesos de entrenamiento,
y ejecucion de migraciones a que haya lugar
16. ReleaseEvaluation
• Beneficiarse de las lecciones aprendidas.
16
19. Pentaho Data Integration
ETL
Jobs
Process Mgmt
PDS: Design Studio
Pentaho Analysis
PSW (Schema Workbench)
Consumo de cubo en Pentaho Console
Weka (Data Mining)
Metadata
PME: Metadata Layer
17
20. DEMO
1. subir pentaho
[pentaho-ba-server: service] tomcat7
[pentaho-solution-repo: service] mysql o postgresql
[pentaho-ba-server: app]
[pentaho-ent-console: app]
mostrar consola, mostrar ejemplos cubos
crear carpeta APP_ROOT/01_Cubes [en el pentaho-BA_server]
2. datos app opertiva
[subir oracle-listener]
[subir oracle-db]
[conectarse como sys]
(2.a) crear espacio para dummy en db
create user phsample1 identified by phsample1 default tablespace users
temporary tablespace temp;
grant connect, resource to phsample1;
grant dba to phsample1;
grant create table to phsample1;
grant create view to phsample1;
grant create trigger to phsample1;
grant create sequence to phsample1;
grant create procedure to phsample1;
(2.b) crear workspace
aplicacion: ADMIN/Adm$123@PHSAMPLE1_WS
manager: http://localhost:4004/apex/apex_admin user: ADMIN/Adm$345
(2.c) montar app de ejemplo
DEMO_CUSTOMERS
DEMO_ORDERS
DEMO_ORDER_ITEMS
DEMO_PRODUCT_INFO
18
21. DEMO_STATES
3. Modelar ROLAP para DW e implementarlo
(3.a) crear espacio para dw
create user phsample2 identified by phsample2 default
tablespace users temporary tablespace temp;
grant connect, resource to phsample2;
grant dba to phsample2;
(3.b) permisos para consumir data de phsample1
grant select any table to phsample2;
(3.c) emular esquema del dw + permisos (y exportacion de datos desde el
origen)
sinonimos de acceso al datasource transaccional
vista para emular fact_table
vistas para emular dimensions
(4) Realizar un cargue
(4.a) emular la exportacion de un sistema a otro
consulta origen (esuqema phsample2)
-- used to create table Stage_Orders_Fact too
Select DEMO_ORDER_ITEMS.ORDER_ID,
DEMO_ORDER_ITEMS.ORDER_ITEM_ID,
DEMO_ORDER_ITEMS.UNIT_PRICE,
DEMO_ORDER_ITEMS.QUANTITY,
DEMO_ORDERS.ORDER_TIMESTAMP,
DEMO_USERS.USER_NAME,
DEMO_CUSTOMERS.CUST_FIRST_NAME,
DEMO_CUSTOMERS.CUST_LAST_NAME,
DEMO_CUSTOMERS.CUST_CITY,
DEMO_STATES.STATE_NAME,
DEMO_CUSTOMERS.PHONE_NUMBER1,
DEMO_CUSTOMERS.PHONE_NUMBER2,
DEMO_CUSTOMERS.CUST_EMAIL,
DEMO_PRODUCT_INFO.PRODUCT_NAME,
DEMO_PRODUCT_INFO.CATEGORY,
DEMO_PRODUCT_INFO.LIST_PRICE,
DEMO_PRODUCT_INFO.PRODUCT_AVAIL,
DEMO_PRODUCT_INFO.PRODUCT_DESCRIPTION
From DEMO_ORDER_ITEMS,
DEMO_ORDERS,
DEMO_PRODUCT_INFO,
DEMO_CUSTOMERS,
DEMO_STATES,
DEMO_USERS
Where DEMO_ORDER_ITEMS.ORDER_ID =
DEMO_ORDERS.ORDER_ID
And DEMO_ORDERS.CUSTOMER_ID =
18
22. DEMO_CUSTOMERS.CUSTOMER_ID
And DEMO_CUSTOMERS.CUST_STATE = DEMO_STATES.ST
And DEMO_ORDER_ITEMS.PRODUCT_ID =
DEMO_PRODUCT_INFO.PRODUCT_ID
And DEMO_ORDERS.USER_ID = DEMO_USERS.USER_ID;
*** ejecutar el plsqldeveloper, exportar a csv, importar a excel (separador
";")
(4.b) importar datos con PDI (pentaho data integration - kettle)
* copiar driver de oracle a pentahodesign-toolsdata-
integrationlibextJDBC
* iniciar PDI
* abrir el etl (mostrar datasource, listado de componentes)
* importar datos del excel a la tabla Stage_OrderFact
(5) Hacer el cubo
* copiar driver de oracle a pentahodesign-toolsschema-workbenchdrivers
(ojo: al parecer schema workbench trabaja con jdk 1.5)
* iniciar PSW
* definicion conexion
connection-name: phsample2_LocalConnection
connection-host (ip): 127.0.0.1
connection-database-name (sid): ORCL1
connection-port: 1521
connection-user: phsample2
connection-pwd: phsample2
connection-type: native
OPTIONS: (no probado):
param: FILTER_SCHEMA_LIST phsample2
(http://jira.pentaho.com/browse/PSW-97)
* crear/abrir modelo [DemoSchema.DemoOrdersCube]
* bajar ba-server
* copiar drivers a biserver: pentahoserverbiserver-eetomcatlib
* copiar drivers a ent-console: pentahoserverenterprise-consolejdbc
* crear jndi datasource [phsample2_LocalConnection] hacia el DW-ROLAP en
pentaho (en el appserver usado)
archivo: pentahoserverbiserver-
eetomcatconfCatalinalocalhostpentaho.xml
<!-- #region 01 add jndi datasource -->
<Resource
name="jdbc/phsample2_LocalConnection"
username="phsample2"
password="phsample2"
driverClassName="oracle.jdbc.driver.OracleDriver"
18
23. url="jdbc:oracle:thin:@127.0.0.1:1521:ORCL1"
validationQuery="select dummy from dual"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
maxActive="20"
maxIdle="5"
maxWait="10000"
/>
<!-- #endregion 01 -->
* publicar modelo
server-url: http://localhost:8080/pentaho/
server-publish-password: admin (editar-en: pentahoserverbiserver-
eepentaho-solutionssystempublisher_config.xml, default=password)
pentaho-credentials-user: joe
pentaho-credentials-password: password
publish location: APP_ROOT/0000_Configuracion/01_Cubos
Pentaho or jndi_datasource: phsample2_LocalConnection
DATOS DE INSTALACION
user: admin/password (password)
user: joe/password
user: sussy/password
Selections/Settings:
- PostgreSQL server port: 5432
- HSQL server port: 9001
- BA Server (Tomcat) startup port: 8080
- BA Server shutdown port: 8012
- Enterprise Console port: 8088
- Data Integration Server port: 9080
- Monet Database Port: 50006
- Embedded Database Port: 9092
(version previa instalaba un mysql, default port 3306)
- Installer.REPORT_DESIGN_TOOLS
- Report Designer
- Metadata Editor
- Design Studio
18
30. Se usa la herramienta Pentaho Schema Workbench para realizar esta definición.
Adicional al demo, Probar consulta MDX:
En la consola de pentaho, Usar File/New AnalysysView para mostrar la consola anterior
Seleccionar los productos y extraer la consulta MDX asociada, muy similar a:
select NON EMPTY {[Measures].[UnitPrice_Measure]} ON COLUMNS,
NON EMPTY
Crossjoin(Hierarchize(Union({[Product_Dimension.Product_Hierarchy].[All_Products]},
[Product_Dimension.Product_Hierarchy].[All_Products].Children)),
{([Customer_Dimension.Customer_Hierarchy].[All_Customer],
[Time_Dimension.Time_Hierarchy].[All Time_Dimension.Time_Hierarchys],
[Location_Dimension.Location_Hierarchy].[All Location_Dimension.Location_Hierarchys])}) ON
ROWS
from [DemoOrdersCube]
Luego abrir Pentaho Schema Workbench para ejecutar la consulta MDX asociada (File/New/Mdx
Query).
24
31. Se usa el pentaho ba/biServer pare permitir modelar las perspectivas a nivel de usuario final.
Es un plugin que se conecta a la consola general y que se llama AnalyzerReport. Anteriormente existía una
herramienta basada en jpivot llamada “Analysys View (Legacy)” que para la fecha se piensa retirar de la
herramienta.
Mostrar la forma en la cual se crean usuarios con EnterpriseConsole
25
32. Crear un reporte en la consola biserver
(File/New/InteractiveReport)
Seleccionar el datasource “Orders”.
Con éste datasource, hacer un reporte que muestre (id orden, direccion 1, ciudad y precio)
Hacer un filtro donde la ciudad sea Boston
26