Tutorial: criar uma conta da API do Cassandra no Azure Cosmos DB por meio de um aplicativo Java para armazenar dados de chave/valor

APLICA-SE A: Cassandra

Como desenvolvedor, é possível ter aplicativos que usam os pares de chave/valor. Você pode usar uma conta da API do Cassandra no Azure Cosmos DB para armazenar e consultar dados de chave/valor. Este tutorial descreve como usar um aplicativo Java para criar uma conta da API do Cassandra no Azure Cosmos DB, adicionar um banco de dados (também chamado de keyspace) e adicionar uma tabela. O aplicativo Java usa o driver Java para criar um banco de dados do usuário que contém detalhes como ID de usuário, nome de usuário e cidade do usuário.

Este tutorial cobre as seguintes tarefas:

  • Criar uma conta de banco de dados do Cassandra
  • Obter uma cadeia de conexão da conta
  • Criar dependências e projeto Maven
  • Adicionar um banco de dados e uma tabela
  • Executar o aplicativo

Pré-requisitos

Criar uma conta de banco de dados

  1. No menu do portal do Azure ou na Home page, selecione Criar um recurso.

  2. Na página Novo, pesquise pelo Azure Cosmos DB e selecione-o.

  3. Na página Azure Cosmos DB, selecione Criar.

  4. Na página API, selecione Criar na seção Cassandra.

    A API determina o tipo de conta a ser criada. O Azure Cosmos DB oferece cinco APIs: NoSQL para bancos de dados de documentos, Gremlin para bancos de dados de grafo, MongoDB para bancos de dados de documentos, Tabela do Azure e Cassandra. Você deve criar uma conta separada para cada API.

    Selecione Cassandra, porque neste guia de início rápido você está criando uma tabela que funciona com a API para Cassandra.

    Saiba mais sobre a API para Cassandra.

  5. Na página Criar uma Conta do Azure Cosmos DB, insira as configurações básicas da nova conta do Azure Cosmos DB.

    Configuração Valor Descrição
    Subscription Sua assinatura Selecione a assinatura do Azure que você deseja usar para essa conta do Azure Cosmos DB.
    Grupo de recursos Create new

    Em seguida, digite o mesmo nome que o Nome da Conta
    Selecione Criar novo. Em seguida, insira um novo nome de grupo de recursos para a conta. Para simplificar, use o mesmo nome que o Nome da Conta do Azure Cosmos DB.
    Nome da Conta Insira um nome exclusivo Insira um nome exclusivo para identificar a conta do Azure Cosmos DB. O URI da sua conta será cassandra.cosmos.azure.com acrescentado ao nome da conta exclusivo.

    O nome da conta pode usar apenas letras minúsculas, números e hifens (-) e deve ter de 3 a 31 caracteres.
    Location A região mais próxima dos usuários Selecione uma localização geográfica para hospedar a sua conta do Azure Cosmos DB. Use a localização mais próxima dos usuários para fornecer a eles acesso mais rápido aos dados.
    Modo de capacidade Taxa de transferência provisionada ou sem servidor Selecione Taxa de transferência provisionada para criar uma conta no modo taxa de transferência provisionada. Selecione Sem servidor para criar uma conta no modo sem servidor.
    Aplicar o desconto por nível gratuito do Azure Cosmos DB Aplicar ou Não aplicar Com o nível gratuito do Azure Cosmos DB, você receberá os primeiros 1000 RU/s e 25 GB de armazenamento gratuitamente em uma conta. Saiba mais sobre o nível gratuito.
    Limitar a taxa de transferência total da conta Selecione para limitar a taxa de transferência da conta Isso será útil se você quiser limitar a taxa de transferência total da conta a um valor específico.

    Observação

    Você pode ter no máximo uma conta do nível gratuito do Azure Cosmos DB por assinatura do Azure e deve aceitar ao criar a conta. Se você não vir a opção de aplicar o desconto por nível gratuito, significa que outra conta da assinatura já foi habilitada com o nível gratuito.

    A página da nova conta do Azure Cosmos DB for Apache Cassandra

  6. Na guia Distribuição global, configure os detalhes a seguir. Você pode deixar os valores padrão para a finalidade deste guia de início rápido:

    Configuração Valor Descrição
    Redundância geográfica Desabilitar Habilite ou desabilite a distribuição global em sua conta emparelhando sua região com uma região de par. Você poderá adicionar mais regiões à sua conta posteriormente.
    Gravações de várias regiões Desabilitar A capacidade de gravação de várias regiões permite que você aproveite a taxa de transferência provisionada para seus bancos de dados e contêineres em todo o mundo.
    Zonas de Disponibilidades Desabilitar As Zonas de Disponibilidade são localizações isoladas exclusivas em uma região do Azure. Cada zona é composta por um ou mais datacenters equipados com energia, resfriamento e rede independentes.

    Observação

    As seguintes opções não estarão disponíveis se você selecionar Sem servidor como Modo de capacidade:

    • Aplicar desconto por nível gratuito
    • Redundância geográfica
    • Gravações de várias regiões
  7. Opcionalmente, você pode configurar detalhes adicionais nas seguintes guias:

    • Rede – configurar o acesso de uma rede virtual.
    • Política de Backup – configurar a política de backup periódica ou contínua.
    • Criptografia – use a chave gerenciada por serviço ou uma chave gerenciada pelo cliente.
    • Marcas – marcas são pares nome/valor que permitem categorizar recursos e exibir a cobrança consolidada por meio da aplicação da mesma marca a vários recursos e grupos de recursos.
  8. Selecione Examinar + criar.

  9. Examine as configurações da conta e selecione Criar. São necessários alguns minutos para criar a conta. Aguarde até que a página do portal exiba Sua implantação está concluída.

    O painel Notificações do portal do Azure

  10. Selecione Ir para recurso para ir para a página da conta do Azure Cosmos DB.

