Partilhar via


Tutorial: Criar uma API para a conta Cassandra no Azure Cosmos DB usando um aplicativo Java para armazenar dados de chave/valor

APLICA-SE A: Cassandra

Como desenvolvedor, você pode ter aplicativos que usam pares chave/valor. Você pode usar uma API para a conta Cassandra no Azure Cosmos DB para armazenar os dados de chave/valor. Este tutorial descreve como usar um aplicativo Java para criar uma API para a conta 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 de usuário que contém detalhes como ID do usuário, nome de usuário e cidade do usuário.

Este tutorial abrange as seguintes tarefas:

  • Criar uma conta de base de dados Cassandra
  • Obter a cadeia de ligação da conta
  • Criar um projeto Maven e dependências
  • Adicionar uma base de dados e uma tabela
  • Executar a aplicação

Pré-requisitos

Criar uma conta de base de dados

  1. A partir do menu do portal do Azure ou a partir da Home page, selecione Criar um recurso.

  2. Na página Novo, procure e selecione Azure Cosmos DB.

  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 criar. O Azure Cosmos DB fornece cinco APIs: NoSQL para bancos de dados de documentos, Gremlin para bancos de dados gráficos, 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 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 Conta do Azure Cosmos DB, insira as configurações básicas para a nova conta do Azure Cosmos DB.

    Definição valor Description
    Subscrição a sua subscrição Selecione a subscrição do Azure que pretende utilizar para esta conta do Azure Cosmos DB.
    Grupo de Recursos Criar nova

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

    O nome da conta pode usar apenas letras minúsculas, números e hífenes (-), e deve ter entre 3 e 31 caracteres.
    Location A região mais próxima dos seus utilizadores Selecione a localização geográfica para alojar a sua conta do Azure Cosmos DB. Utilize a localização mais próxima dos utilizadores para lhes dar o 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 de taxa de transferência provisionada. Selecione Serverless para criar uma conta no modo serverless .
    Aplicar desconto de nível gratuito do Azure Cosmos DB Candidatar-se 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 esta opção para limitar a taxa de transferência da conta Isso é útil se você quiser limitar a taxa de transferência total da conta a um valor específico.

    Nota

    Você pode ter até uma conta gratuita do Azure Cosmos DB por assinatura do Azure e deve optar por participar ao criar a conta. Se você não vir a opção de aplicar o desconto de nível gratuito, isso significa que outra conta na assinatura já foi habilitada com o nível gratuito.

    A nova página de conta do Azure Cosmos DB para Apache Cassandra

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

    Definição valor Description
    Georredundância Desativar Habilite ou desative a distribuição global em sua conta emparelhando sua região com uma região par. Pode adicionar mais regiões à sua conta mais tarde.
    Escritas de várias regiões Desativar O recurso de gravação em 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 Disponibilidade Desativar As Zonas de Disponibilidade são locais isolados dentro de uma região do Azure. Cada zona é composta por um ou mais datacenters equipados com energia, refrigeração e rede independentes.

    Nota

    As seguintes opções não estarão disponíveis se você selecionar Serverless como o modo de Capacidade:

    • Aplicar Desconto de Escalão Gratuito
    • Georredundância
    • Escritas de várias regiões
  7. Opcionalmente, você pode configurar detalhes adicionais nas seguintes guias:

    • Rede - Configure o acesso a partir de uma rede virtual.
    • Política de backup - Configure a política de backup periódico ou contínuo .
    • Criptografia - Use uma chave gerenciada pelo serviço ou uma chave gerenciada pelo cliente.
    • Tags - As tags são pares nome/valor que permitem categorizar recursos e exibir o faturamento consolidado aplicando a mesma tag a vários recursos e grupos de recursos.
  8. Selecione Rever + criar.

  9. Reveja as definições da conta e, em seguida, selecione Criar. A criação da conta demora alguns minutos. Aguarde até que a página do portal apresente A implementação está concluída.

    O painel Notificações do portal do Azure

  10. Selecione Ir para recurso para aceder à página da conta do Azure Cosmos DB.

Obter os detalhes de ligação da conta

Obtenha as informações da cadeia de conexão do portal do Azure e copie-as para o arquivo de configuração Java. A cadeia de ligação permite que a aplicação comunique com a base de dados alojada.

  1. No portal do Azure, vá para sua conta do Azure Cosmos DB.

  2. Abra o painel Cadeia de Conexão .

  3. Copie os valores de PONTO DE CONTACTO, PORTA, NOME DE UTILIZADOR e PALAVRA-PASSE PRINCIPAL para utilizá-los nos passos seguintes.

Criar o projeto e as dependências

O projeto de exemplo Java que você usa neste artigo está 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 da cadeia de conexão dentro do arquivo e execute-o java-examples\src\main\resources\config.properties .

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 na linha de comandos, crie um novo projeto Maven com o nome 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. Com um editor de texto, abra o ficheiro pom.xml que foi gerado.

    Adicione as dependências Cassandra e construa plugins exigidos pelo seu projeto, conforme mostrado no arquivo pom.xml .

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

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

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

  5. O exemplo Java cria um banco de dados com informações do usuário, como nome de usuário, ID do usuário e cidade do usuário. Terá de definir os métodos obter e definir, para aceder aos detalhes do utilizador na função principal.

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

Adicionar uma base de dados e uma tabela

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

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

  2. Crie a UserRepository classe Java 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 crie uma nova subpasta com o nome examples.

  4. Crie a UserProfile classe Java. Esta classe contém o método principal que chama os métodos createKeyspace e createTable definidos 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 a aplicação

  1. Abra uma linha de comandos ou 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, executa o comando mvn clean install para gerar o ficheiro cosmosdb-cassandra-examples.jar na pasta de destino. Por fim, executa a aplicação Java.

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

    A janela de terminal apresenta notificações quando o keyspace e a tabela estão criados.

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

Próximos passos

Neste tutorial, você aprendeu como criar uma API para a conta Cassandra no Azure Cosmos DB, um banco de dados e uma tabela usando um aplicativo Java. Pode agora avançar para o artigo seguinte: