Artigo Modelo de Processo para Criação de BI em Banco de Dados

Propaganda
Modelo de Processo para Criação de BI em Banco de
Dados NoSQL Orientado a Colunas
Leandro Mendes Ferreira
Faculdade de Informática e Administração Paulista
Centro de Pós-Graduação – MBA em Business Intelligence
Rua Olimpíadas, 186 – São Paulo, SP – CEP: 04551-000
[email protected]
Abstract. Business Intelligence applications are widely employed in various
organizations, and main architecture's convergence point is the persistence
Data Warehouse into relational DBMS. This paper proposes an alternative
model for the process of creating a Business Intelligence application based on
Data Warehouse under NoSQL DBMS with the columns model. Processes and
tools are addressed in storage tier, data processing and presentation layer.
Resumo. As aplicações de Business Intelligence são amplamente difundidas
em diversas organizações, e tem como principal ponto de convergência de sua
arquitetura a persistência de dados do Data Warehouse em SGBDs
relacionais. Este artigo propõe um modelo alternativo para o processo de
criação de uma aplicação de Business Intelligence baseada em Data
Warehouse sob SGBD de modelo NoSQL de família de colunas. São abordados
processos e utilização de ferramentas da camada de armazenamento,
processamento de dados e da camada de apresentação.
1. Introdução
Atualmente, as organizações utilizam como parte essencial o Business Intelligence (BI)
para adquirir vantagens competitivas e possuir pleno conhecimento das informações
referentes ao total ecossistema da organização, utilizando as informações internas quanto
dados externos. Com a disponibilização exponencial dos dados, os Data Warehouses
(DWs) vem tornando-se base de dados imensas. Esta demanda traz sérios problemas para
uma plataforma baseada em banco de dados relacionais padrões, pois por natureza o
modelo relacional de dados e as arquiteturas desse tipo de Sistemas Gerenciadores de
Banco de Dados (SGBDs) não foram desenvolvidos para DWs destas grandezas.
Os SGBDs tradicionais possuem problemas de escalabilidade, principalmente em
nível horizontal. Para atender demandas cada vez maiores, vários fornecedores
disponibilizam appliances, que são as arquiteturas robustas que incluem hardware e
software personalizados. Entretanto, estas estruturas customizadas possuem custos
elevados de implantação, manutenção e atualização, não sendo acessível para maioria
das organizações, além de possuírem recursos e escalabilidade finita e limitada a um
parâmetro determinado de tamanho da base de dados.
Em contrapartida, uma alternativa que pode ser utilizada em ambientes de
software e hardware heterogêneos são os Banco de dados NoSQL, pois sua estrutura e
arquitetura foram desenvolvidas para trabalhar com base de dados de terabytes ou
superiores, com alta disponibilidade e escalabilidade horizontal irrestrita.
Diante dos contextos apresentados, o presente artigo apresenta a discussão da
arquitetura de BI, os SGBDs NoSQL além de sugerir um modelo de implementação de
sistema de BI em SGBD baseados em família de colunas. Na seção 2 descreve-se a
arquitetura tradicional de BI. A Seção 3 introduz o conceito de NoSQL e bancos de
dados em família de colunas, exemplificado pelo banco de dados Apache Cassandra. A
seção 4 apresenta a metodologia, a arquitetura de BI com a utilização de banco de dados
NoSQL colunar. Na seção 5 é apresentado um estudo de caso onde é aplicado o modelo
proposto. Por fim a seção 6 traz as considerações finais e perspectivas sobre a
arquitetura de BI sobre banco de dados NoSQL.
2. Modelo Tradicional de Construção de Aplicações de Business Intelligence
Segundo Kimball e Ross (2013) e Inmon (2005), as principais estruturas e processos
para a criação de um modelo tradicional de aplicações BI1 são ordenadas a partir de seis
pontos, que são apresentados em resumo na figura 1.
Figura 1 - Modelo tradicional de construção de aplicações B.I.
Os principais pontos definidos por Kimball e Ross (2013) e Inmon (2005), são:
Data Source (DSs): Refere-se às fontes de dados, que podem envolver arquivos
sequenciais, banco de dados estruturados relacionais de diversas naturezas, sistemas
transacionais e quaisquer outras fontes de dados que possam ser processadas e
incrementadas ao DWs/Data Mart.
Extract, Transformation and Load (ETL): Processo que envolve extrair os
dados dos DSs. Aplicar um processo de transformação que envolve limpeza, adequação
e agregação dos dados, para que estes possam ser convergidos em uma forma universal e
por fim o carregamento destes dados nos seu devido DWs.
1
São também processos do universo do BI os Data Miner (mineração de dados) e o Analytics/Data
Discovery (análises e descobrimento de dados) que não serão abordados neste artigo.
Staging Area \ Operational Data Store (ODS): É uma área temporária onde são
armazenados os dados antes da transformação. A área intermediária (staging area)
geralmente é utilizada para carga dos dados brutos dos DSs para posterior trabalho de
transformação, sendo acessadas por desenvolvedores e responsáveis de ETL. Já a ODS é
utilizadas como área de integração de dados pelos usuários e/ou sistemas transacionais.
Data Warehouse: O armazém central de dados, onde são disponibilizados de
forma corporativa. São bases de dados históricas não voláteis, ou seja, possuem dados
gravados fisicamente que não sofrem alterações e representam diferentes instantes de
tempo sobre a informação.São bases de dados que sofrem processamento massivo de
escrita não sendo utilizado para processamento de visualização de dados.
Data Mart (DMs): Pequenos armazéns de dados com recortes específicos para
atendimento das aplicações e áreas de negócio, com uma enésima parte da totalidade de
dados armazenados no DWs. Por definição é a camada de DM que sofre o
processamento das ferramentas de visualização de dados.
Ferramentas de Visualização de Dados: Responsáveis pela visualização dos
dados contidos nos DMs. São expoentes as ferramentas de On-line Analytical
Processing (OLAP) que apresentam os dados de forma multidimensional. Destacam-se
também ferramentas de relatórios e as de apresentação em Dash Board (painéis de
controle) que apresentam as informações em forma de gráficos, indicadores e tabelas.
O DW de forma clássica é persistido em bases de dados relacionais, orientada a
linhas. Em Kimball e Ross (2013) e Inmon (2005), observa-se que orientam a
modelagem da base de dados do DWs e os DMs, como Schema Star (esquema estrela ou
modelo estrela), apresentado graficamente na Figura 2. Este modelo é uma modelagem
de dados de forma desnormalizada. Os dados que possuem conteúdos que podem ser
mensurados e/ou calculados, ou seja, todos os dados que são traduzidos em métricas são
armazenados em Tabelas Fato. Estas são relacionadas com tabelas que possuem as
dimensões, contendo as informações para segmentação e análise dos dados, chamadas de
Tabelas Dimensão.
Figura 2 - Representação do Modelo Estrela de Kimball e Ross (2013)
3. Sistemas Gerenciadores de Base de Dados NoSQL
NoSQL é um termo que agrupa SGBDs não relacionais, que atendem a grandes volumes
de dados com alto desempenho e alta disponibilidade. Eles são definidos por
apresentarem as seguintes características:
Ausência da linguagem padrão de consulta SQL-ANSI: SGBDs NoSQL em
inglês “Not only SQL” não possuem em sua estrutura a linguagem de consulta comum de
banco de dados relacionais, o Structured Query Language (SQL). Em geral
disponibilizam interfaces de programação de aplicações (APIs) para consulta ou
linguagem própria como o CQL do Cassandra ou MongoQuery do MongoDB.
Escalabilidade horizontal: Capacidade de processamento em diversos nós de
um cluster ou diversos clusters. Permitem que a carga de processamento seja dividida
em diversos agentes, aumentando significativamente a capacidade de processamento do
SGBD. Possui a possibilidade de incluir no mesmo cluster, hardwares heterogêneos de
arquiteturas e configurações distintas.
Schemaless ou Schema Free: Trabalham com esquemas de dados flexíveis ou
totalmente sem esquemas, favorecendo o trabalho com diversos tipos de dados e
aplicações de alta mutabilidade de formatos.
Sharding e Replicação: Replicação de dados em vários nós do SGBD e
compartilhamento (sharding) de dados. Estas características favorecem o processamento
paralelo e em geral alta disponibilidade do sistema.
Consistência Eventual: Trabalham com o paradigma otimista de consistência de
dados, onde inconsistências eventuais e temporárias devem ser aceitas e previstas para
priorizar a alta disponibilidade do sistema. Esta consistência é efetuada em um momento
posterior a transação, como descrito em Gilbert e Lynch (2002) no modelo Basically
Avaliable, Soft State, Eventual Consistency (BASE).
Segundo Lócio et al.(2011), os SGBDs NoSQL são altamente relevantes para
aplicações que “necessitam de uma tecnologia que ofereça suporte ao gerenciamento e
escalabilidade de grandes volumes de dados, de maneira simples e eficiente”. Por
exemplo, as aplicações web que podem produzir volumes de dados imensos. Por estes
motivos empresas focadas em aplicações web como o Google, Facebook, Twitter,
Amazon, LinkedIn desenvolvem e/ou adotam tecnologias de SGBD NoSQL.
Moniruzzaman e Hossain (2013) classificam os atuais SGBDs NoSQL em quatro
tipos básicos de arquiteturas:
Chave-Valor: São normalmente orientados a uma chave alfa-numérica e valores
associados, sendo esses valores simples como texto ou complexos como: listas, tabelas,
imagens entre outros.
Orientados a Documentos: São bases de dados construídas para armazenar
documentos. Esses documentos são representados internamente de uma forma padrão de
troca de documentos como XML e Javascript Option Notation (JSON). Na Figura 3 há
uma representação gráfica da base de dados orientada a documentos.
Figura 3 - Representação de base de dados orientada a documentos de
Moniruzzaman e Hossain (2013)
Família de Colunas: Assim como o modelo chave-valor, ele representa
múltiplos atributos por cada chave, como será visto na Figura 4, com a diferença que os
atributos são representados por tabelas. Gravando cada coluna da tabela separadamente,
armazenando de forma contínua cada atributo referente à chave. São os maiores
exemplos de SGDB de família de coluna o Apache Cassandra, Big Table da Google e o
Apache HBase.
Figura 4 - Representação de tabela de família de colunas de Moniruzzaman e
Hossain (2013)
Orientado a Grafos: São bases de dados desenvolvidas sobre os conceitos da
teoria dos grafos, onde as tabelas são representadas como uma rede orientada a objetos
de nós (objetos conceituais), relações entre nós (arestas) e propriedades (atributos de
objetos de dados chave-valor). Geralmente, são utilizadas em aplicações em que existe
alta complexidade de relacionamentos, como redes sociais e sistemas de recomendações.
Na Figura 5 apresenta-se uma representação gráfica de uma base de dados orientada a
grafos:
Figura 5 - Representação de base orientada a grafos de Moniruzzaman e
Hossain (2013)
3.1. Características de bases de dados de família de colunas e os DWs
As principais vantagens de “bancos de dados de modelo colunar em relação aos de
modelo relacional estão vinculadas à compressão, materialização e bloco de iteração”,
como pode ser visto com mais detalhes em Soares e Boscarioli (2013) e em Abadi et al.
(2009).
Segundo Soares e Boscarioli (2013), o bloco de interação da armazenagem dos
bancos de dados colunares possibilitam um menor número de instruções ao CPU na
execução de consulta de tuplas de dados, já que o “executor de consultas pode operar
sobre o vetor contendo todos os elementos da coluna lida de uma só vez”. Em relação às
consultas de grandes volumes de dados representam uma grande vantagem, pois não é
necessário que todas as tuplas sejam “percorridas e interpretadas uma-a-uma, lendo
atributos de forma desnecessária”, significativo acréscimo de desempenho.
A materialização é a forma que os dados são recuperados de seu armazenamento.
A forma que está propriedade é implementada em SGBD colunares acrescenta uma
grande vantagem para consultas de grandes volumes de dados. Este SGBD utiliza uma
técnica descrita por Abadi et al.(2007) como Late Materialization (LM) ou
Materialização Precoce (em tradução livre), onde é possível reconstruir um menor
número de tuplas de retorno em tempo menor. Em LM, como explica Soares e
Boscarioli (2013), “os predicados da consulta são verificados antes do retorno da coluna,
para que linhas desnecessárias não sejam analisadas”. Abadi et al. (2007) acrescentam
ainda que as materializações em banco de dados colunares “operam diretamente sob a
posição dos dados nas colunas, construindo apenas tuplas relevantes, diretamente sobre
dados compactados orientados à coluna, sob velocidades de iteração de alto valor”.
De acordo com Abadi et al. (2009) uma das mais citadas vantagens dos bancos
de dados do modelo colunar é sua alta efetividade de compactação. Os algoritmos de
compactação são mais eficientes nesse modelo de dados, já que o sistema de
armazenamento de dados em colunas tende a inserir de forma sequencial informações
semelhantes. Esses métodos de compactação são fundamentais para melhora
significativa no desempenho do banco de dados, Soares e Boscarioli (2013). Yaskevich
(2011) relata que a compactação pode ser responsável por um desempenho em leitura de
25% a 35% e em escrita em 5% a 10% maior, além de uma redução em armazenamento
físico na ordem de 2 a 4 vezes de acordo com o método de compactação empregado.
Diante dos pontos mencionados, ressalta-se que as bases de dados orientadas a
colunas são ideais para construção de DWs. Vemos em Carniel et al. (2012) que o DW é
uma “base de dados volumosa, histórica, orientada ao assunto e não volátil”. SGBDs
NoSQL orientados as colunas são “indicados para aplicações que precisam de alto
desempenho em uma operação específica, como o processamento de consultas em dados
não voláteis”. Ainda neste sentido, Soares e Boscarioli (2013) trazem a atenção o fato
que banco de dados colunares são otimizados para operações de leitura (read-optimized),
tornando-se uma “boa alternativa às aplicações que possuem grande densidade de dados
e que são frequentemente requeridos para leitura” como é o caso dos DWs.
3.1. O Apache Cassandra
A distribuição de SGDB NoSQL de famílias de colunas adotada para desenvolvimento
desta pesquisa foi o Apache Cassandra, por se tratar de uma aplicação open source,
estável, amplamente aceita pelo mercado, de alta performance e disponibilidade, de fácil
instalação e com uma ampla documentação disponível.
O Apache Cassandra é uma base de dados desenvolvida inicialmente pelo
Facebook e apresentado através do artigo “Cassandra - A Decentralized Structured
Storage System”. Posteriormente, o projeto foi disponibilizado como open source para
comunidade sobre a guarda da fundação Apache. Conforme informam Lakshman e
Malik (2009), os requisitos para esta plataforma eram a alta disponibilidade,
desempenho, confiabilidade e arquitetura suficientemente escalável para suportar o
crescimento à enorme quantidade de dados produzidas pela plataforma Facebook.
O Cassandra baseou sua arquitetura em dois outros exponenciais SGBD NoSQL,
o Big Table do Google e o DynamoDB da Amazon. Do Big Table utilizou o modelo de
dados colunar e do DynamoDB aproveitou sua arquitetura de replicação e
particionamento de dados.
Segundo a documentação oficial em Datastax (2015) a versão 2.1 do Cassandra
suporta declaração explicita de esquema, tipo de dados simples como alfanuméricos e
numéricos, além de tipos de dados complexos como, bloob (binários), tuplas,
dicionários, listas, além de documentos no formato JSON. Possui também uma
linguagem nativa de consulta o Cassandra Query Language (CQL) com instruções de
Data Definition Language (DDL), Data Control Language (DCL), Data Manipulation
Language (DML) e Data Query Language (DQL).
O Cassandra é orientado a colunas, entretanto internamente trabalha com o
conceito chave-valor. Desta forma, as consultas são feitas através das chaves definidas.
Porém, suporta indexação de colunas secundárias e indexação da chave em range por
faixa de valores de colunas adicionais além da chave principal. A indexação secundária
permite que sejam feitas consultas nestas colunas adicionais indexadas através do CQL.
Atualmente o Cassandra é utilizado em empresas como o Twitter, o Reddit e o
Netflix, que necessitam de SGDBs de alta performance e imensa escalabilidade. No
Netflix, por exemplo, existem casos de uso onde o Cassandra atingiu a marca de mais de
um milhão de escrita por segundo com 288 nós em um cluster EC2 na Amazon Web
Services, mais informações podem ser vistas em Cockcroft e Sheahan (2011).
3.2. O Apache Spark
O Apache Spark é um sistema de processamento de dados em memória, desenvolvido
para acelerar o processamento de grandes quantidades de dados. Sua arquitetura foi
desenhada para processamento paralelo em cluster. Possui API para desenvolvimento
em Java, Scala e Python. Disponibiliza módulos para processamento em streaming,
modulo para criação de algoritmos de aprendizagem de máquina, módulo para consultas
em SQL e módulo para criação de algoritmos baseados em grafos. Com Spark há a
possibilidade de junções em tabelas, baseadas no modelo colunar dos SGBD Apache
Cassandra e Apache HBase, conforme disponível em Spark (2015).
4. Modelo de Construção de Aplicações de Business Intelligence em Banco de
Dados NoSQL Orientado a Colunas
O modelo proposto para construção de BI em base de dados colunares NoSQL baseia-se
nas seguintes camadas:
Data Source: Fontes de Dados quaisquer, tanto estruturadas como base de dados
relacionais e arquivos sequencias, e acrescentam-se neste modelo fontes de dados não
estruturadas como arquivos de logs e dados de redes sociais.
Extration, Load e Transformation (ELT): Diferentemente do ETL tradicional
em que os dados são transformados em tempo de extração, nesse modelo a preocupação
é com a extração das fontes de dados e carregamento na mesma estrutura original na
base de dados NoSQL. Desta forma nenhum dado é perdido ou agrupado. Como o
SGBD NoSQL suporta quantidade de dados ilimitada com baixo custo, a principal
preocupação é o armazenamento inicial da informação, sem necessidade de técnicas de
redução na quantidade de dados carregados. Posteriormente, a informação pode ser
minerada e transformada para uma camada de apresentação. Ferramentas tradicionais de
ETL como o Talend e Pentaho Data Integration que possuem conectores para NoSQL
podem ser utilizadas. Outras ferramentas podem ser adicionadas, como o Apache Kafka
que facilita a extração de diversas fontes não relacionais e o Apache Flume que
possibilita a extração de dados de fontes relacionais. Estas duas últimas ferramentas
podem ser diretamente ligadas à aplicação da camada de processamento em memória em
streaming. Outra abordagem possível é desenvolver programas em linguagens que
possuem APIs para Apache Spark e Apache Cassandra como o Java e o Python.
Processamento em Memória: É adicionada uma camada para o processamento
dos dados em memória. Esta camada é responsável pelo processamento tanto no ato do
carregamento dos dados, quanto no momento de transformação e exibição. Esta camada
também facilita a mineração, descoberta e junção de dados, já que banco de dados
NoSQL não a capacidade de junção de tabelas. A camada de processamento em
memória proporciona esta capacidade, de forma rápida. Seu processamento é
inteiramente em memória, com menor custo de I/O físico. Outras possibilidades também
são adicionadas como o processamento em streaming tonando possível a criação de
plataformas de BI para produção de informações em tempo real. Esta abordagem
depende naturalmente de grandes quantidades de memória disponível em seus nós. Neste
modelo o Apache Spark foi adotado como aplicação para atender esta camada.
Data Warehouse: Neste modelo o DW pode ser representado como camada
lógica ou física que compartilha o mesmo SGBD que a área de carregamento. Neste
trabalho sugeriu-se a criação de esquemas físicos de tabelas, contendo as informações
acessadas pelas ferramentas de visualização de dados, para otimizar o tempo de
processamento e facilitar o mapeamento dos metadados. O DW pode também ter
acrescentada uma camada lógica dentro da área de processamento em memória, ou seja,
meta-esquemas lógicos que mapeiam a forma de apresentação das informações obtidas
diretamente das áreas de carregamento do SGBD. Estes meta-esquemas são chamados
de sandbox (caixa de areia) onde a representação dos dados é lógica, criada em tempo de
execução e descontruída depois de sua utilização. Essas duas abordagens podem também
serem adotadas simultaneamente de acordo com as necessidades da aplicação.
Ferramentas de Visualização de Dados: São aplicadas sobre a camada de
processamento em memória. Desta forma, a camada de processamento em memória, que
também é clusterizada, proporciona velocidade adicional à camada de visualização de
dados. Ferramentas comuns de mercado como Cognos, Microstrategy, Qlikview e até
Microsof Excel podem ser utilizadas para a visualização de dados, já que a camada de
processamento em memória como Apache Spark disponibiliza conectores padrões de
mercado como ODBC e JDBC. Outras ferramentas como o Jaspersoft Server possuem
conectores nativos para Spark. As consultas de dados assim podem ser realizadas
diretamente com linguagem SQL que são traduzidas de forma transparente para a
linguagem do SGBD NoSQL.
No modelo apresentado são suprimidos as staging areas e as ODS, já que não é
necessária uma área de carregamento dados temporária, e a área de processamento
operacional pode ser representada diretamente no SGBD em tabelas ODS ou em uma
representação lógica na memória em sandbox.
Os DMs também são suprimidos, pois não é necessária a separação física dos
dados para cada área de negócio, e o processamento das consultas e das visualizações de
dados podem ser executadas diretamente no DW, pois o SGBD NoSQL distribuído e
clusterizado suporta com eficiência toda carga de processamento. Os DMs podem ser
representados por esquemas físicos de tabelas diretamente no DW ou em sandbox na
área de processamento em memória.
A modelagem em schema star apresentada anteriormente, também é modificada.
Os conceitos de fato e dimensões juntamente com conceitos mais profundos como de
granularidade deve ser considerados para a criação da modelagem de dados, porém não
são representados fisicamente no DW. Os dados de fato e de dimensão devem ser
representados em uma única tabela desnormalizada, que neste trabalho denominou-se
como “Tabela Estrela”. A volumetria dos dados pode ser ampliada de acordo com a
granularidade dos dados, porém este fator deve ser desconsiderado já que na abordagem
NoSQL o custo de armazenagem é infimamente menor que o custo de processamento,
ou seja, a velocidade de processamento é de ordem de importância muito maior e com
menor custo do que a volumetria dos dados.
Na Figura 6 apresenta-se o processo de um modelo de aplicações BI sobre SGBD
NoSQL baseado em coluna com a integração dos principais itens para sua criação,
conforme a proposta de modelo deste artigo:
Figura 6 - Modelo proposto para construção de aplicações B.I.
5. Estudo de Caso e resultados
O modelo apresentado no item quatro deste artigo foi implementado em escala
experimental. Foram utilizados todos os itens descrito nesta seção, com exceção da
implementação de sandbox em memória.
Para este estudo de caso foi utilizado uma arquitetura stand alone não
clusterizada. O hardware utilizado foi um microcomputador Lenovo T440p, com
processador Intel Core i5-4300M 2.8 GHz e 4GB de memória ram. O sistema
operacional utilizado foi o Windows 7 Professional 32bits. O SGBD utilizado foi o
Apache Cassandra na distribuição Data Stax Community Edition versão 2.1.4. Para
camada de processamento em memória foi utilizado o Apache Spark 1.3.0. Para o ELT
foi utilizado como ferramenta o Python 3.4. Na camada de visualização de dados foi
utilizado o sistema Jasper Reports Server Community Edition versão 6.01. Foi
necessário também a instalação da Java Virtual Machine (JVM) e JDK 6.
Para o caso de uso foi processada uma base de dados disponibilizada em Bacen
(2015). Os dados foram baixados no formato CSV. Foram selecionados todos os dados
históricos de ativo classificado por operações de crédito e arrendamento mercantil
líquidas de provisão dos 50 maiores bancos brasileiros.
5.1. Resultados
Todos os itens da arquitetura se integraram conforme o proposto. Houve uma
dificuldade para configuração do Apache Spark em ambiente Windows, mas esta
dificuldade já era esperada, já que os sistemas utilizados são melhores adaptados para
trabalharem em plataforma Unix\Linux.
No presente caso de uso a ELT foi efetuada com scripts em Python informando
comandos de Insert através do Spark. Foram inseridas duas tabelas distintas, uma
contendo as informações de carteiras de crédito e outras contendo informações do tipo
dimensão a respeito das instituições bancárias. Uma terceira tabela, a “tabela estrela” foi
construída por meio de programação em Python diretamente no SGBD Cassandra para
testar as funcionalidades da linguagem CQL.
A camada de visualização de dados conectou a aplicação Spark através de ODBC
que necessitou instalação e configuração prévia. As consultas foram feitas através de
comandos SQL. Foi desenvolvido um relatório em forma de listagem e um dash board
contendo dois gráficos. Os filtros foram feitos diretamente no JasperReport Server e
atingiram a meta esperada. Assim todas as funcionalidades básicas de um BI foram
implementadas e testadas sobre o modelo proposto.
6. Considerações Finais
As aplicações de BI vêm sendo desenvolvida há diversos anos sobre o modelo
sugerido por Kimball e Inmon, que implicitamente é associado com base de dados
relacionais, entretanto a arquitetura relacional de dados possui limitações em
escalabilidade. Como pode-se verificar, a abordagem NoSQL foi desenvolvida para lidar
com os desafios de base de dados grandes e com escalabilidade horizontal. Destaca-se
como solução de SGBD NoSQL para construção de DW as arquiteturas voltadas a
família de colunas. Desta forma, hoje a criação de aplicações de BI em base de dados
NoSQL colunares é uma realidade e esta abordagem pode trazer diversas vantagens
sobre o modelo relacional.
Este trabalho contribuiu para identificar um modelo viável para construção de
uma aplicação robusta de BI. Foram analisadas diversas arquitetura de SGBD NoSQL
bem como outras ferramentas para construção desta arquitetura de BI. Como resultado
foi apresentado à implementação do modelo proposto e verificado que este atende as
funcionalidades padrões de uma aplicação de Business Intelligence.
6.1. Próximos Passos
Para os próximos passos pretende-se efetuar o desenvolvimento de sistemas de
metadados para data warehouse em banco de dados NoSQL, já que o modelo
apresentado não dispõe de nenhuma base de metadados. Outra atividade a ser testada é a
criação de cubos OLAP ou cubos de análise em memória. Por fim, com maiores recursos
pretende-se efetuar medição do desempenho do modelo proposto com volume massivo
de dados em ambiente clusterizado.
6. Referências
Abadi, D. J., Boncz, P. A., Harizopoulos, S. Column-Oriented Database Systems.
Proceedings of the VLB Endowment 2009, v. 2, n. 2, p.1664-1665, 2009.
Abadi, D. J., Myers, D. S., Dewitt, D. J., Madden, S. R., Materialization Strategies in a
Column-Oriented DBMS. In: IEEE 23rd International Conferenceon Data
Engineering, 2007. , p. 466-475. 2007.
Bacen, B. C. B., 50 maiores bancos e o consolidado do Sistema Financeiro Nacional.
2015. Disponível em:http://www4.bcb.gov.br/fis/TOP50/port/Top50P.asp
Carniel, A. C, Sá, A. A.; Brisighello, V. H. P.; Ribeiro, M. X.; Bueno, R.; Ciferri, R. R.;
Ciferri, C. D. A. Query Processing over Data Warehouse using Relational Databases
and NoSQL. XXXVIII Conferencia Latino americana En Informatica (CLEI 2012) p.
1-9, 2012.
DataStax, CQL for Cassandra 2.x Documentation. 2015 – Disponível em
http://docs.datastax.com/en/cql/3.1/pdf/cql31.pdf. Acessado em 11/04/2015.
Cockcroft, A., Sheahan, D., Benchmarking Cassandra Scalability on AWS - Over a
million
writes
per
second.
2011.
Disponível
em:
http://techblog.netflix.com/2011/11/benchmarking-cassandra-scalability-on.html
Acessado em: 11/04/2015.
Inmon, W. H. Building the Data Warehouse, 4º Edition. Wiley Publishing, Inc., 2005.
Gilbert, S.,Lynch, N., Brewer’s Conjecture and the Feasibility of Consistent, Avaliable,
Partition-Tolerant Web-Services. ACM SIGACT News, New York, NY,USA, v.33,
n. 2, p.51,59, Junho, 2002.
Kimball, R., Ross, M., The Data Warehouse Toolkit: The Definitive Guide to
Dimensional Modeling, Third Edition. John Wiley & Sons, Inc., 2013.
Lakashman, A., Malik, Prashant., Cassandra – A Decentralized Structured Storage
System.
2009.
Disponível
em:
https://www.cs.cornell.edu
/projects/ladis2009/papers/lakshman-ladis2009.pdf Acessado em: 11/04/2015.
Lócio, B. F., Oliveira H. R., Pontes, J. C. S.,NoSQL no desenvolvimento de aplicações
Web Colaborativas. VIII Simpósio Brasileiro de Sistemas Colaborativos (SBSC
2011), 2011.
Moniruzzaman , A. B. M., Hossain, S. A. NoSQL Database: New Era of Databases for
Big data Analytics - Classification, Characteristics and Comparison. International
Journal of Data base Theory and Application Vol. 6, No. 4., 2013.
Soares, B. E., Boscarioli; C. Modelo de Banco de Dados Colunar: Características,
Aplicações e Exemplos de Sistemas. IX Escola Regional de Banco de Dados (ERBD
2013), 2013.
Spark, A., Apache Spark Documentation. 2015.
Disponível
https://spark.apache.org/documentation.html. Acessado em: 11/04/2015.
em:
Yaskevich, P. What’s new in Cassandra 1.0: Compression.–Disponível em
http://www.datastax.com/dev/blog/whats-new-in-cassandra-1-0-compression.
Acessado em 11/04/2015, 2011.
Download