33
1

BusinessIntelligence Introduction

Embed Size (px)

DESCRIPTION

Introductory Slides About Business Intelligence concepts. It was made in 2012 for a 2 hour introduction of Business Intelligence, for a private seminar. --------------------------------------------- Diapositivas introductorias sobre conceptos de inteligencia de negocios. Elaboradas en 2012 para una introducción sobre BI en un seminario privado.

Citation preview

Page 1: BusinessIntelligence Introduction

1

Page 2: BusinessIntelligence Introduction

2

Page 3: BusinessIntelligence Introduction

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

Page 4: BusinessIntelligence Introduction

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

Page 5: BusinessIntelligence Introduction

5

Page 6: BusinessIntelligence Introduction

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

Page 7: BusinessIntelligence Introduction

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

Page 8: BusinessIntelligence Introduction

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

Page 9: BusinessIntelligence Introduction

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

Page 10: BusinessIntelligence Introduction

9

Page 11: BusinessIntelligence Introduction

10

Page 12: BusinessIntelligence Introduction

11

Page 13: BusinessIntelligence Introduction

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

Page 14: BusinessIntelligence Introduction

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

Page 15: BusinessIntelligence Introduction

14

Page 16: BusinessIntelligence Introduction

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

Page 17: BusinessIntelligence Introduction

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

Page 18: BusinessIntelligence Introduction

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

Page 19: BusinessIntelligence Introduction

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

Page 20: BusinessIntelligence Introduction

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

Page 21: BusinessIntelligence Introduction

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

Page 22: BusinessIntelligence Introduction

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 pentaho\design-tools\data-integration\libext\JDBC * 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 pentaho\design-tools\schema-workbench\drivers (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: pentaho\server\biserver-ee\tomcat\lib * copiar drivers a ent-console: pentaho\server\enterprise-console\jdbc * crear jndi datasource [phsample2_LocalConnection] hacia el DW-ROLAP en pentaho (en el appserver usado) archivo: pentaho\server\biserver-ee\tomcat\conf\Catalina\localhost\pentaho.xml

<!-- #region 01 add jndi datasource --> <Resource name="jdbc/phsample2_LocalConnection" username="phsample2" password="phsample2" driverClassName="oracle.jdbc.driver.OracleDriver"

18

Page 23: BusinessIntelligence Introduction

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: pentaho\server\biserver-ee\pentaho-solutions\system\publisher_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

Page 24: BusinessIntelligence Introduction

- Analysis Design Tools: - Schema Workbench - Aggregate Table Designer - Dashboard Designer - Data Integration (ETL) - Analyzer - Interactive Reporting - Mobile - Sample Content

18

Page 25: BusinessIntelligence Introduction

19

Page 26: BusinessIntelligence Introduction

20

Page 27: BusinessIntelligence Introduction

21

Page 28: BusinessIntelligence Introduction

22

Page 29: BusinessIntelligence Introduction

23

Page 30: BusinessIntelligence Introduction

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

Page 31: BusinessIntelligence Introduction

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

Page 32: BusinessIntelligence Introduction

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

Page 33: BusinessIntelligence Introduction

27