Postagens

Mostrando postagens de 2013

MongoDB - NoSQL

Imagem
No post de 26 de agosto de 2013, falamos sobre os bancos de dados NoSQL (Not Only SQL), mais especificamente sobre o HBase, que é orientado a colunas. Além dos bancos NoSQL orientados a colunas, existem outros tipos de bancos NoSQL orientados a documentos, grafos, chave-valor, objetos, etc.  Os bancos NoSQL orientados a documentos foram projetados para facilitar a armazenagem e recuperação de grandes volumes de documentos e são muito empregados em aplicações que requerem gerenciamento de grandes volumes de conteúdo digital, gerenciamento de dados de usuários, infraestrutura social e mobile, etc. O MongoDB ( www.mongodb.org ) é um dos principais bancos NoSQL orientado a documentos, existente no mercado. Como exemplo de empresas que usam o MongoDB temos a Forbes, o Foursquare, a Leroy Merlin, o CERN, etc. Com o MongoDB podemos armazenar documentos usando padrão BSON, criar índices para tornar buscas mais rápidas e gerenciar réplicas do ambiente provendo assim redu

Big Data e Análise Preditiva

Imagem
A medida que o uso de ambientes Big Data se consolida nas organizações, novos casos de uso e novos tipos de análises passam a ser requeridas pelos clientes. Além do uso de análises descritivas ou históricas, que relatam a performance dos negócios no passado, análises que visam prever comportamentos e tendências podem também ser realizadas, a medida que podemos combinar novas fontes de informações, que até então não conseguiam ser reunidas facilmente. Como exemplos de uso destas análises no dia a dia das companhias temos aplicações para detecção de fraudes, classificação de e-mails, previsões de venda, detecção de mudança de comportamento de clientes, previsões de defeitos, previsões de produção, etc. Nestes tipos de análises preditivas, os algorítimos mais empregados são os que envolvem regressão linear e cluster. Na regressão linear estimamos o valor de uma variável y, modificando os valores de uma variável x. Na análise de cluster procuramos agrupar os objetos que são similares

O framework Cascading

