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

Blog Archive

SmarttNet Solution Provider. Tecnologia do Blogger.

Postagens populares

Twitter MongoDBBrazil

Total de visualizações de página