Obter os detalhes de conexão da sua conta

Obter as informações de cadeia de conexão do portal do Azure e copiá-lo para o arquivo de configuração de Java. A cadeia de conexão permite que seu aplicativo se comunique com o banco de dados hospedado.

  1. No portal do Azure, acesse sua conta do Azure Cosmos DB.

  2. Abra o painel Cadeia de Conexão.

  3. Copie os valores de PONTO DE CONTATO, PORTA, NOME DE USUÁRIO, e SENHA PRIMÁRIA a serem usados nas próximas etapas.

Criar o projeto e as dependências

O projeto de exemplo de Java que você usa neste artigo é hospedado no GitHub. Você pode executar as etapas neste documento ou baixar o exemplo do repositório azure-cosmos-db-cassandra-java-getting-started.

Depois de baixar os arquivos, atualize as informações de cadeia de conexão dentro do arquivo java-examples\src\main\resources\config.properties e execute-o.

cassandra_host=<FILLME_with_CONTACT POINT> 
cassandra_port = 10350 
cassandra_username=<FILLME_with_USERNAME> 
cassandra_password=<FILLME_with_PRIMARY PASSWORD> 

Use as seguintes etapas para criar o exemplo do zero:

  1. No terminal ou prompt de comando, crie um novo projeto Maven chamado Cassandra-demo.

    mvn archetype:generate -DgroupId=com.azure.cosmosdb.cassandra -DartifactId=cassandra-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 
    
  2. Localize a pasta cassandra-demo. Usando um editor de texto, abra o arquivo pom.xml que foi gerado.

    Adicione as dependências do Cassandra e crie os plug-ins exigidos pelo seu projeto, conforme mostrado no arquivo pom.xml.

  3. Na pasta cassandra-demo\src\main, crie uma nova pasta chamada resources. Na pasta de recursos, adicione os arquivos config.properties e log4j.properties:

    • O arquivo config.properties armazena os valores da chave e do ponto de extremidade da conta da API do Cassandra.

    • O arquivo log4j.properties define o nível de registro em log necessário para interagir com a API do Cassandra.

  4. Navegue até a pasta src/main/java/com/azure/cosmosdb/cassandra/. Dentro da pasta de cassandra, crie outra pasta chamada utils. A nova pasta armazena as classes de utilitário necessárias para se conectar à conta de API do Cassandra.

    Adicione a classe CassandraUtils para criar o cluster e para abrir e fechar as sessões de Cassandra. O cluster se conecta à conta da API do Cassandra no Azure Cosmos DB e retorna uma sessão para acesso. Use a classe Configurações para ler informações de cadeia de conexão do arquivo config.properties.

  5. O exemplo de Java cria um banco de dados com informações do usuário, como nome de usuário, ID de usuário e cidade do usuário. Você precisa definir get e métodos para acessar os detalhes do usuário na função principal.

    Crie uma classe User.java na pasta src/main/java/com/azure/cosmosdb/cassandra/ com métodos get e set.

