[JNoQL] Começando com Diana API de Chave-valor

Umas das API que existem no Diana, camada de comunicação do JNoSQL, é a camada de chave valor. O objetivo desse artigo é falar rapidamente sobre essa API para esse tipo de banco de dados.

No nosso caso será utilizado o Cassandra, assim:

<dependency>
  <groupId>org.jnosql.diana</groupId>
  <artifactId>hazelcast-driver</artifactId>
  <version>0.0.1</version>
</dependency>

p.s: Atualmente é necessário adicionar o repositório do JNoSQL para ter acesso as suas dependências:

<repositories>
  <repository>
    <id>jnsoql-repo</id>
    <name>JNoSQL Maven Repository</name>
    <url>https://dl.bintray.com/jnosql/maven/</url>
    <layout>default</layout>
  </repository>
</repositories>

As classes da API de documento seguem a seguinte estrutura:

KeyValueConfiguration: Classe responsável pela configuração e conexão com o banco de dados, uma vez esse setup varia fortemente em cada banco de dados. Ela costuma ter formato variável
BucketManagerFactory: classe responsável pela criação de uma interface Manager
BucketManager: assim como no JPA, essa classe é a responsável pelo gerenciamento da entidade.
KeyValueEntity: uma entidade chave valor, composto pela chave e seu respectivo valor.

Com o driver do Hazelcast é possível realizar o CRUD de maneira simples:

public class App {
    public static void main(String[] args) {

        KeyValueConfiguration configuration = new HazelCastKeyValueConfiguration();
        try (BucketManagerFactory managerFactory = configuration.get()) {
            BucketManager bucket = managerFactory.getBucketManager("bucket");
            bucket.
            List<String> list = managerFactory.getList("bucketList", String.class);
            Set<String> set = managerFactory.getSet("bucketSet", String.class);
            Map<String, Integer> map = managerFactory.getMap("bucketList", String.class, Integer.class);
            Queue<String> queue = managerFactory.getQueue("queueList", String.class);
            bucket.put("key", "value");
            Optional<Value>
            value = bucket.get("key");
        }
    }
}

Uma boa discussão é a relação entre o Jcache e uma api para chave-valor, de uma maneira bem simples os bancos de chave-valor além de possuirem propósitos diferentes eles, geralmente, possuem também estruturas especiais, por exemplo, List, Queue, Set, Map ou até mesmo uma específica como o Racking que o Redis possui. Assim, além do suporte ao Bucket e as estruturas especiais pré-definidas (List, Queue, Set e Map) a api do JNoSQL será extensível o suficiente para ter estruturas especiais. Com isso concluímos o artigo falando da camada de comunicação do projeto JNoSQL para colunas.
Referências:

https://wiki.eclipse.org/JNoSQL
https://www.gitbook.com/book/jnosql/jnosql-book/details
https://github.com/JNOSQL/diana-demos

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s