Data Warehouse

O conceito de Data Warehouse generaliza e consolida dados em um espaço multidimensional. Papel importante no fornecimento de arquiteturas e ferramentas para que executivos possam entender e utilizar seus dados para tomar decisões estratégicas. Sistemas de armazenamento de dados são ferramentas valiosas diante da rápida evolução dos processos de produção de informação. Empresas aplicam investimentos na área de armazenamento de dados com o objetivo de reter clientes, aprendendo mais sobre suas necessidades. Genericamente falando, data warehouse refere-se a um repositório de dados que é mantido separadamente das bases de dados operacionais de uma organização. De acordo com a caracterização de \citep{Inmon:2002:BDW:560407}, um data warehouse é uma coleção de dados orientado a assunto, integrado, “time variant” e não-volátil de apoio à tomada de decisões.

  • Orientado a assunto: organizado em torno de grandes assuntos como: cliente, fornecedor, produto e vendas. Em vez de se concentrar na operação e processamento de transações, um data warehouse se concentra na modelagem e análise dos dados para tomadas de decisão. Normalmente fornece uma visão simples e concisa de determinados temas, excluindo dados que não são úteis.

  • Integrado: construído por meio da integração de múltiplas ferramentas heterogêneas: banco de dados relacionais, arquivos simples, transações online, entre outras.

  • Time variant: toda estrutura de chave em um data warehouse contém, implícita ou explicitamente, um elemento de tempo.

  • Não volátil: armazenamento separado de dados transformados. Por conta dessa separação, um data warehouse não requer processamento de transações, recuperação e mecanismos de controle de concorrência. Requer apenas duas operações de acesso aos dados: carregamento inicial de dados e acesso.

Em resumo, um data warehouse é um repositório de dados semanticamente consistente, armazenando informações necessárias para a tomada de decisões importantes em uma empresa. Muitas vezes visto também como uma arquitetura, construído por meio da integração de dados de múltiplas plataformas heterogêneas para suportar consultas estruturadas e/ou ad hoc, relatórios analíticos e tomada de decisão.

Organizações tipicamente coletam diversos tipos de dados, mantendo base enormes, provenientes de múltiplas fontes de informação. O desafio está na integração desses dados, fornecendo acesso rápido e eficiente, independente da quantidade de dimensões.

Bancos de dados tradicionais utilizam uma abordagem orientada a consulta, com complexos processos de filtragem de informações para a integração de dados heterogêneos. Data warehouse oferece uma alternativa interessante para essa abordagem tradicional. Em vez de utilizar uma abordagem orientada a consulta, data warehouse utiliza uma abordagem orientada a atualização, em que a informação de fontes múltiplas e heterogêneas é integrada com antecedência e gravada em um armazém (“warehouse”), para análise e consulta direta. Ao contrário de bancos de dados de processamento de transições online (bancos de dados tradicionais - relacionais), data warehouses não possuem a informação mais recente. No entanto, um data warehouse traz alto desempenho para sistemas de bancos de dados heterogêneos porque os dados são copiados, processados, integrados, anotados, resumidos e reestruturados dentro de um repositório de dados semântico. Além disso, data warehouses podem armazenar e integrar informações históricas e suportar complexas consultas multidimensionais.

Os sistemas de bancos de dados operacionais online realizam as tarefas de transações online e processamento de consultas. Esses sistemas são chamados de Online Transaction Processing (OLTP) e cobrem a maior parte das operações do dia a dia como compras, estoque, produção, operações bancárias, registros, etc. A construção de um data warehouse requer integração, consolidação e limpeza dos dados, necessitando de um conjunto de tecnologias de apoio a decisão para a sua utilização. Isso permite que “trabalhadores do conhecimento” utilizem do data warehouse para obter uma visão geral dos dados, de forma rápida e conveniente, tomando decisões com base nos dados dispostos.

Sistemas de data warehouse por outro lado, atuam no papel de análise de dados e tomada de decisões. Esses sistemas podem organizar e apresentar os dados em vários formatos, afim de acomodar necessidades de diferentes usuários. Tais sistemas são conhecidos como Online Analytical Processing (OLAP).

Data warehouses apresentam uma arquitetura dividida em três camadas: inferior, intermediária e superior. A camada inferior representa um servidor de banco de dados, que na maioria das vezes é um sistema de banco de dados relacional. Ferramentas de back-end e utilitários são utilizados para isnerir dados na camada inferior de bancos de dados operacionais ou de outras fontes externas. Essas ferramentas realizam a extração, limpeza e transformação dos dados, sendo responsáveis pela atualização do data warehouse. A camada intermediária é um servidor OLAP, tipicamente implementado utilizando: (1) um model OLAP relacional (ROLAP), ou seja, um SGBD relacional extendido que mapeia operações em dados multidimensionais para operações relacionais padrão; (2) um modelo OLAP multidimensional (MOLAP), que representa um servidor de propósito específico, implementando dados multidimensionais e operações diretamente. A camada superior é uma camada cliente (front-end), que contém ferramentas de consulta, relatórios, ferramentas de análise e mineração de dados.

Do ponto de vista de arquitetura, existem três tipos de data warehouse, o primeiro é apresentado como Data warehouse empresarial, responsável pela integração de dados de toda a empresa, geralmente apartir de um ou mais sistemas operacionais ou fontes externas de informação. O segundo tipo é apresentado como Data mart, que contém um subconjunto de dados (que tendem a ser resumidos) de valor para um grupo específico de usuários. Data marts são classificados como independentes ou dependentes, de acordo com a origem de sua fonte de dados. Data marts independentes são originados de dados capturados a partir de um ou mais sistemas operacionais, ou provedores de informação externa. Data marts dependentes são obtidos diretamente a partir de um Data warehouse empresarial. O terceiro tipo é denominado de Virtual warehouse, que se faz como um conjunto de “views” sobre um banco de dados operacional. Para o processamento eficiente de consultas, apenas algumas das possíveis “views” são materializadas. Normalmente esse tipo de data warehouse é fácil de se contruir mas requer exceciva capacidade por parte servidores de bancos de dados operacionais.

Processo de desenvolvimento