segunda-feira, 1 de dezembro de 2014

API criada pela empresa permite aos clientes desenvolver serviços em seus dados.

Companies House, braço de negócios do governo inglês, substituiu o seu software de banco de dados relacional com um sistema de MongoDB NoSQL, que se destina a renovar a sua presença on-line e melhorar o acesso dos clientes aos dados.

A agência executiva, que é administrado pelo Departamento de Negócios, Inovação e Habilidades, iniciou o projeto como parte dos planos para fornecer todos os seus dados para os usuários de forma gratuita, digitalizados, ampliando ainda mais a visão dos serviços do governo.

Isso significava rever seus serviços baseados na web "cansados e velhos ', consolidação de seus vários sistemas de pagamento de contas,  atualizar suas capacidades de pesquisa e adicionar APIs e tornar mais fácil para as empresas externas no desenvolvimento de software em cima de seus dados.

"Ao invés de tentar renovar os serviços existentes, decidimos aproveitar a oportunidade para criar um serviço de baixo para cima, que consolidou o que já fazemos, e ao longo do tempo, vamos adicionar uma nova funcionalidade", disse Mark Fairhurst, chefe de arquitetura na Companies House .

"O principal benefício é uma interface melhorada. Estamos melhorando a o sistema de busca de dados da empresa, estamos melhorando a forma como é mostrado na tela ".

Ele acrescentou: "A outra mudança é a tecnologia em camadas: estamos desenvolvendo uma API baseada em REST sobre o qual nossa própria interface de usuário irá interagir. Isso significa que nós podemos oferecer essa API  para clientes externos e fazendo com que eles possam desenvolver o seu próprio software, quer seja para consumir ou modificar os dados da empresa ".

A decisão tomada foi substituir o banco de dados relacional Oracle com a tecnologia open source NoSQL do MongoDB.

"Embora [o sistema anterior] tenha funcionado, não foi tão simples como as outras ofertas que tínhamos sobre a mesa. Olhando a forma como utilizamos os dados através de nossos serviços baseados na web, eles não precisam ser armazenados de forma relacional, é simplesmente apresentar uma bolha de dados para os consumidores ", disse ele.

"Sentimos que com o MongoDB seria mais simples de interagir a partir de um ponto de vista do desenvolvimento. Então, quando os desenvolvedores estão desenvolvendo para ele, em vez de tentar escrever uma peça de SQL que consulta três ou quatro tabelas, os dados podem apenas ser acessado a partir de um Mongo local. O objetivo era simplificar a interface entre os nossos sistemas baseados na web, nossa própria API e os conjuntos de dados por baixo".

Fairhurst disse que a Companies House vai continuar a adicionar mais funcionalidades para o sistema baseado em Perl, no futuro, bem como permitindo que as informações cadastro de empresas sejam interligados a dados de outros departamentos de Whitehall para ajudar desenvolvedores externos a criarem novos serviços.

"Avançando, nós estamos olhando para coisas como tentar vincular os dados com outros conjuntos de dados do governo e quase como deixar o mercado assumir nesse momento", disse ele.

"Então, em vez de fornecer o valor adicional aos serviços, podemos fornecer os dados de maneiras mais atuais, e o mercado vai assumir."


terça-feira, 14 de outubro de 2014

MongoDBPumper para MongoDB e Oracle é um produto inovador, poderoso e conveniente, que é uma parte da nossa coleção migração bigdata. Ele fornece a funcionalidade de migração de dados de alto desempenho entre bancos de dados Oracle e MongoDB em duas direções. Com assistente GUI MongoDBPumper você pode facilmente executar a migração de dados entre a tabela Oracle e coleções MongoDB. Você pode criar suas transformações de dados personalizados em tempo real e de importação de diversas fontes de dados baseadas em Oracle (com base em suas SQLs costume complexos) para coleções de banco de dados MongoDB em paralelo. Todos os principais tipos de dados Oracle (incluindo XML, CLOB e BLOB) são suportados para a migração de dados para MongoDB e para trás. Você pode também visualizar e gerenciar dados de coleções MongoDB e exportá-lo para um formato de arquivo JSON legível. O processo de migração de dados podem ser paralelizadas até 20 graus proporcionar um desempenho muito elevado migração de grandes quantidades de dados.

