Como utilizar DynamoDB dentro com Java

Posted by : at

Category : dynamodb   java


Objetivo do projeto

O projeto criado mostra como é simples fazer uma chamada dentro do Java, mesmo sem um framework como Spring Boot ou Quarkus. Através dele foi possível verificar com a própria AWS sobre tempo de salvar e recuperar um dado através do DAX.

Pré requisitos

  • Java 11
  • Maven

Configuração inicial

Para fazer a configuração é importante adicionar no projeto do Maven as seguintes dependências:

  • amazon-dax-client
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>amazon-dax-client</artifactId>
        <version>1.0.221844.0</version>
    </dependency>
  • amazon-dax-client
<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>amazon-dax-client</artifactId>
    <version>1.0.221844.0</version>
</dependency>
  • aws-java-sdk-bom
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-bom</artifactId>
                <version>1.11.889</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

Notem que pode ser adicionado o valor 1.11.889 como variável de propriedade para evitar a repetição.

O projeto

Agora o projeto vai ser dividido em MainClass que vai ter os códigos que não tem ligação com o Client do DynamoDB. A segunda classe será DynamoClientHelper que possui as chamadas para construir o cliente e executar as ações no Dynamo.

MainClass

A MainClass pode ser substituído por uma classe sua como um serviço que vai consultar o DynamoDB para tomar decisões. Como foi feito nesta classe as chamadas o cliente os parâmetros como accessKey e secretKey foram repassados via argumentos.

Caso queira rodar o projeto sem alterações os parameters devem ficar na seguinte ordem:

"NOME_DA_TABELA" "ACCESS_KEY" "SECRET_KEY" "DAX_ENDPOINT"

DynamoClientHelper

O client irá realizar tem os métodos para interagir com o DynamoDB, como:

  • getDaxClient Recebe a url de endpoint do Dax e devolve um DynamoClient que é utilizado para operações.

  • getDynamoClient Recebe as credenciais da AWS para conectar ao DynamoDB da conta e retorna um client.

  • writeData Recebe a nome da tabela a ser utilizada, um client que foi gerado, e o JSON de data.

  • retrieveItem Recebe a nome da tabela a ser utilizada, um client que foi gerado, e o ID do ‘item’ a ser retornado.

  • queryIndexCount Recebe a nome da tabela a ser utilizada, um client que foi gerado, o nome do index, e ucode para value na query, retorna quantidade de itens no index.

  • deleteItem Recebe a nome da tabela a ser utilizada, um client que foi gerado, e o ID do item a ser deletado.

Conclusão

Apesar de ser muito simples o client criado, através dele foi possível fazer alguns testes, e verificar o tempo que é gasto pelo DAX quando um item é inserido até que ele apareça na busca via index. Além disto pode ser feita algumas melhorias em que é colocado o DAX como client principal e caso falhe chame o via outra opção. Coisa importante é que através desse client já é possível fazer o update, utilizando o método writeData utilizando o mesmo ID.

Alterando poucas coisas no client já temos um CRUD completo e atender vários requisitos.

Want to follow me?

You can get in contact me on this social media.

GitHub: luizleite-hotmart

Twitter: luizleite_

Twitch: coffee_and_code

Linkedin: luizleiteoliveira


About Luiz Leite
Luiz Leite

Oi Eu sou o Luiz, principal na Hotmart e tenho esse blog para contar o que eu aprendo diariamente.

Email : xp.luiz@gmail.com

Website : https://luizleiteoliveira.github.io

About Luiz Leite Oliveira

Hi, my name is Luiz Leite. This is the site where I share some things

Star -->
Useful Links