Imagem
Nos posts anteriores vimos que um dos grandes diferenciais da plataforma Hadoop é a sua capacidade de armazenar e tratar enormes quantidades de dados estruturados e não estruturados, mas para que estes dados tenham valor precisam ser refinados e analisados de acordo com as necessidades da companhia. Como opções para processamento de dados nesta plataforma, já abordamos o MapReduce, o Hive, o HBase, etc, cada um tendo um perfil de uso específico e necessitando de competências diferenciadas por parte da equipe de desenvolvimento e suporte. No caso da utilização do MapReduce, muitas vezes existe um certo grau de dificuldade por parte dos desenvolvedores para traduzir os requisitos de negócios da empresa para programas em MapReduce, que trabalham tipicamente com chaves e valores e dois tipos básicos de lógica (mapear e reduzir). Visando criar um novo nível de abstração e facilitar o processamento de dados no ambiente Hadoop, foi criado o framework Cascading ( http://www.casc

Usando o Cloudera Hadoop

Imagem
Uma das lacunas que existe na plataforma de software Hadoop, que também existe em outros softwares livres, está relacionada ao serviço de suporte e manutenção. A medida que as empresas passam a utilizar um software livre, muitas destas não dispõem de pessoas com competências técnicas para suportar este tipo de software e precisam de respostas rápidas para possíveis problemas que aconteçam no seu uso diário. De uma forma geral estas empresas não podem basear o suporte aos seus serviços em mensagens trocadas em grupos de usuários, o que pode representar um sério risco. Uma outra lacuna que também existe na plataforma Hadoop está relacionada às ferramentas para gerenciamento do ambiente como um todo. A partir destas necessidades do mercado, algumas empresas começaram a trabalhar a partir da distribuição Hadoop da Apache Foundation para gerar as suas próprias distribuições, com suporte e atualizações pagas, assim como também desenvolvendo ferramentas de administração que

Importando e exportando dados com Sqoop

Imagem
A plataforma Hadoop consegue realizar o processamento distribuído de informações de origens diversas, que podem ser estruturadas ou não, possibilitando o desenvolvimento de novas aplicações e novas formas de analisar os negócios.  Atualmente grande parte das informações estruturadas das companhias está armazenada em bancos de dados relacionais e precisam ser integradas com informações não estruturadas no ambiente Hadoop. Para realizar a importação e exportação de dados entre bancos de dados relacionais e o Hadoop foi criada a ferramenta Sqoop (http://sqoop.apache.org), também da Fundação Apache. O pacote Sqoop obtido no site da Fundação Apache fornece conectores específicos para MySQL, PostGreSQL, Oracle, SQL Server e DB2, assim como tem também um conector genérico para JDBC (Java Database Connectivity), que pode ser usado para conexão com qualquer banco de dados ou ferramenta que suporte JDBC. Existem também no mercado outros conectores para Netezza, Teradata, No

Integrando Hadoop, BI e DW

Imagem
O relatório sobre integração do Hadoop com ambientes de Business Intelligence e Data Warehouse corporativos ( TDWI_BPReport_Q213_IntegratingHadoopBIDW_rev.pdf ), publicado pela TDWI ( www.tdwi.org ) no final do primeiro semestre de 2013, indica que a maioria das empresas consultadas veem o Hadoop e seu ecossistema de produtos e parceiros como uma oportunidade para complementar os seus ambientes de BI e Data Warehouse, possibilitando o desenvolvimento de novos tipos de relatórios analíticos,  originados de fontes não estruturadas, gerados por máquinas, navegação em servidores web, dados de sensores, RFID, georeferenciamento, etc.  Como já falamos em posts anteriores, o Hadoop tem como sistema de arquivos padrão o HDFS, que permite adicionar mais processamento e área de armazenamento ao cluster Hadoop a partir do uso de equipamentos de baixo custo e facilmente encontrados no mercado. Desta forma ao adicionar o Hadoop ao ambiente de BI e DW,  podemos utilizar o HDFS como á

Montando o seu ambiente Big Data

Imagem
  Existem hoje no mercado diversas opções para montar um ambiente   para processamento de grandes quantidades de dados utilizando a plataforma Big Data (Hadoop, HDFS, Hive, HBASE, Pig, etc).      Uma das opções iniciais é montar seu próprio cluster com máquinas servidoras de baixo custo existentes no mercado,   fazer o download dos softwares do site da Fundação Apache, realizar as instalações e configurações necessárias para utilizá-lo da maneira mais rápida possível, sem pagamento de licenças ou mensalidades de manutenção de software. Caso não tenha os recursos necessários é possível com apenas uma máquina   configurar e testar o ambiente do Hadoop.     Normalmente este é o caminho utilizado durante o aprendizado ou por pequenas empresas,   que ainda não podem arcar com custos adicionais. Nestes casos o suporte e resolução de problemas é feito por buscas na internet, buscas em comunidades ou com o auxílio de profissionais com experiência nestes ambientes.    Existem

O que é o HBASE ?

Imagem
   O HBASE é um banco de dados do tipo NoSQL, não aderente ao modelo relacional, que não provê acesso SQL aos dados armazenados. Os bancos de dados que estão sob este rótulo NoSQL não podem exigir esquemas de tabela fixa e, geralmente, não suportam instruções e operações de junção SQL, assim como não dispõem de colunas com tipos de dados definidos, triggers, etc. Como exemplos de NoSQL, além do HBASE, temos o MongoDB, o Amazon SimpleDB e o Oracle NoSQL.    O HBASE é orientado a colunas, sendo muitas vezes chamado de “Hadoop Database”, permitindo operações CRUD em tempo real. Em 2010 deixou de ser um sub-projeto do Hadoop, tornando-se um projeto independente (http://hbase.apache.org/). Assim como o Hadoop, roda em plataforma clusterizada e foi projetado para suportar tabelas com bilhões de linhas.    Sua melhor aplicabilidade é quando temos uma quantidade de dados muito grande, aproveitando assim o potencial do cluster Hadoop / HDFS. Com bases de dados

Utilizando Big Data

Imagem
No post de hoje listamos algumas companhias que utilizam Big Data.     Facebook   As aplicações de BI e Datawarehouse do Facebook, chaves para o entendimento do comportamento do usuário e métricas de campanhas,   estavam sendo impactadas pela grande quantidade de dados ( 10TB / dia ) e a plataforma   Hadoop, HDFS/ Hive mostrou ser a melhor solução.   Os logs dos servidores Apache são coletados via Scribe, os dados são transferidos para o cluster Hadoop / HDFS e é utilizado o Hive para sumarizar os   mesmos. Os sumários incluem page views, número de usuários, permanência no site, performance de campanhas e análises específicas. Rackspace O Rackspace provê serviços de hosting, e-mail e infraestrutura em geral para diversas companhias.   Os serviços de e-mail geram diariamente um volume muito grande de dados que não estava sendo mais processado em tempo hábil por instãncias MySQL. A solução encontrada foi transferir os logs para um cluster Hadoop / HDF

Hive, o que é ?

Imagem
Após uma semana voltada para a Jornada Mundial da Juventude no Rio de Janeiro, que foi bastante recompensadora, voltamos ao nosso dia a dia no mundo da tecnologia e falamos sobre o Hive.  O Hive é um framework para soluções de Data Warehousing, que executa no ambiente do Hadoop, construído inicialmente pelo time de desenvolvimento do Facebook em 2007.   Ele nasceu a partir da necessidade de gerenciar, analisar e aprender sobre o comportamento dos usuários a partir dos imensos volumes de dados gerados a cada dia no Facebook.  A escolha pelo Hadoop foi incentivada pelo baixo custo, escalabilidade e evitar a dependência sobre custos de licenças e manutenção anual que são comuns nos bancos de dados do mercado.  Outro ponto também que levou ao desenvolvimento do Hive foi o baixo desempenho das soluções de mercado para realizar operações de Full Scan em grandes volumes de dados.  O Hive foi criado também visando aproveitar os "skills" de uso do SQL dos analistas e de

O que é o HDFS ?

Imagem
O HDFS (Hadoop Distributed File System) é um sistema de arquivos distribuído, projetado para armazenar arquivos muito grandes,  com padrão de acesso aos dados streaming , utilizando clusters de servidores facilmente encontrados no mercado e de baixo ou médio custo.  Não deve ser utilizado para aplicações que precisem de acesso rápido a um determinado registro e sim para aplicações nas quais é necessário ler uma quantidade muito grande de dados.  Outra questão que deve ser observada é que não deve ser utilizado para ler muitos arquivos pequenos, tendo em vista o overhead de memória envolvido. O HDFS possui o conceito de blocos, tal como no Unix, mas seus blocos normalmente têm tamanho de 64MB.  Um arquivo muito grande pode ter blocos armazenados em mais de um servidor.   Com este conceito de blocos de tamanho fixo fica mais fácil calcular as necessidades de armazenamento. O HDFS tem 2 tipos de Nós :  Master (ou Namenode) e Worker (ou Datanode).  O Master armazena informações da