Arquivo da categoria: MongoDB

NoSQL Essencial – Um Guia Conciso para o Mundo Emergente da Persistência Poliglota

Nota do livro: 9.

Conteúdo
A necessidade de se lidar com volumes cada vez maiores de dados é um fator que motiva adotar uma nova classe de bancos de dados não relacionais, NoSQL. Os defensores dos bancos de dados NoSQL alegam que estes podem ser utilizados para criar sistemas com melhor desempenho, escalabilidade e mais fáceis de programar. O livro NoSQL Essencial é uma introdução concisa, porém completa, a essa tecnologia emergente em rápida ascensão.
Pramod J. Sadalage e Martin Fowler explicam como bancos de dados NoSQL funcionam e as formas pelas quais podem ser uma alternativa superior a um sistema tradicional de gerenciamento de banco de dados relacional. Os autores apresentam um guia rápido sobre os conceitos que você precisa conhecer para avaliar se os bancos de dados NoSQL são apropriados a suas necessidades e, se forem, quais tecnologias você deve explorar mais detalhadamente.

A primeira parte do livro concentra-se em conceitos básicos, incluindo modelos de dados sem esquema, agregados, novos modelos de distribuição, teorema CAP e map-reduce. Na segunda parte, os autores exploram questões de arquitetura e projeto associadas à implementação de NoSQL. Também apresentam casos de uso reais, que mostram os bancos de dados NoSQL em ação, e fornecem exemplos representativos utilizando Riak, MongoDB, Cassandra e Neo4j.

Além disso, ao trazer o trabalho pioneiro de Pramod Sadalage, NoSQL Essencial mostra como implementar projetos de forma evolutiva com migração de esquemas: uma técnica fundamental a ser utilizada em bancos de dados NoSQL. O livro termina descrevendo como o NoSQL se estabelece em uma nova era de persistência poliglota, em que diversos mundos de armazenamento de dados coexistem e os arquitetos podem escolher a tecnologia mais otimizada para cada tipo de acesso a dados.

Os tópicos examinados incluem:

– Avaliando para quais aplicações corporativas o NoSQL é (e não é) apropriado.

– Entendendo os ajustes na arquitetura associados à instalação de NoSQL.

– Utilizando o NoSQL para simplificar o desenvolvimento, evitando o problema do mapeamento de dados entre estruturas de dados na memória e sistemas de bancos de dados relacionais.

– Comparando os principais produtos NoSQL atuais.

– Explorando linguagens de consulta: CQL e Cypher.

– Gerenciando desempenho, confiabilidade, disponibilidade e recuperação.

– Utilizando o NoSQL em ambientes de desenvolvimento ágil.

– Aplicando o NoSQL em pesquisa/recuperação, gerenciamento de metadados, análise de texto, redes sociais, inteligência de negócio e serviços financeiros.

– Clusterizando bancos de dados NoSQL para lidar com problemas relacionados a grandes quantidades de dados com maior eficácia em relação aos custos.

– Como o teorema CAP se aplica ao raciocínio sobre consistência, disponibilidade e latência.

– Como o padrão map-reduce permite que as computações sejam paralelizadas em um cluster.

– Por que o NoSQL é um termo sem significado definido.

Rails + MongoDB Tutorial. Quickstart.

This is a Quickstart Tutorial for Rails + MongoDBRuby on Rails and MongoDB, a document based database, is a pretty good fit. It is very easy to integrate MongoDB with Rails. If you want to know how to install MongoDB, check out this article here: Installing MongoDB on Mac OS X Lion. Or this here: Installing MongoDB on Linux.

I assume you are familiar with Ruby on Rails ?

There are several GEMs to interact with MongoDB. I used the MongoID GEM. That worked pretty good for me. Just add this to your Gemfile:
[code type=ruby]
gem ‘bson_ext’, ‘1.6.0’  
gem ‘mongo’, ‘1.6.0’
gem ‘mongoid’, ‘2.4.6’

And run “bundle install” on your project, to load the GEM from the internet. And add the file mongoid.yml to your config folder:
[code type=ruby]
development:
    host: localhost
    database: myapp_dev

test:
    host: localhost
    database: myapp_test

production:
    host: localhost
    database: myapp_prod

This is the file where you are configuring the access to the database. If your mongodb instance is running locale you don’t need any username or password settings. Now you have to load the mongoid.yml file. You can do that by adding this line to your application.rb inside of the “class Application”.
[code type=ruby]Mongoid.load!(“config/mongoid.yml”)

Than just add a new Model to your project. For example “User”. That could look like that:
[code type=ruby]
class User
include Mongoid::Document
include Mongoid::Timestamps
field :username, type: String
field :firstname, type: String
field :llastname, type: String
field :email, type: String
filed :age, type: Integer
end

That’s it. You just have to include the Mongoid:Document.
[code type=ruby]include Mongoid::Document

And define your fields! Now you can create a new user and save it like that:
[code type=ruby]
user = User.new
user.username = “mike”
user.firstname = “Mike”
user.lastname = “Boby”
user.age = 44
user.save

Or make a query like that:
[code type=ruby]user = User.where( username: “mike”)

Check out the Criteria API for MongoID. That is pretty straight forward. Worked pretty well for me.

Rails + MongoDB Tutorial. Quickstart.