Anda di halaman 1dari 62

DATA WAREHOUSING COM PENTAHO E MYSQL

Dimas Cassimiro dimascnf@lsd.ufcg.edu.br

Quem sou eu?

Por que estou aqui?

ESTE ASSUNTO IMPORTANTE?

INTRODUZINDO ALGUNS CONCEITOS

DATA WAREHOUSING
Data warehousing is combining data from multiple and usually varied sources into one comprehensive and easily manipulated database.

DATA WAREHOUSING
Fontes de Dados Legad o Data Warehous e OD S Data Marts Repositrio de Metadados rea de Prepara o rea de Armazenament o Ferramenta s de Acesso

Extern a

Operaciona l

DATA WAREHOUSE
A data warehouse is a copy of transaction data specifically structured for querying and reporting.

DATA WAREHOUSE
Bando de Dados para dar suporte a ambientes OLAP (online analytical processing) Mais poderoso que bds orientados a transao

DATA WAREHOUSE POR QUE UTILIZAR?


H usurios que necessitam de informaes mas querem distncia da complexidade dos dados

DATA WAREHOUSE
Usurios de um DW no precisam ser tomadores de decises!

DATA WAREHOUSE ASPECTOS PRTICOS


So otimizados para recuperao de dados

DATA WAREHOUSE ASPECTOS PRTICOS

A carga incremental

DATA WAREHOUSE ASPECTOS PRTICOS


Utiliza modelagem MultiDimensional

ASPECTOS PRTICOS

EXEMPLO
Criando um pequeno Data Mart para uma loja de Informtica

METODOLOGIA

ESQUEMA RELACIONAL

ESQUEMA RELACIONAL

NECESSIDADES GERENCIAIS
Que meses foram mais lucrativos para a empresa no ano de 2010? Qual a categoria de produto mais lucrativa para a empresa no ano 2008? Qual o percentual de clientes que realizaram compras no ano 2000, que possuem limite de crdito maior que 300 e no residem nos estados unidos?

TECNOLOGIAS OPEN SOURCE


MySQL Community Server

http://dev.mysql.com/downloads/

TECNOLOGIAS OPEN SOURCE


Pentaho Community

http://community.pentaho.com/

RESOLVENDO POR PASSOS


Importando o Banco de Dados Basicamente duas possibilidades:
Dump
imp <usuario>/<senha>@<sid> file=<caminho_arquivo> . dmp full=yes

Inserts sql
@caminhodoarquivo\arquivo.sql

ENTENDER O ESQUEMA

ENTENDER O ESQUEMA

ENTENDER O ESQUEMA
Lembrar: Problemas Ocorrem

Motivos?

ENTENDER O ESQUEMA
Identificar problemas nos dados

ENTENDER O ESQUEMA
Identificar problemas nos dados
Definir como solucionar
Limpeza Transformao

CRIAO DO ESQUEMA MULTIDIMENSIONAL

CRIAO DO ESQUEMA MULTIDIMENSIONAL

CRIAO DO ESQUEMA MULTIDIMENSIONAL

CRIAO DO ESQUEMA MULTIDIMENSIONAL


SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL'; CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ; USE `mydb` ;

CRIAO DO ESQUEMA MULTIDIMENSIONAL


CREATE TABLE IF NOT EXISTS `mydb`.`dim_time` ( `id_time` INT NOT NULL , `day` INT NULL , `month` INT NULL , `year` INT NULL , PRIMARY KEY (`id_time`) ) ENGINE = InnoDB;

CREATE TABLE IF NOT EXISTS `mydb`.`dim_produto` ( `id_produto` INT NOT NULL , `id_produto_original` INT NULL , `product_name` VARCHAR(50) NULL , `min_price` DECIMAL(8,2) NULL , `warranty` VARCHAR(45) NULL , PRIMARY KEY (`id_produto`) ) ENGINE = InnoDB;

CRIAO DO ESQUEMA MULTIDIMENSIONAL


CREATE TABLE IF NOT EXISTS `mydb`.`dim_order` ( `id_order` INT NOT NULL , `id_order_original` INT NULL , `order_mode` VARCHAR(15) NULL , `order_total` DECIMAL(10,2) NULL , PRIMARY KEY (`id_order`) ) ENGINE = InnoDB; CREATE TABLE IF NOT EXISTS `mydb`.`dim_category` ( `id_category` INT NOT NULL , `id_category_original` INT NULL , `category_name` VARCHAR(40) NULL , `category_description` VARCHAR(1000) NULL , PRIMARY KEY (`id_category`) ) ENGINE = InnoDB;

CRIAO DO ESQUEMA MULTIDIMENSIONAL