Adicionar um banco de dados e uma tabela

Esta seção descreve como adicionar um banco de dados (keyspace) e uma tabela por meio de CQL.

  1. Na pasta src\main\java\com\azure\cosmosdb\cassandra, crie uma nova pasta chamada repository.

  2. Crie a classe Java UserRepository e adicione o seguinte código a ela:

    package com.azure.cosmosdb.cassandra.repository; 
    import java.util.List; 
    import com.datastax.driver.core.BoundStatement; 
    import com.datastax.driver.core.PreparedStatement; 
    import com.datastax.driver.core.Row; 
    import com.datastax.driver.core.Session; 
    import org.slf4j.Logger; 
    import org.slf4j.LoggerFactory; 
    
    /** 
     * Create a Cassandra session 
     */ 
    public class UserRepository { 
    
        private static final Logger LOGGER = LoggerFactory.getLogger(UserRepository.class); 
        private Session session; 
        public UserRepository(Session session) { 
            this.session = session; 
        } 
    
        /** 
        * Create keyspace uprofile in cassandra DB 
         */ 
    
        public void createKeyspace() { 
             final String query = "CREATE KEYSPACE IF NOT EXISTS uprofile WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'datacenter1' : 1 }"; 
            session.execute(query); 
            LOGGER.info("Created keyspace 'uprofile'"); 
        } 
    
        /** 
         * Create user table in cassandra DB 
         */ 
    
        public void createTable() { 
            final String query = "CREATE TABLE IF NOT EXISTS uprofile.user (user_id int PRIMARY KEY, user_name text, user_bcity text)"; 
            session.execute(query); 
            LOGGER.info("Created table 'user'"); 
        } 
    } 
    
  3. Localize a pasta src\main\java\com\azure\cosmosdb\cassandra e cria uma nova subpasta chamada examples.

  4. Em seguida, crie a classe Java UserProfile. Essa classe contém o método principal que chama os métodos createKeyspace e createTable que você definiu anteriormente:

    package com.azure.cosmosdb.cassandra.examples; 
    import java.io.IOException; 
    import com.azure.cosmosdb.cassandra.repository.UserRepository; 
    import com.azure.cosmosdb.cassandra.util.CassandraUtils; 
    import com.datastax.driver.core.PreparedStatement; 
    import com.datastax.driver.core.Session; 
    import org.slf4j.Logger; 
    import org.slf4j.LoggerFactory; 
    
    /** 
     * Example class which will demonstrate following operations on Cassandra Database on CosmosDB 
     * - Create Keyspace 
     * - Create Table 
     * - Insert Rows 
     * - Select all data from a table 
     * - Select a row from a table 
     */ 
    
    public class UserProfile { 
    
        private static final Logger LOGGER = LoggerFactory.getLogger(UserProfile.class); 
        public static void main(String[] s) throws Exception { 
            CassandraUtils utils = new CassandraUtils(); 
            Session cassandraSession = utils.getSession(); 
    
            try { 
                UserRepository repository = new UserRepository(cassandraSession); 
                //Create keyspace in cassandra database 
                repository.createKeyspace(); 
                //Create table in cassandra database 
                repository.createTable(); 
    
            } finally { 
                utils.close(); 
                LOGGER.info("Please delete your table after verifying the presence of the data in portal or from CQL"); 
            } 
        } 
    } 
    

Executar o aplicativo

  1. Abra um prompt de comando ou uma janela de terminal. Cole o seguinte bloco de código.

    Esse código altera o diretório (cd) para o caminho da pasta onde você criou o projeto. Em seguida, ele executa o comando mvn clean install para gerar o arquivo cosmosdb-cassandra-examples.jar dentro da pasta de destino. Por fim, ele executa o aplicativo Java.

    cd cassandra-demo
    
    mvn clean install 
    
    java -cp target/cosmosdb-cassandra-examples.jar com.azure.cosmosdb.cassandra.examples.UserProfile 
    

    A janela do terminal exibe notificações de que o keyspace e a tabela foram criados.

  2. Agora, no portal do Azure, abra o Data Explorer para confirmar que o keyspace e a tabela foram criadas.

Próximas etapas

Neste tutorial, você aprendeu a criar uma conta da API do Cassandra no Azure Cosmos DB, um banco de dados e uma tabela usando um aplicativo Java. Prossiga agora para o próximo artigo: