drupalcamp campinas 2016 - exportando dados denormalizados no drupal com foco em bi (gabriel machado...
TRANSCRIPT
Gabriel MachadoArquiteto de SoftwareCI&T
Exportando dados denormalizados no Drupal com foco em BI
Gabriel Machado Santos
Sumário
● Requisito/necessidade do cliente● Ferramentas ETL/BI no mercado● Porque não utilizamos as ferramentas do mercado?● Criação do modulo ETL● Funcionamento do modulo● Demostração do modulo exportando dados● Criando relatórios com foco em inteligência de negócio● Futuras melhorias para o modulo
Sumário
● Requisito/necessidade do cliente● Ferramentas ETL/BI no mercado● Porque não utilizamos as ferramentas do mercado?● Criação do modulo ETL● Funcionamento do modulo● Demostração do modulo exportando dados● Criando relatórios com foco em inteligência de negócio● Futuras melhorias para o modulo
Requisito do cliente
● Analisar os dados em tempo real● Possibilidade de criar relatórios flexíveis● Cruzar informações entre as entidades● Criar relatórios de média e alta complexidade
Requisito do cliente
● Ferramentas de relatório que o cliente suporta:○ Tableau○ Qlik○ AWS QuickSight
Porque não conectar o Tableau diretamente no MySQL/Drupal?
● Quantidade de tabelas no Drupal● Número de JOINs inviabiliza performance● Dificuldade para identificar dimensões e atributos no Tableau
Sumário
● Requisito/necessidade do cliente● Ferramentas ETL/BI no mercado● Porque não utilizamos as ferramentas do mercado?● Criação do modulo ETL● Funcionamento do modulo● Demostração do modulo exportando dados● Criando relatórios com foco em inteligência de negócio● Futuras melhorias para o modulo
Ferramentas ETL/BI no mercado
● Ferramentas:○ Oracle Warehouse Builder (OWB)○ SAP Data Services○ IBM Infosphere Information Server○ SQL Server Integration Services (SSIS)
Sumário
● Requisito/necessidade do cliente● Ferramentas ETL/BI no mercado● Porque não utilizamos as ferramentas do mercado?● Criação do modulo ETL● Funcionamento do modulo● Demostração do modulo exportando dados● Criando relatórios com foco em inteligência de negócio● Futuras melhorias para o modulo
Porque não utilizamos as ferramentas do mercado?
● Extremamente caras● Maioria não é Open Source● Profissionais especializados com alto custo● Custo para manter as aplicações
○ Licença● Servidores dedicados para manter a aplicação
Porque não utilizamos os modulos do Drupal?
● Node Export?
● Migrate?
Sumário
● Requisito/necessidade do cliente● Ferramentas ETL/BI no mercado● Porque não utilizamos as ferramentas do mercado?● Criação do modulo ETL● Funcionamento do modulo● Demostração do modulo exportando dados● Criando relatórios com foco em inteligência de negócio● Futuras melhorias para o modulo
Enfim, decidimos criar um modulo para ETL, por quê?
● Definir quais entidades devem ser exportadas● Quais campos de cada entidade● Alterar os dados antes de persistir● Manter os dados sincronizados (Drupal Queue API)
Sumário
● Requisito/necessidade do cliente● Ferramentas ETL/BI no mercado● Porque não utilizamos as ferramentas do mercado?● Criação do modulo ETL● Funcionamento do modulo● Demostração do modulo exportando dados● Criando relatórios com foco em inteligência de negócio● Futuras melhorias para o modulo
Funcionamento do modulo
● Definir quais entidades devem ser exportadas○ hook_etl_load_entities_info()
Funcionamento do modulo
● Quais campos por entidade devem ser exportados
Funcionamento do modulo
● Alterar os dados antes de persistir○ hook_etl_entity_load_data_alter(&$entity_data, $info)
Funcionamento do modulo
● Alterar os dados antes de persistir○ hook_etl_get_field_parser_value_alter(&$field_value,
$machine_name, $field)
Funcionamento do modulo
● Manter os dados atualizados○ Queue API
Sumário
● Requisito/necessidade do cliente● Ferramentas ETL/BI no mercado● Porque não utilizamos as ferramentas do mercado?● Criação do modulo ETL● Funcionamento do modulo● Demostração do modulo exportando dados● Criando relatórios com foco em inteligência de
negócio● Futuras melhorias para o modulo
Demostração
Sumário
● Requisito/necessidade do cliente● Ferramentas ETL/BI no mercado● Porque não utilizamos as ferramentas do mercado?● Criação do modulo ETL● Funcionamento do modulo● Demostração do modulo exportando dados● Criando relatórios com foco em inteligência de negócio● Futuras melhorias para o modulo
Futuras melhorias para o modulo
● Listar todas entidades na pagina de configuração● Refletir as alterações dos labels no destination database● Verificar a conexão com a base de dados● Criar tabelas automaticamente
Futuras melhorias para o modulo
● Lista de issues no Drupal.org
Futuras melhorias para o modulo
● Remover a restrição de caracteres do label
Obrigado
Dúvidas?
● drupal.org/u/gabrielmachadosantos● linkedin.com/in/gabrielmachadosantos● twitter.com/gmachadosantos