[SP-pm] [OT] NoSQL
Thiago Rondon
thiago at aware.com.br
Tue Jun 1 17:11:13 PDT 2010
Pessoal,
Cometi um erro gravíssimo aí embaixo... Não é gráficos, e sim grafos.
E aproveitando, segue mais um ... http://github.com/twitter/flockdb
-Thiago Rondon
Em 01/06/10 20:06, Thiago Rondon escreveu:
> Segue minha opnião sobre ....
>
> O movimento Not Only SQL é muito interessante no meu ponto de vista
> técnico, pois hoje possuímos mais alternativas na hora de estudar uma
> determinada implementação em relação aos dados. Não vou entrar no
> mérito sobre questões polemicas relacionadas as escolhas de cada
> desenvolvedor.
>
> Porém aqui na Aware, estamos com experiências ótimas relacionadas a
> esta gama de banco de dados alternativos que vem surgindo e cada vez
> mais me interessam, principalmente em casos de análises comparativas,
> escalabilidade, performance e replicação.
>
> Eu considero que este movimento, existam alguns bancos de dados
> interessantes que podem ser classificados nas seguintes "categorias"
> de modo "geral":
>
> * Chave/Valor:
> São utilizados principalmente para escalabilidade de dados, no geral é
> os que você vai utilizar para evitar problemas relacionado a demoras
> de análises constantes no teu cenário, e etc, etc.
>
> Me parece que os mais utilizados são: Oracle Berkeley DB (no mundo
> corporativo), memcache, redis, ...
>
> Porém para quem tiver curiosidade, eu recomendo muito a leitura do
> projeto "Voldemort": http://project-voldemort.com/.
>
> * Documentos:
> Lembram do Lotus Notes ? Modelo K-V. Estas são muito interessantes de
> serem utilizados quando você mantem bancos de dados em XML ou JSON por
> exemplo, onde na grande maioria existe uma 'metodologia' no qual você
> tem um ID (K) no qual contém todas as entidades/atributos (V) que você
> desejar.
>
> Este é um caso muito interessante onde você realmente irá armazenar
> documentos, e necessita de uma flexibilidade constante, no qual uma
> modelagem SQL (como um EAV) irá gerar muitos obstáculos de
> desenvolvimento e manutenção.
>
> Obs.: Talvez este tipo seja o mais polemico, pois muitos DBAs
> acreditam que alguns desenvolvedores não vão saber encaixar nos casos
> que podem ser usados, irão usar para tudo. @$%@#%@!!
>
> Talvez os mais usados sejam : CouchDB e o MongoDB.
>
> Para os curiosos, a documentação do Riak (outra alternativa) é ótima:
> http://riak.basho.com/
>
> * "Colunas":
> Este é o tipo de banco de dados que vem me chamando mais atenção em
> relação a organização de informação, e não em performance,
> principalmente para elaboração de análises comparativas...
>
> O mais usado me parece que é o Vertica (http://www.vertica.com/). O
> LucidDB que é bem "comunitário", o InfoBright que é uma empresa que
> trabalha com análises, bancos OLAT e etc... e o MonetDB.
>
> * "Gráficos":
> Para estes: objetos são diferentes de registros, baseado em estruturas
> de nós, K-V em ambos, e etc, etc.
>
> O fator mais interessante neste tipo de banco de dados, é o
> relacionamento entre os nós.. Montar uma matrix de informação aqui é
> muito trivial, por exemplo em relacionamento de redes sociais...
>
> Como eu comentei sobre os bancos baseados em documento, aqui também
> não há necessidade de um schema fixo, no qual isto facilita a
> manutenção e a evolução da sua aplicação no qual é baseado em
> informações "matrix" por exemplo....
>
> VertexDB, e talvez o mais conhecido no momento "Neo4j".
>
> * "BIGs clones"
> Inspirados no BigTable paper, alguns sugiram com o HBase, Hypertable, ...
>
> * Minha conclusão.
>
> Agora, a explicação destas tendencias é um pouco obvia, mas vou falar:
>
> 1. Aumento dos bancos de informações em praticamente todos os cenários.
> 2. O modelo de apps agora é baseado em grande número de conexões
> simultâneas.
> 3. A generalização de modelo de dados está ficando complicada de se
> manter em muitos cenários.
>
> Como eu tentei colocar, estes bancos que estão surgindo não são
> concorrência e em muitos casos nem alternativas para o modelo RDBMS, o
> interessante que estes bancos oferecem para você uma flexibilidade
> para poder tratar mais usuários, de forma mais rápida e simples.
>
> Na minha humilde opinião, *em muitos casos* é essencial você ter um
> banco de dados relacional por trás das informações da sua organização,
> porém com estas alternativas você pode criar uma linguagem uniforme no
> seu aplicativo para poder suportar mais alternativas para armazenar
> dados, seja ela para elaborar análises, melhorar a performance, ou
> guardar informações que não necessitam sempre serem ajustadas.
>
> Meus centavos,
> -Thiago Rondon
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
>
More information about the SaoPaulo-pm
mailing list