quinta-feira, 29 de maio de 2014

mongodb-hadoop-connector


MongoDB e Hadoop são uma combinação poderosa e pode ser usado em conjunto para fornecer análises complexas e processamento de dados armazenados no MongoDB. O guia a seguir mostra como você pode começar a trabalhar com o MongoDB Conector para Hadoop. Uma vez que você se familiarizar com o conector, você pode usá-lo para puxar seus dados MongoDB nos Jobs do Hadoop Map-Reduce, processar os dados e retornar resultados para uma coleção MongoDB.


Para iniciar, precisamos ver alguns prerequisitos básicos :

mongo_mem-monthPrimeiro uma pergunta simples a todos usuários de MongoDB: "Vocês conseguem me dizer o quanto de memória cada coleção (Collection) está consumindo?" Como já era esperado, a maioria das respostas será "Não" e foi por isso que a equipe de engenharia da Wish, desenvolveu o MongoMem que permite aos desenvolvedores do MongoDB localizar com precisão as coleções que necessitam uma otimização de memória em caráter de urgência em vez de ficar procurando os problemas baseados apenas na intuição. De acordo com a visão da equipe da Wish, a necessidade do MongoMem era clara.



"Antigamente usávamos muito mais memoria do que realmente deveria usar, estávamos correndo as cegas para decidir onde deveria ser otimizado. Depois de várias otimizações frustradas, as quais não fizeram diferença alguma, nós decidimos que realmente necessitávamos de melhores informações e assim o MongoMem nasceu." 


Uma visão geral da equipe da Wish entra em detalhes sobre como funciona o MongoMem onde chamadas mincore e o comando collStats fazem a maioria do trabalho, o que você pode fazer com ele e até mesmo detalhes de alguns dos planos para o futuro da MongoMem. No geral, porém, é uma pequena ferramenta bastante simples:

Para cada coleção, temos:

  • Número de MB na memória

  • Número de MB no total

  • Percentagem da coleção que está na memória


Você pode encontrar MongoMem no GitHub (com as instruções de uso), então se você está procurando algumas dica sobre como evitar que MongoDB  exagere na memória, isso pode ser uma ferramenta muito útil para você.

Knee Curve_2NoSQL,  nos últimos anos passou de um simples zum zum zum para uma realidade atual.


Portanto, como, onde e quando devemos utiliza-lo é a grande questão para muitos gestores que ainda não conseguiram assimilar a nova tendência.


Como profundo conhecedor de ambos (NoSQL e RDBMS) irei listar abaixo um resumo de melhores práticas onde cada tipo será melhor utilizado.





python-logoPython é uma linguagem de programação de alto nível, interpretada, imperativa, orientada a objetos, funcional, de tipagem dinâmica e forte. Atualmente possui um modelo de desenvolvimento comunitário, aberto e gerenciado pela organização sem fins lucrativos Python Software Foundation. Apesar de várias partes da linguagem possuírem padrões e especificações formais, a linguagem como um todo não é formalmente especificada. O padrão de fato é a implementação CPython.


A seguir você vai aprender como instalar o Python e ativar o suporte para idioma no MongoDB .

Hoje existem muitas ferramentas que permitem gerenciar o MongoDB. Pessoalmente  ainda faço parte da velha guarda que prefere administrar via linha de comando. Uma delas é o MongoVUE que é na primeira análise é uma aplicação de desktop para windows muito fácil de usar. Há uma versão paga que custa algo em torno de US$ 35 e uma versão gratuita. Como não poderia ser diferente, a versão gratuita é limitada em matéria de recursos, porem para o nosso propósito é mais do que suficiente. Vamos em frente e faça o download aqui Observação: Durante o processo de instalação certifique-se de permitir a exceção no Firewall do Windows. Após instalar, ao executar você verá o painel de conexões disponíveis mongodb5

quinta-feira, 22 de maio de 2014

Sharding


Sharding é o processo de armazenamento de registros de dados em várias máquinas e é a abordagem do MongoDB para atender as demandas de crescimento de dados. À medida que o tamanho dos dados aumenta, uma única máquina pode não ser suficiente para armazenar os dados, nem fornecer uma leitura e gravação com rendimento aceitável. O Sharding resolve o problema com escala horizontal. Com sharding, você adiciona mais máquinas para suportar o crescimento de dados e as demandas de operações de leitura e escrita.

Por que Sharding?



  • Na replicação todas as gravações são feitas no nó principal (Master)

  • Consultas sensíveis à latência continuam sendo feitas no nó principal

  • Conjunto de réplicas possuem limitações de 12 nós

  • A memória pode não ser suficiente quando o dataset ativo for muito grande

  • Disco local não possui espaço suficiente

  • A escala vertical é muito cara


Sharding no MongoDB


sharding

No diagrama acima, existem três componentes principais que são descritos abaixo:

  • Shards: Shards (fragmentos) são usados ​​para armazenar dados. Eles fornecem alta disponibilidade e consistência dos dados. Em um ambiente de produção cada fragmento é um conjunto de réplicas separado.

  • Config Servers: Config Servers armazenam os metadados do cluster. Estes dados contém um mapeamento dos dados do conjunto de cluster para os shards. O roteador consulta e usa os metadados para direcionar operações de shards específicos. Em um ambiente de produção,  Sharded Clusters possuem exatamente 3 servidores de configuração.

  • Query Routers: Query Routers são basicamente mongos instances que fazem a interface com os aplicativos clients e operações diretas com o shard apropriado. Os processos de consulta e de roteamento visa operações para os shards e retornar resultados para os clients. Um  Sharded Cluster pode conter mais do que um roteador de consulta ( Query Router) para dividir a carga de solicitações do client. Um client envia as solicitações para um roteador consulta. Geralmente um Sharded Cluster possue muitos roteadores consulta.


 