Neste Link você pode fazer o download do Trial de nossa Cloud
BigDataPumper é um produto inovador, poderoso e conveniente, que é uma parte da suíte migração spViewer Software bigdata. Ele fornece a funcionalidade de migração de dados de alto desempenho entre qualquer um dos seguintes bancos de dados suportados: Oracle, MongoDB, Couchbase, Apache Cassandra, CouchDB, HBase. Com assistente BigDataPumper GUI você pode facilmente executar a transferência de dados entre bancos de dados suportados em qualquer direção. Você pode criar suas transformações de dados personalizados em tempo real e de importação de diversas fontes de dados personalizados (com base em suas condições de filtro personalizado complexos) para direcionar banco de dados Oracle ou NoSQL em paralelo. Todos os principais tipos de dados Oracle e NoSQL (incluindo XML, CLOB e BLOB) são suportados para transferência de dados entre bancos de dados. Você pode também visualizar e gerenciar os dados do banco de dados e exportá-lo para um formato de arquivo JSON legível. O processo de transferência de dados pode ser paralelizadas até 20 graus proporcionar um desempenho muito elevado migração de grandes quantidades de dados.

Neste Link você pode fazer o download do Trial de nossa Cloud

domingo, 10 de agosto de 2014



Um operador de comparação compara duas expressões e documentos obtidas da coleção MongoDB. Neste post, vamos discutir sobre os operadores de comparação e se uso.





No MongoDB os operadores condicionais são:

(>) Maior que -> $gt

(<) Menor que -> lt$

(> =) Maior ou igual a -> $gte

(<=) Menor ou igual a -> $lte

O nome de nosso banco de dados é "myinfo 'e o nome da coleção é" testtable'. Abaixo segue nossa coleção (Collection):

{ "_id" : ObjectId("528f34950fe5e6467e58ae77"), "user_id" : "user1", "password" : "1a2b3c", "sex" : "Male", "age" : 17, "date_of_join" : "16/10/2010", "education" : "M.C.A.", "profession" : "CONSULTANT", "interest" : "MUSIC", "extra" : { "community_name" : [ "MODERN MUSIC", "CLASSICAL MUSIC", "WESTERN MUSIC" ], "community_moder_id" : [ "MR. Alex", "MR. Dang", "MR Haris" ], "community_members" : [ 700, 200, 1500 ], "friends" : { "valued_friends_id" : [ "kumar", "harry", "anand" ], "ban_friends_id" : [ "Amir", "Raja", "mont" ] } } } { "_id" : ObjectId("528f34fa0fe5e6467e58ae78"), "user_id" : "user2", "password" : "11aa1a", "sex" : "Male", "age" : 24, "date_of_join" : "17/10/2009", "education" : "M.B.A.", "profession" : "MARKETING", "interest" : " MUSIC", "extra" : { "community_name" : [ "MODERN MUSIC", "CLASSICAL MUSIC", "WESTERN MUSIC" ], "co mmunity_moder_id" : [ "MR. Roy", "MR. Das", "MR Doglus" ], "community_members" : [ 500, 300, 1400 ], "friends" : { "valued_friends_id" : [ "pal", "viki", "john" ], "ban_friends_id" : [ "jalan", "mono j", "evan" ] } } } { "_id" : ObjectId("528f35450fe5e6467e58ae79"), "user_id" : "user3", "password" : "b1c1d1", "sex" : "Female", "age" : 19, "date_of_join" : "16/10/2010", "education" : "M.C.A.", "profession" : "IT COR.", "interest" : "AR T", "extra" : { "community_name" : [ "MODERN ART", "CLASSICAL ART", "WESTERN ART" ], "community_mo der_id" : [ "MR. Rifel", "MR. Sarma", "MR Bhatia" ], "community_members" : [ 5000, 2000, 1500 ], "friends" : { "valued_friends_id" : [ "philip", "anant", "alan" ], "ban_friends_id" : [ "Amir", "Raja", "mont" ] } } } { "_id" : ObjectId("528f35860fe5e6467e58ae7a"), "user_id" : "user4", "password" : "abczyx", "sex" : "Female", "age" : 22, "date_of_join" : "17/8/2009", "education" : "M.B.B.S.", "profession" : "DOCTOR", "interest" : "SPORTS", "extra" : { "community_name" : [ "ATHELATIC", "GAMES FAN GYES", "FAVOURIT GAMES" ], "community_moder_id" : [ "MR. Paul", "MR. Das", "MR Doglus" ], "community_members" : [ 2500, 2200, 3500 ], "friends" : { "valued_friends_id" : [ "vinod", "viki", "john" ], "ban_friends_id" : [ "jalan", "monoj", "evan" ] } } }

MongoDB (>) maior que - Operador - $gt

Se quisermos buscar documentos da coleção "testtable", que contém o valor de "age" é maior do que 22, o seguinte comando MongoDB pode ser usado:

