LinkedIn - SenseiDB

LinkedIn - SenseiDB




O grupo de Engenharia do LinkedIn lançou e tornou open source o SenseiDB, um banco de dados distribuído e semiestruturado. O SenseiDB é a tecnologia que está por trás da infraestrutura de pesquisas do LinkedIn e dá sustentação à sua página principal, ao LinkedIn Signals e a outros recursos de pesquisa do portal, como as buscas de pessoas e empresas. O SenseiDB foi desenvolvido internamente para atender a necessidades da empresa, e agora teve seu código aberto, passando a integrar ao projeto "guarda-chuva" LinkedIn SNA, focado em buscas, rede de contatos e análise.

O SenseiDB é um banco de dados NoSQL, focado em altas taxas de atualização e consultas semiestruturadas complexas. Os usuários já familiarizados com o Lucene e o Solr da Apache reconhecerão vários dos conceitos subjacentes ao SenseiDB. O SenseiDB é implantado em clusters de vários nós (nodes), sendo que cada nó pode conter N fragmentos de dados. Os nós são gerenciados através do Apache Zookeeper, que mantém a configuração existente e transmite alterações (por exemplo, modificações de topologia) para todo o grupo de nós. Cada cluster do SenseiDB também requer um esquema para definir o modelo de dados que será usado.

A obtenção de dados para alimentar um cluster SenseiDB é feita apenas através de gateways (não há um método "INSERT"); cada cluster é ligado a um único gateway. Este é um dos pontos críticos de entendimento desta tecnologia, já que o SenseiDB não trata a atomicidade e o isolamento. Estas características são garantidas externamente, no nível do gateway, que deve garantir que o fluxo de dados se comporta da maneira esperada. Os gateways já integrados são:


  • A partir de um arquivo;
  • Originados de uma fila Java Message Service (JMS);
  • Via JDBC;
  • Vindo do Apache Kafka.


Os desenvolvedores também podem implementar gateways personalizados. Para exemplificar esta implementação, é fornecido um gateway de exemplo que obtém seus dados a partir de atualizações feitas no Twitter.

Tendo o fluxo de dados de entrada em funcionamento e já alimentando os dados do cluster, o SenseiDB permite que sejam realizadas consultas "fragmentadas" (faceted), de acordo com o esquema definido. Para esta finalidade, é oferecida uma API REST, inspirada na DSL de consultas do ElasticSearch, que pode ser acessada por qualquer cliente HTTP. O SenseiDB vem acompanhado de componentes em Java e Python, que encapsulam essa API. Em breve também será disponibilizada uma versão dos componentes em Ruby.

O SenseiDB oferece ainda a BQL (Linguagem de Consulta e Navegação) como um método alternativo de consulta. A BQL é uma linguagem similar ao SQL (contendo apenas instruções SELECT), que facilita a consulta a um banco SenseiDB. Um console gráfico para web é fornecido como parte da instalação do cluster, permitindo inspecionar e depurar consultas BQL.

Para informações mais detalhadas sobre o SenseiDB, consulte a documentação geral, os Javadocs e o Wiki do projeto. O código-fonte está hospedado no GitHub.



Envie seus comentários e sugestões e compartilhe este artigo!

brazilsalesforceeffectiveness@gmail.com

✔ Brazil SFE®✔ Brazil SFE®´s Facebook´s Profile  Google+   Author´s Professional Profile  ✔ Brazil SFE®´s Pinterest       ✔ Brazil SFE®´s Tweets

Nenhum comentário:

Postar um comentário

diHITT - Notícias