quarta-feira, 21 de maio de 2014

MongoDB Overview


MongoDB é um banco de dados multi-plataforma orientado ao documento que fornece alta performance, alta disponibilidade e fácil escalabilidade. MongoDB funciona no conceito de coleções de documentos.



Banco de Dados


Banco de dados é um recipiente físico para coleções. Cada banco de dados tem o seu próprio conjunto de arquivos no sistema de arquivos. Um único servidor MongoDB normalmente tem vários bancos de dados.



Coleções (Collection)


Collection é um grupo de documentos MongoDB. É o equivalente de uma tabela de RDBMS. Uma coleção existe dentro de um único banco de dados. Coleções não impõem um esquema. Documentos dentro de uma coleção pode ter diferentes campos. Normalmente, todos os documentos em uma coleção são propositalmente  semelhantes ou afins.



Documento


Um documento é um conjunto de pares de valores-chave. Documentos têm esquema dinâmico. Esquema dinâmico significa que os documentos na mesma coleção não precisam ter o mesmo conjunto de campos ou estrutura e campos comuns em documentos de uma coleção podem conter diferentes tipos de dados.


Exemplo:


O exemplo abaixo mostra a estrutura do documento de um blog onde uma simples vírgula separa o par valor da chave.



{
_id
:ObjectId(7df78ad8902c)
title
:'MongoDB - Guia Rapido',
description
:'MongoDB - Guia Rapido',by:'MongoDBWise',
url
:'http://www.mongodbwise.worpress.com',
tags
:['mongodb','database','NoSQL'],
likes
:100,
comments
:[{
user
:'user1',
message
:'My first comment',
dateCreated
:newDate(2014,5,21,2,15),
like
:0},{
user
:'user2',
message
:'My second comments',
dateCreated
:newDate(2014,5,21,7,45),
like
:5}]}


terça-feira, 20 de maio de 2014

mongolink-256Instalação


Antes de começar a usar o MongoDB com nossos programas em Java, precisamos ter certeza de que temos informações MongoDB Java Driver JDBC e configurar sua máquina.


Você pode verificar no Java tutorial como instalar o Java em sua máquina. Agora, vamos verificar como configurar o MongoDB JDBC driver.




  1. Você precisa baixar o arquivo  mongo.jar. Certifique-se de baixar a ultima versão do mesmo.

  2. Você precisa incluir o mongo.jar em seu classpath.


Conecte-se ao banco de dados


Para conectar banco de dados, você precisa especificar o nome do banco de dados, se não existir, então será criado automaticamente pelo MongoDB.

Trechos do código para se conectar ao banco de dados seria a seguinte:
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.WriteConcern;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;
import com.mongodb.ServerAddress;
import java.util.Arrays;

public class MongoDBJDBC{
public static void main( String args[] ){
try{
// To connect to mongodb server
MongoClient mongoClient = new MongoClient( "localhost" , 27017 );
// Now connect to your databases
DB db = mongoClient.getDB( "test" );
System.out.println("Connect to database successfully");
boolean auth = db.authenticate(myUserName, myPassword);
System.out.println("Authentication: "+auth);
}catch(Exception e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}


1

 

O que há de novo no MongoDB 2.6.1?


 

 

 

A nova release liberada no ultimo dia 5 de Maio de 2014 traz as seguintes alterações que afetam tanto as versões Standart Enterprise Edition, são elas:

Outras Correções:

Estabilidade



  • Falha de banco de dados de reparação pode apagar arquivos de banco de dados - SERVER-13739


Aggregation Enhancements


O aggregation pipeline adiciona a capacidade de retornar conjuntos de resultados de qualquer tamanho, ou retornando um cursor ou escrever a saída para uma coleção. Além disso, o  aggregation pipeline suporta variáveis ​​e adiciona novas operações para lidar com conjuntos de dados e redigir dados.

  • O db.collection.aggregate () agora retorna um cursor, que permite que o aggregation pipeline retornae conjuntos de resultados de qualquer tamanho.

  • Aggregation pipelines agora suportam uma operação explain para auxiliar a análise de operações de agregação.

  • Aggregation agora pode usar um processo de classificação baseado em discos externos mais eficientes.



sábado, 17 de maio de 2014

3-nodereplicaset

 

 

Neste artigo vamos ver como implementar uma replicação MongoDB em 3 passos de maneira bem simples.



Para começar, vamos seguir os passos a seguir:

  1. Criar os diretórios de dados

  2. Criar o conjunto de replicação e as instâncias

  3. Configure os nós primário, secundario e um árbitro


Passo 1) Crie os diretórios de dados


Comece criando um diretório de dados para cada membro do conjunto de réplica, um para o primário,outro para o secundário e também adicionar um árbitro. O árbitro não replica os dados, mas escolhe um novo primário, caso haja uma interrupção do primário existente.
mkdir /mongodb/0/node1
mkdir /mongodb/0/node2
mkdir /mongodb/0/arbiter

Passo 2) Criar o conjunto de replicação e as instâncias


Em seguida, comece  cada membro como um mongod separado. Desde que você esteja rodando cada processo na mesma máquina, é provavelmente mais fácil de começar cada mongod em uma janela de terminal separado:
mongod --replSet cadastro --dbpath /mongodb/0/node1 --port 40001 --smallfiles
mongod --replSet cadastro --dbpath /mongodb/0/node2 --port 40002 --smallfiles
mongod --replSet cadastro --dbpath /mongodb/0/arbiter --port 40003 --smallfiles


Blog Archive

SmarttNet Solution Provider. Tecnologia do Blogger.

Postagens populares

Twitter MongoDBBrazil

Total de visualizações de página