>db.testtable.find({age : {$gt : 22}}).pretty();

db.find () é compando que exibe os documentos em um formato não estruturado, mas para exibir os resultados de uma forma formatado, basta adicionar o comando pretty().

Equivalente ao comando SQL

SELECT * FROM testtable WHERE age >22;

Resultado 

{ "_id" : ObjectId("528f34fa0fe5e6467e58ae78"), "user_id" : "user2", "password" : "11aa1a", "sex" : "Male", "age" : 24, "date_of_join" : "17/10/2009", "education" : "M.B.A.", "profession" : "MARKETING", "interest" : " MUSIC", "extra" : { "community_name" : [ "MODERN MUSIC", "CLASSICAL MUSIC", "WESTERN MUSIC" ], "co mmunity_moder_id" : [ "MR. Roy", "MR. Das", "MR Doglus" ], "community_members" : [ 500, 300, 1400 ], "friends" : { "valued_friends_id" : [ "pal", "viki", "john" ], "ban_friends_id" : [ "jalan", "mono j", "evan" ] } } }

MongoDB (> =) maior ou igual - Operador  - $gte

Se quisermos buscar documentos da coleção "testtable", que contém o valor de "age" maior ou igual a 22, o seguinte comando MongoDB pode ser usado:

>db.testtable.find({age : {$gte : 22}}).pretty();

db.find () é o comando que exibe os documentos em um formato não estruturado, mas para exibir os resultados de uma forma formatado, basta adicionar o comando pretty().

Equivalente ao comando SQL

SELECT * FROM testtable WHERE age >=22;

Resultado 

{ "_id" : ObjectId("528f34fa0fe5e6467e58ae78"), "user_id" : "user2", "password" : "11aa1a", "sex" : "Male", "age" : 24, "date_of_join" : "17/10/2009", "education" : "M.B.A.", "profession" : "MARKETING", "interest" : " MUSIC", "extra" : { "community_name" : [ "MODERN MUSIC", "CLASSICAL MUSIC", "WESTERN MUSIC" ], "co mmunity_moder_id" : [ "MR. Roy", "MR. Das", "MR Doglus" ], "community_members" : [ 500, 300, 1400 ], "friends" : { "valued_friends_id" : [ "pal", "viki", "john" ], "ban_friends_id" : [ "jalan", "mono j", "evan" ] } } } { "_id" : ObjectId("528f35860fe5e6467e58ae7a"), "user_id" : "user4", "password" : "abczyx", "sex" : "Female", "age" : 22, "date_of_join" : "17/8/2009", "education" : "M.B.B.S.", "profession" : "DOCTOR", "interest" : "SPORTS", "extra" : { "community_name" : [ "ATHELATIC", "GAMES FAN GYES", "FAVOURIT GAMES" ], "community_moder_id" : [ "MR. Paul", "MR. Das", "MR Doglus" ], "community_members" : [ 2500, 2200, 3500 ], "friends" : { "valued_friends_id" : [ "vinod", "viki", "john" ], "ban_friends_id" : [ "jalan", "monoj", "evan" ] } } }

MongoDB (<) menor que - Operador - $lt

Se quisermos buscar documentos da coleção "testtable", que contém o valor de "age" inferior a 19, o seguinte comando MongoDB pode ser usado:

>db.testtable.find({age : {$lt : 19}}).pretty();

Resultado
{ "_id" : ObjectId("528f34950fe5e6467e58ae77"), "user_id" : "user1", "password" : "1a2b3c", "sex" : "Male", "age" : 17, "date_of_join" : "16/10/2010", "education" : "M.C.A.", "profession" : "CONSULTANT", "interest" : "MUSIC", "extra" : { "community_name" : [ "MODERN MUSIC", "CLASSICAL MUSIC", "WESTERN MUSIC" ], "community_moder_id" : [ "MR. Alex", "MR. Dang", "MR Haris" ], "community_members" : [ 700, 200, 1500 ], "friends" : { "valued_friends_id" : [ "kumar", "harry", "anand" ], "ban_friends_id" : [ "Amir", "Raja", "mont" ] } } }

MongoDB (<=) menor ou igual ao operador - $lte

Se quisermos buscar documentos na coleção "testtable" os quais contém o valor de "age" é menor ou igual a 19, o comando seguinte mongodb pode ser usado:

>db.testtable.find({age : {$lte : 19}}).pretty();

db.find () é o comando que exibe os documentos em um formato não estruturado, mas para exibir os resultados de uma forma formatado, basta adicionar o comando pretty().

Equivalente ao comando SQL
SELECT * FROM testtable WHERE age <=19;

