2.9 Ambiente do Armazém de dados
2.9.1 Processo de ETL
Muitas das questões que envolvem o apoio à decisão estão relacionadas com as tarefas de obtenção e preparação inicial dos dados. Os dados devem ser extraídos (de diversas fontes), limpos, transformados e consolidados, carregados no banco de dados de apoio à decisão, e posteriormente renovados periodicamente (DATE, 2003, p. 600).
O processo de extração de dados provenientes de diferentes fontes e consolidação para o armazém de dados é comumente chamado de ETL (Extract,
Transform and Load), que representa a Extração, Transformação e Carregamento ouCarga (sigla em português ETC) (KIMBALL, 2004; LANE; POTINENI, 2014).
Figura 7: Arquitetura de um armazém de dados Fonte: Silberschatz, Korth e Sudarshan (2012, p. 561)
Conforme Inmon (2005, p. 111), o software ETL automatiza o processo de conversão, a reformatação, e integração de múltiplas fontes de dados operacionais legados.
Para Kimball e Caserta (2004, pg. XXI-28), um sistema de ETL devidamente concebido extrai dados a partir dos sistemas de origem, reforça a qualidade e padrões de consistência dos dados, ajusta dados de modo que fontes distintas possam ser usados unificadamente e, finalmente, disponibiliza dados em um formato para consulta para que os desenvolvedores possam construir aplicações e usuários finais possam tomar decisões. Os autores citam como características específicas do sistema de ETL:
•
Remover erros e corrigir dados faltantes;
•
Ajustar dados de várias fontes para serem usado em conjunto;
•
Estruturar e fornecer dados para serem utilizados por ferramentas de usuário final;
•
Agregar valor aos dados nas etapas de limpeza e ajuste;
•
Proteger e documentar a linhagem de dados.
O sistema ETL é a base do armazém de dados (KIMBALL; CASERTA, 2004 pg. XXI). Seu principal propósito é alimentá-lo para que sejam acessados diretamente por ferramentas de apoio à decisão (KIMBALL; CASERTA, 2004, p. 20).
A metodologia e as tarefas de ETL têm se tornado muito populares, e já não são necessariamente exclusividades de ambientes de armazéns de dados (LANE;
POTINENI, 2014).
Existem quatro etapas de trabalho temporário (Staging Steps) encontrados em quase todos os armazéns de dados, como mostrado na Figura 8 (KIMBALL;
CASERTA, 2004, p. 17).
Os detalhes referentes as etapas do ETL são abordadas a seguir.
2.9.1.1 Extração
A extração é o processo de captura de dados de fontes de dados diversas e bancos de dados operacionais (DATE, 2003, p. 600).
Corresponde a coleta de dados dos sistemas de origem extraindo-os e transferindo-os para o ambiente do armazém de dados (KIMBALL, 2004).
É a operação de extração de dados de um sistema de fonte para posterior utilização num ambiente de armazenamento de dados. Este é o primeiro passo do processo de ETL. Após a extração, estes dados podem ser transformados e carregados no armazém de dados. (LANE; POTINENI, 2014)
Os dados brutos provenientes das fontes de dados são geralmente escritos diretamente em disco com alguma reestruturação mínima, antes que alguma transformação de conteúdo significativa ocorra. Os dados de fontes de dados estruturados (como bancos de dados de Sistema de Informações Gerenciais, ou conjuntos de dados XML) são frequentemente escritos em arquivos simples ou tabelas relacionais nesta etapa. Isto permite que a extração original possa ser tão
Figura 8: Etapas de trabalho temporário de um armazém de dados Fonte: Kimball e Caserta (2004, p. 18)
simples e tão rápida quanto possível e permite uma maior flexibilidade para reiniciar a extração, se houver interrupção. Inicialmente dados coletados podem então ser acessados quantas vezes forem necessário para suportar os passos seguintes. Em alguns casos, os dados coletados inicialmente são descartados após o passo de limpeza ser completada, e em outros, os dados são mantidos como uma cópia de segurança de longo prazo. Os dados coletados inicialmente também podem ser guardados por, pelo menos, um ciclo de captura de modo que as diferenças entre as extrações sucessivas possam ser avaliadas (KIMBALL; CASERTA, 2004, p. 18).
Projetar e criar o processo de extração é muitas vezes uma das tarefas mais demoradas do processo de ETL e, na verdade, em todo o processo de armazenamento de dados. Os sistemas de origem pode ser muito complexo e mal documentadas, e, assim, determinar quais dados precisam ser extraído pode ser difícil. Os dados têm de ser extraído, normalmente, não apenas uma vez, mas várias vezes, de forma periódica para fornecer todos os dados alterados para o armazém de dados e mantê-lo atualizado. Além disso, o sistema de origem, tipicamente não pode ser modificado, ou pode ser ajustado o seu desempenho ou de disponibilidade, para acomodar as necessidades do processo de extração de armazenamento de dados. (LANE; POTINENI, 2014)
Métodos de extração físicos
O processo de extração tende a ser muito intenso em termos de E/S e essas
"extrações físicas" podem causar problemas para o processamento subsequente, pois pode haver perda de informações (como informações sobre relacionamentos) representadas de algum modo físico (DATE, 2003, p. 601).
Dependendo do método de extração lógico escolhido e as capacidades e restrições do lado da fonte, os dados extraídos podem ser fisicamente extraídos por dois mecanismos: extração on-line e extração off-line. Os dados podem ser extraídos on-line a partir do sistema de fonte ou a partir de uma estrutura de
off-line.Tal estrutura off-line pode já existir ou ele pode ser gerado por uma rotina de extração (LANE; POTINENI, 2014).
Extração on-line
Os dados são extraídos diretamente do próprio sistema de fonte. O processo de extração pode conectar diretamente ao sistema de origem para acessar as tabelas de origem próprias ou para um sistema intermediário que armazena os dados de uma forma pré-configurada {por exemplo, registros de instantâneo ou tabelas mudar}. O sistema intermédio não é necessariamente fisicamente diferente do sistema de fonte (LANE; POTINENI, 2014).
Com extrações on-line, é preciso considerar se as transações distribuídas estão usando objetos de origem originais ou objetos de origem preparados (LANE;
POTINENI, 2014).
Extração off-line
Os dados não são extraídos diretamente do sistema de origem, mas é alocado explicitamente fora do sistema de fonte original. Os dados já tem uma estrutura existente (por exemplo, registros de refazimento (redo logs), registros de arquivo ou espaços de tabela transportáveis) ou é criada por uma rotina de extração.
(LANE; POTINENI, 2014)
2.9.1.2 Limpeza
Fontes de dados raramente controlam a qualidade dos dados de forma adequada. Como consequência, os dados exigem limpeza (cleansing) e processamento dos dados antes de poderem ser introduzidos no banco de dados de apoio à decisão, como mostrado na Figura 9 (DATE, 2003, p. 601; (LANE;
POTINENI, 2014).
As operações de limpeza típica incluem (DATE, 2003, p. 601):
•
preenchimento de valores omitidos,
•
correção de erros de entrada de dados e digitação,
•
estabelecimento de abreviações e formatos padronizados,
•
substituição de sinônimos por identificadores padrão, entre outros.
Dados reconhecidos como errados e que não podem ser limpos são rejeitados. As informações obtidas nesta etapa podem ser usadas para melhorar a qualidade dos dados com o tempo (DATE, 2003, p. 601).
Na maioria dos casos, o nível de qualidade de dados aceitável para os sistemas de origem é diferente da qualidade exigida pelo armazém de dados. O processamento de qualidade de dados pode envolver várias etapas, que incluem (KIMBALL, 2004, p. 18):
•
a verificação de valores válidos: por exemplo, se o valor do CEP corresponde ao intervalo de valores válidos;
•
garantir a consistência entre os valores: exemplo, se o CEP e a cidade correspondem;
•
remoção de duplicações: exemplo, se o mesmo cliente aparecer duas vezes com atributos um pouco diferentes;
•
verificação se as regras e procedimentos complexos de negócios foram aplicadas: exemplo, se o cliente “Platinum” têm associado o status de crédito estendido.
Transformações de limpeza de dados podem envolver até mesmo a intervenção humana e o exercício de julgamento. Os resultados da etapa de limpeza de dados muitas vezes são salvas de forma semipermanente porque as transformações requeridas são difíceis e irreversíveis. Mesmo que os dados limpos não possam ser fisicamente alimentados de volta aos sistemas que os originaram, as exceções de dados deveriam ser relatados para construção de um caso de melhorias no sistema de origem. Estes problemas de dados também são importantes para a comunidade de usuários finais de inteligência de negócios (BI).
(KIMBALL; CASERTA, 2004, p. 18)
A qualidade e a consistência de dados são preocupações muito importantes no armazém de dados. Apesar dos dados passarem pela etapa de limpeza durante a aquisição, o controle de qualidade dos dados continua sendo uma questão significativa para o administrador do banco de dados (ELMASRI; NAVATHE, 2005, p.
655).
2.9.1.3 Transformação e consolidação
Mesmo após a etapa de limpeza, possivelmente os dados ainda não estarão no formato que sistema de apoio à decisão exige e necessitarão ser transformados de forma adequada. Erros não identificados e corrigidos na etapa de limpeza podem ser encontrados nesta etapa. Da mesma forma, dados incorretos são rejeitados e as informações obtidas nesta etapa podem ser usada para melhorar a qualidade da origem de dados (DATE, 2003, p. 601).
Na prática, o resultado é um conjunto de arquivos para cada tabela identificada no esquema físico e a transformação dos dados envolverá a divisão e/ou combinação de registros de origem (DATE, 2003, p. 601).
A transformação é particularmente importante no processo chamado consolidação, que é quando várias origens de dado precisam ser mescladas (merdelim). Isso envolve que nos dados de origem, quaisquer relacionamentos implícitos precisam se tornar explícitos (por meio da introdução de valores de dados explícitos). Bem como problema de "sincronização de tempo", onde datas e horas associadas com significado comercial dos dados precisam ser mantidas e correlacionadas entre as origens (DATE, 2003, p. 601).
O ajuste de dados é necessário sempre que duas ou mais fontes de dados são mescladas no armazém de dados. Fontes de dados distintas não podem ser consultadas em conjunto, a menos que algum ou todos os rótulos de texto nessas fontes sejam idênticos e que medidas numéricas similares sejam matematicamente racionalizadas para que diferenças e relações entre estas medidas façam sentido. O ajuste de dados é um passo significativo que é mais do que uma simples limpeza de dados. O ajuste de dados requer uma definição ampla de uso domínio e medidas padronizadas. É nesta etapa que realiza-se os devidos ajustes (Limpeza, Ajustes e Consolidação) podendo melhorar a qualidade dos dados e consolidar dados de duas ou mais fontes (KIMBALL, 2004).
Transformação de dados concentra-se em atividades que proporcionam contexto organizacional entre elementos de dados, entidades e áreas tema.
Contexto organizacional envolve referência cruzada, referência e gerenciamento de
dados mestres, e relacionamentos completos e corretos. Transformação de dados é um componente essencial para permitir integrar dados de várias fontes (MOSLEY et al., 2009, p. 231).
Cabe a etapa de transformação algumas tarefas (SILBERSCHATZ, KORTH e SUDARSHAN, 2012, p. 561):
•
limpeza de dados
•
eliminação de duplicidade (mesclar-excluir ou merge-purge)
•
agrupamento de registros (householding)
•
transformação de dados: mudança de unidades de medida, conversão de dados, junção de dados
2.9.1.4 Carga
Carga ou Transporte corresponde a operação de movimentação de dados de um sistema para outro sistema, sendo muitas vezes uma das partes mais simples do processo de ETL. Em um ambiente de armazém de dados, uma das exigências mais comuns para o transporte refere-se a movimentação de dados de um sistema de origem para um banco de dados de preparo ou de um banco de dados de armazém de dados. O transporte em armazéns de dados é, e pode ser integrado com outras partes do processo sendo o transporte usando arquivos simples o método mais comum. O uso de arquivos simples é muitas vezes a maneira mais simples de trocar dados entre sistemas heterogêneos com transformações mínimas, sendo muitas vezes, o mecanismo mais eficiente e mais fácil de gerir para transferência de dados.
(LANE; POTINENI, 2014)
Para Date (2003, p. 601) as operações de carga incluem:
•
mover os dados transformados e consolidados para o banco de dados de apoio à decisão;
•
verificar a consistência dos dados (verificação de integridade);
•