CREATE TABLE IF NOT EXISTS `mydb`.`fat_sale` ( `dim_time_id_time` INT NOT NULL , `dim_produto_id_produto` INT NOT NULL , `dim_order_id_order` INT NOT NULL , `dim_customer_customer_id` INT NOT NULL , `dim_category_id_category` INT NOT NULL , `unit_price` DECIMAL(8,2) NULL , `quantity` INT(11) NULL , PRIMARY KEY (`dim_time_id_time`, `dim_produto_id_produto`, `dim_order_id_order`, `dim_customer_customer_id`, `dim_category_id_category`) , INDEX `fk_fat_sale_dim_time` (`dim_time_id_time` ASC) , INDEX `fk_fat_sale_dim_produto1` (`dim_produto_id_produto` ASC) , INDEX `fk_fat_sale_dim_order1` (`dim_order_id_order` ASC) , INDEX `fk_fat_sale_dim_customer1` (`dim_customer_customer_id` ASC) , INDEX `fk_fat_sale_dim_category1` (`dim_category_id_category` ASC) , CONSTRAINT `fk_fat_sale_dim_time` FOREIGN KEY (`dim_time_id_time` ) REFERENCES `mydb`. `dim_time` (`id_time` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_fat_sale_dim_produto1` FOREIGN KEY (`dim_produto_id_produto` ) REFERENCES `mydb`.`dim_produto` (`id_produto` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_fat_sale_dim_order1` FOREIGN KEY (`dim_order_id_order` ) REFERENCES `mydb`.`dim_order` (`id_order` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_fat_sale_dim_customer1` FOREIGN KEY (`dim_customer_customer_id` ) REFERENCES `mydb`.`dim_customer` (`customer_id` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_fat_sale_dim_category1` FOREIGN KEY (`dim_category_id_category` ) REFERENCES `mydb`.`dim_category` (`id_category` ) ON DELETE NO ACTION ON UPDATE NO ACTION)ENGINE = InnoDB;

COMO IMPLEMENTAR O PROCESSO ETL?


Por que no sentar e fazer?

COMO IMPLEMENTAR O PROCESSO ETL?


Por que no sentar e fazer?

IMPLEMENTANDO O PROCESSO ETL


Pentaho Spoon

IMPLEMENTANDO O PROCESSO ETL

IMPLEMENTANDO O PROCESSO ETL

IMPLEMENTANDO O PROCESSO ETL

IMPLEMENTANDO O PROCESSO ETL

IMPLEMENTANDO O PROCESSO ETL

IMPLEMENTANDO O PROCESSO ETL

IMPLEMENTANDO O PROCESSO ETL

IMPLEMENTANDO O PROCESSO ETL

IMPLEMENTANDO O PROCESSO ETL

IMPLEMENTANDO O PROCESSO ETL

IMPLEMENTANDO O PROCESSO ETL

IMPLEMENTANDO O PROCESSO ETL

IMPLEMENTANDO O PROCESSO ETL

IMPLEMENTANDO O PROCESSO ETL

IMPLEMENTANDO O PROCESSO ETL

PROJETO DO PROCESSO ETL

IMPLEMENTAO DAS CONSULTAS


Que meses foram mais lucrativos para a empresa no ano de 2010? Select dt.month month, Sum(fs.unit_price*fs.quantity) as monthSum From sad.fat_sale fs, sad.dim_time dt where fs.id_time = dt.id_time and dt.year = 2010 Group by dt.month order by monthSum desc

IMPLEMENTAO DAS CONSULTAS


Qual a categoria de produto mais lucrativa para a empresa no ano 2008?
Select dc.id_category as category_type, category_name, sum(fs.unit_price*fs.quantity) as sumCategories From fat_sale fs, dim_category dc, dim_time dt where fs.id_category = dc.id_category and fs. id_time = dt.id_time and dt.year = 2008 Group by dc.id_category, gategory_name order by sumCategories desc

YES, CONSEGUI!

PROBLEMAS DE UM CENRIO REAL


Vrias Fontes de Dados Esquema mais complexo Vrios Problemas de Integridade

PROBLEMAS DE UM CENRIO REAL


Complexidade do processo de Data Warehousing
Analista de Negcios Administrador de Dados Administrador de Banco de Dados Desenvolvedor de DW Desenvolvedor de Relatrios OLAP Pessoal da prpria empresa

ONDE APRENDER MAIS?


Links http://forums.pentaho.com/ http://wiki.pentaho. com/display/COM/Community+Wiki+Home

ONDE APRENDER MAIS?


Livros KIMBALL, R., ROSS, M., THORNTHWAITE, W., MUNDY, J., BECKER, B. The Data Warehouse Lifecycle Toolkit. SILBERSCHATZ, A., KORTH, H., SUDARSHAN, S. Sistema de Banco de Dados. Kimball, Ralph; Margy Ross. The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling.

DVIDAS?
? ? ? ? ? ? ?

? ? ? ? ? ?

insert into duvidas values(?,?,?) insert into duvidas values(?,?,?) insert into duvidas values(?,?,?) insert into duvidas values(?,?,?) insert into duvidas values(?,?,?) insert into duvidas values(?,?,?) insert into duvidas values(?,?,?)

Anda mungkin juga menyukai