Resultado
{ "_id" : ObjectId("528f34950fe5e6467e58ae77"), "user_id" : "user1", "password" : "1a2b3c", "sex" : "Male", "age" : 17, "date_of_join" : "16/10/2010", "education" : "M.C.A.", "profession" : "CONSULTANT", "interest" : "MUSIC", "extra" : { "community_name" : [ "MODERN MUSIC", "CLASSICAL MUSIC", "WESTERN MUSIC" ], "community_moder_id" : [ "MR. Alex", "MR. Dang", "MR Haris" ], "community_members" : [ 700, 200, 1500 ], "friends" : { "valued_friends_id" : [ "kumar", "harry", "anand" ], "ban_friends_id" : [ "Amir", "Raja", "mont" ] } } } { "_id" : ObjectId("528f35450fe5e6467e58ae79"), "user_id" : "user3", "password" : "b1c1d1", "sex" : "Female", "age" : 19, "date_of_join" : "16/10/2010", "education" : "M.C.A.", "profession" : "IT COR.", "interest" : "AR T", "extra" : { "community_name" : [ "MODERN ART", "CLASSICAL ART", "WESTERN ART" ], "community_mo der_id" : [ "MR. Rifel", "MR. Sarma", "MR Bhatia" ], "community_members" : [ 5000, 2000, 1500 ], "friends" : { "valued_friends_id" : [ "philip", "anant", "alan" ], "ban_friends_id" : [ "Amir", "Raja", "mont" ] } } }

Consulta MongoDB utilizando (<) e (>)  operator - $lt e $gt 

Se quisermos buscar documentos do coleção "testtable", que contém o valor de "age" é maior que 17 e menor que 24, o seguinte comando MongoDB pode ser usado:

>db.testtable.find({age : {$lt :24, $gt : 17}}).pretty();

db.find () é o comando que exibe os documentos em um formato não estruturado, mas para exibir os resultados de uma forma formatado, basta adicionar o comando pretty().

Equivalente ao comando SQL

SELECT * FROM testtable WHERE age <24 and age>17;

Resultado
{ "_id" : ObjectId("528f35450fe5e6467e58ae79"), "user_id" : "user3", "password" : "b1c1d1", "sex" : "Female", "age" : 19, "date_of_join" : "16/10/2010", "education" : "M.C.A.", "profession" : "IT COR.", "interest" : "AR T", "extra" : { "community_name" : [ "MODERN ART", "CLASSICAL ART", "WESTERN ART" ], "community_mo der_id" : [ "MR. Rifel", "MR. Sarma", "MR Bhatia" ], "community_members" : [ 5000, 2000, 1500 ], "friends" : { "valued_friends_id" : [ "philip", "anant", "alan" ], "ban_friends_id" : [ "Amir", "Raja", "mont" ] } } } { "_id" : ObjectId("528f35860fe5e6467e58ae7a"), "user_id" : "user4", "password" : "abczyx", "sex" : "Female", "age" : 22, "date_of_join" : "17/8/2009", "education" : "M.B.B.S.", "profession" : "DOCTOR", "interest" : "SPORTS", "extra" : { "community_name" : [ "ATHELATIC", "GAMES FAN GYES", "FAVOURIT GAMES" ], "community_moder_id" : [ "MR. Paul", "MR. Das", "MR Doglus" ], "community_members" : [ 2500, 2200, 3500 ], "friends" : { "valued_friends_id" : [ "vinod", "viki", "john" ], "ban_friends_id" : [ "jalan", "monoj", "evan" ] } } }

terça-feira, 5 de agosto de 2014

Neste tutorial, você vai aprender a implantar uma réplica MongoDB definida para VMs CentOS no Windows Azure e acessá-lo de fora. A seguir estão as tarefas de conseguir isso:

Assine recurso de visualização "máquinas virtuais e redes virtuais". Veja opções de implantação. 
1) Configurar Afinidade Grupo 
2) Criar e configurar as máquinas virtuais 
3) Instalar e executar o MongoDB 
4) Configure o conjunto de réplica

Configurar Afinidade Grupo

O grupo de afinidade precisa ser configurado a partir do portal antigo

1. No novo portal de visualização de Gerenciamento Azure, clique no seu nome de usuário no canto superior direito da tela, em seguida, "Portal Anterior" para mudar para o portal antigo.
2.Uma vez no portal antigo, clique em "Serviços Hospedados, Contas de Armazenamento e CDN"
3.Selecione "Grupos de Afinidade" e depois "Novo Grupo de Afinidade"
4.Na caixa de diálogo "Criar um novo grupo de afinidade", digite um nome de grupo de afinidade, como "mongoaffinitygroup" e escolha um local. Escolha um dos centros de dados Azure mais recentes, como “West US,” “East US” ou “West Europe.”.

Criar e configurar as máquinas virtuais 

Para criar um conjunto de réplicas MongoDB com 3 nós, você irá criar 3 Instances VMs. Para esta etapa, faça o login para o novo portal de visualização, ou a partir do portal antigo, clique em "Visite o Portal Anterior" na parte inferior da página

Criando as Instances

Instance 1

1.No portal, clique em New->Virtual Machine->From Gallery

2.Na página Seleção de OS das VMs, escolha "OpenLogic CentOS 6.2" e clique na próxima seta para continuar

3.Na página de configuração da VM, especifique valores para os parâmetros


- Virtual Machine Name - "mongodbrs1" 
- Novo nome de usuário - ". Mongouser" Este usuário será adicionado ao "sudoers" arquivo de lista 
- Nova caixa de Senha - digite uma senha forte que está de acordo com as especificações do Azure 
- Digite novamente a senha para confirmar 
- Tamanho - Escolha o tamanho apropriado da lista drop-down. Para qualquer coisa, mas instâncias de 
   teste pequenos, escolha um tamanho maior do que médio 
- Deixe "Upload SSH key for Authentication" desmarcada

Clique na seta Next para continuar


4.Na página da VM, especifique valores para os parâmetros necessários


- Selecione "Standalone Virtual Machine" 
- DNS - um prefixo DNS válido por exemplo, "mongodbrs" 
- Storage Account box – escolha a opção "Use Automatically Generated Storage Account" 
- Na caixa "Region/Affinity Group/Virtual Network", selecione o grupo de afinidade criado anteriormente 
  "mongoaffinitygroup"


Clique na seta Next para continuar

5. Na página Opções da VM selecionar "None for Availability Set"
6.Clique no check box para criar a instância VM

Instance 2

Processo semelhante a criação da primeira instância.


1. No portal, clique em  click New->Virtual Machine->From Gallery
2. Na página Seleção de OS para a VM, escolha "OpenLogic CentOS 6.2" e clique em NEXT para continuar 
3. Na página de configuração da VM, especifique valores para os parâmetros 

- Virtual Machine Name - "mongodbrs2" 
- Novo nome de usuário - ". Mongouser" Este usuário será adicionado ao "sudoers" arquivo de lista 
- Nova caixa de Senha - digite uma senha forte que está de acordo com as especificações do Azure 
- Digite novamente a senha para confirmar 
- Tamanho - Escolha o mesmo tamanho de uma instância 
- Deixe "cUpload SSH key for Authentication" desmarcada 

Clique em NEXT para continuar 

4. Na página Modo de VM, especifique valores para os parâmetros necessários 

- Selecione "Connect to Existing Virtual Machine" 
- No menu suspenso escolher o host criado no exemplo 1, neste caso, "mongodbrs1" 
- Conta caixa de armazenamento - escolha a opção "Use Automatically Generated Storage Account" 
- Em "Region/Affinity Group/Virtual Network" deve estar automaticamente ajustado para 
  "mongoaffinitygroup"

Clique em NEXT para continuar 



5.Na página Opções da VM selecionar "None for Availability Set"
6.Marque o box para criar a VM Instance

Instance 3

Processo semelhante para a criação de instância 2., apenas escolha "mongodbrs3" para ser o nome de máquina virtual no passo 3.

Configurando Endpoints
 
Uma vez que as máquinas virtuais estão conectadas você precisa configurar os parâmetros para: 

- Permitir conexão remota 
- Permitir tráfego MongoDB

Instance 1

1. No portal de gerenciamento, clique em máquinas virtuais e clique no nome da instância 1, "mongodbrs1" 2. Agora clique em endpoints 
3.O endpoint ssh deve ser criado automaticamente. Certifique-se que este endpoint esteja definido da seguinte forma:  

- Protocolo - tcp 
- Public Port - 22 
- Porto privado - 22 
- Balanceamento de carga - No

4.Criar um novo Endpoint para MongoDB, clicando em "Add Endpoint" na parte inferior da tela
5.Certifique-se que a opção  "Add Endpoint" está selecionado e clique na seta para ir para a próxima tela


6. Especifique os delathes para o endpoint como abaixo:

- Name : MongoDB-Port
- Protocol : TCP
- Public Port : 27018
- Private Port : 27018

Clique no check box para criar endpoint

A instância deve ter agora endpointss, 1 para SSH e 1 para MongoDB


Precisamos configurar os Endpoints, por exemplo 2 semelhante ao exemplo 1: 

1.No portal de gerenciamento, clique em "virtual machines" e clique no nome da instância 2 
2.Agora clique em "endpoints" 
3.O endpoint ssh deve ser criado automaticamente. Certifique-se de que: 

- Name – SSH
- Protocol – TCP
- Private Port – 22
-  Load Balanced – No

4.Agora clique em Edit Endpoint na parte inferior da tela e defina "Public Port" a 23. Clique no botão "check mark" para atualizar 
5.Criar um novo Endpoint para MongoDB, clicando em "Add Endpoint" na parte inferior da tela 
6.Certifique-se que "Add Endpoint" está selecionado e clique na seta para a direita para ir para a próxima tela
7.Especifique os detalhes do Endpoint como a seguir:

-Name : MongoDB-Port
-Protocol : TCP
-Public Port : 27019
-Private Port : 27019
-Clique em "check mark" para criar o endpoint

A instância deve ter agora dois Endpoints, 1 para SSH e 1 para MongoDB

Instance 3

Criar endpoints para o exemplo 3 semelhante ao exemplo 2, com as seguintes alterações: 

- Na etapa 4, definir a porta pública para 24 
- No passo 7, estabelecer as portas públicas e privadas para ser 27020

A instância deve ter agora dois Endpoints, 1 para SSH e 1 para MongoDB


Update de SO

Utilize este passo opcional para atualizar o sistema operacional em cada uma de suas instâncias VM. Uma vez que os parâmetros da máquina ter sido configurada acima, você precisa se logar em máquinas para atualizá-los. Mais informações sobre este podem ser encontradas em Como Fazer logon em uma máquina virtual rodando Linux.

Use o nome de usuário e senha que você usou ao criar as instâncias de máquinas virtuais.

Uma vez que você estiver conectado à máquina, atualize o sistema operacional executando: sudo yum update e seguir as instruções. Isso pode levar algum tempo.

Ao conectar a instâncias 2 e 3, lembre-se de usar as portas 23 e 24, e não a porta ssh padrão de 22.


Set Up Disks

Uma vez que as instâncias são atualizadas, então você pode anexar um disco de dados para cada uma das instâncias. Os discos de dados irá armazenar os dados reais MongoDB como parte de - dbpath. Mais informações sobre discos de dados Azure pode ser encontrada em Conceitos disco de dados.

Para configurar o disco de dados siga os passos descritos abaixo para cada uma das instâncias que você criou:
1.Anexar um disco vazio de pelo menos 10 GB para a instância, conforme descrito em Como: Anexar um disco vazio <http://www.windowsazure.com/en-us/manage/windows/how-to-guides/attach-a disco / # attachempty>.
2.Inicializar o disco de dados, seguindo os passos descritos em Como inicializar um novo disco de dados em Linux.
3.Após montado o disco, criar um diretório de dados por:
   - Faça logon na instância
   - Em seguida, execute sudo chown `id-u`/mnt/datadrive / para fazer a mongouser o proprietário do
     diretório de dados
   - Execute o seguinte comando: mkdir -p /mnt/datadrive/data

Instalar e executar o MongoDB

Como parte desta etapa, você irá usar o MongoDB oficial, Inc. que fornece pacotes para instalar, configurar e executar MongoDB como um serviço usando YUM. Você deseja instalar como um serviço uma vez que este seria garantir que mongod é iniciado na reinicialização da máquina também. Para mais informações consulte: manual: Instalar MongoDB no RedHat Enterprise, CentOS, Fedora ou </ tutorial / install-mongodb-on-redhat-centos-ou-fedora-linux />.

Instalar o MongoDB

Configurar o MongoDB

Os pacotes instalados no passo anterior configuraram o MongoDB usando o arquivo /etc/mongod.conf em conjunto com o script de controle. Você pode encontrar o script de inicialização em /etc/rc.d /init.d / mongod. Como parte deste passo, você irá editar o arquivo mongod.conf para definir os parâmetros apropriados. Se os parâmetros são comentados, certifique-se de descimentá-los.

Instance 1

1.Conecte-se à instância usando ssh ou PuTTY
2.Como sudo, edite o /etc/mongod.conf para definir os seguintes parâmetros:
port = 27018
dbpath = /mnt/datadrive/data
logpath = /mnt/datadrive/mongod.log
replSet = mongors
3.Salve o arquivo de configuração

Instance 2

1.Conecte-se à instância usando ssh ou PuTTY, lembrando a porta SSH para este nó foi alterada a partir do padrão de 22
2.Como sudo, edite o /etc/mongod.conf para definir os seguintes parâmetros:
port = 27019
dbpath = /mnt/datadrive/data
logpath = /mnt/datadrive/mongod.log
replSet = mongors
3.Salve o arquivo de configuração

Instance 3

1.Conecte-se à instância usando ssh ou PuTTY, lembrando a porta SSH para este nó foi alterada a partir do padrão de 22
2.Como sudo, edite o /etc/mongod.conf para definir os seguintes parâmetros:

port = 27020
dbpath = /mnt/datadrive/data
logpath = /mnt/datadrive/mongod.log
replSet = mongors
3.Salve o arquivo de configuração

Inicie o MongoDB

Depois que os arquivos de configuração foram editados, iniciar o processo de banco de dado "mongod" em cada instância por:

1.Faça logon na instância
2.Execute o seguinte comando para iniciar o processo:
mongod --config /etc/mongod.conf
Isto deve iniciar o processo de mongod

Verifique se o mongod iníciou, pelo arquivo de log usando o comando:
tail --f /mnt/datadrive/mongod.log
A mensagem "waiting for connectionss" no arquivo de log indica que o mongod está instalado e funcionando e esperando por conexões de client. Isso pode demorar um pouco como mongod pré-aloca seus arquivos de diário (Journal)

Configure o conjunto de réplica

Neste momento, você deve ter o mongod executando em todos os 3 nós de suas instâncias. Agora você pode configurar as 3 instâncias como um conjunto de réplicas através da ligação a um dos 3 de dentro ou de fora Azure.

Conecte-se ao processo de execução mongod usando o mongo shell:

1.Se estiver conectado à instância VM digite o seguinte comando, onde a porta é 27018, para instance 1, 27019, para a instance 2 e 27020, para a instance 3:
mongo --port <port number>
2.Se a conexão com o processo de mongod em Azure é a partir de sua máquina local use o seguinte comando:
mongo --host mongodbrs.cloudapp.net --port <port number>
3.No shell mongo digite o seguinte:
> conf = {
   _id : “mongors”,
   members : [
     {_id:0, host:”mongodbrs.cloudapp.net:27018"},
     {_id:1, host:”mongodbrs.cloudapp.net:27019"},
     {_id:2, host:”mongodbrs.cloudapp.net:27020"}]}
> rs.initiate(conf)

4.Isto irá iniciar a inicialização da réplica MongoDB
5.Digite o comando rs.status () para verificar o status do conjunto de réplicas. Após a inicialização bem-sucedida, você deve ver uma das três instances, sendo o "principal" do conjunto e os outros 2 sendo as "Secundárias"

Você já iniciou com sucesso o conjunto de réplicas

Resumo

Neste tutorial você aprendeu como criar um conjunto de máquinas virtuais CentOS em Windows Azure, implantar MongoDB para elas e criar um conjunto de réplicas delas. Você pode acessar este conjunto de qualquer lugar usando a string de conexão
mongodb://mongodbrs.cloudapp.net:27018, .cloudapp.net:27019, .cloudapp.net:27020/?replicaSet=mongors"
Fonte MongoDB


Bancos de dados relacionais tendem a não escalarem muito bem, dentro ou fora da nuvem. Os desenvolvedores não tem certeza de quão grande essas aplicações vão crescer, ou quantas pessoas vão acabar acessando. 

Muitos desenvolvedores de aplicativo em nuvem vão acabar realizando um ato não natural conhecido como "sharding" que seja para dimensionar o banco de dados ou implantar mais de um bancos de dados. Em ambos os casos, o custo para gerenciar os aumentos globais do ambiente em proporção direta com a complexidade do ambiente.

Para contornar esse problema, os desenvolvedores de nuvem têm cada vez mais que se voltar para bancos de dados não baseados em arquiteturas relacionais. Algumas dessas arquiteturas de banco de dados SQL apoiam, mas assim como muitos promovem uma agenda NoSQL utilizando plataformas como Hadoop, CouchDB, MongoDB ou bancos de dados orientados a objetos de propriedade. Por causa da falta de experiência com essas plataformas, muitas organizações optam por chamar esses bancos de dados como um serviço na nuvem, em vez de implantar e gerenciar bancos de dados por conta própria.

Existem várias instâncias de serviços de banco de dados, com quatro das outras mais conhecidas oferecidos pela Amazon, Xeround, IBM e Database.com, uma unidade da Salesforce.com. Xeround, por exemplo, acaba de anunciar que uma versão gratuita de seu banco de dados para aplicações MySQL já está disponível na plataforma de computação em nuvem Rackspace, além do suporte existente para a Amazônia, Joyent, Heroku e Hewlett-Packard, entre outros.

Outros players menos conhecidos que se movimentam neste mesmo espaço é a Cloudant, que oferece um serviço de banco de dados com base em uma plataforma NoSQL CouchDB, que suporta atualmente mais de 7.000 usuários em todo o mundo. De acordo com o fundador e cientista-chefe Cloudant Mike Miller, o que torna a abordagem Cloudant diferente é a sua implementação de uma arquitetura distribuída CouchDB que agora se estende por vários centros de dados em todo o mundo. "Isso nos permite distribuir os dados o mais próximo da borda possível, a fim de certificar-se de latência permanece baixo", disse ele.

Um dos clientes da Cloudant é a Meteor Solutions, um prestador de um serviço de análise online que ajuda as empresas a identificar qual o conteúdo em seus sites dirige com mais sucesso de vendas adicionais e novas aquisições de clientes. De acordo com o CEO Ben Straley da Meteor Solutions , o serviço foi originalmente construído em cima de um banco de dados PostgreSQL de código aberto que ao fornecer os benefícios de uma plataforma de baixo custo em que o lançamento do serviço, não escala muito bem. "Agora podemos lidar com conjuntos de dados maiores", disse ele, "e a transição para o Cloudant foi relativamente indolor."

O fenômeno database-as-a-service não se limita aos bancos de dados NoSQL. A Clustrix, por exemplo, desenvolveu um banco de dados SQL que funciona em um mecanismo de processamento paralelo. Esse banco de dados está agora disponível como um serviço na nuvem Rackspace. De acordo com o CTO da Clustrix, Sergei Tsarev, engines paralelos de processamento da empresa permite a Clustrix abordar petabytes de dados sem ter que reescrever completamente seus aplicativos SQL.

Mas, como o interesse em abordagens NoSQL continua a crescer, a maneira mais fácil de ganhar experiência com a tecnologia é acessar os bancos de dados através de uma plataforma de computação em nuvem, que elimina a necessidade de adquirir uma grande quantidade de infra-estrutura dedicada.

Nem todo mundo vê a necessidade de contar com bases de dados entregues como serviço ao implantar um banco de dados NoSQL na nuvem. Por exemplo, na Alteryx, fornecedora de software de análise, é a construção de um serviço de nuvem com base em seu software e em vez de contar com um serviço de banco de dados, o presidente da Alteryx e COO George Mathew disse que era para usar o banco de dados Open Source de baixo custo NoSQL MongoDB e implantá-lo em uma plataforma de nuvem da Amazon.
"Foi apenas algo que poderíamos claramente apenas fazer a nós mesmos", disse ele. "Além disso, nós queríamos ter certeza de que tinha o controle dos dados."

Mas também há uma escassez de talentos quando se trata de qualquer tipo de banco de dados NoSQL. Segurar profissionais de TI com as habilidades certas é muitas vezes um desafio. Como resultado, muitas organizações precisam contar com um banco de dados como serviço, pelo menos, até que a quantidade de especialização em bancos de dados NoSQL aumente.

Isso não quer dizer que a gestão de um banco de dados NoSQL seja nem de perto tão complexo como
bancos de dados relacionais tradicionais que necessitam de administradores de banco de dados caros. Mas isso não significa que na ausência de qualquer experiência NoSQL um provedor de serviços de banco de dados seja provavelmente o mais seguro, é uma aposta para a empresa média organização de TI.

segunda-feira, 4 de agosto de 2014

Apresentação de Slides mostrando em detalhes e em profundidade tudo sobre MongoDB e NoSQL. 

  • Introdução ao NoSQL e MongoDB 
  • Instalação 
  • Consultas 
  • indexação 
  • Modelagem 
  • Agregação

quinta-feira, 24 de julho de 2014

SQL Server Vs MongoDB


Este estudo apresenta a comparação entre dois bancos de dados, o SQL Server e o MongoDB. Para que houvesse uma justa comparação entre os bancos a mesma estrutura de código foi utilizada. Foram feitos testes com as operações básicas: inserção, exclusão, consulta e alteração, e utilizando a mesma quantidade de registros para ambos os bancos. Os testes demonstraram que o banco de dados MongoDB apresenta velocidade superior ao banco de dados SQL Server.


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ê.

Blog Archive

SmarttNet Solution Provider. Tecnologia do Blogger.

Postagens populares

Twitter MongoDBBrazil

Total de visualizações de página