Tutorial: Criar uma conta API cassandra em Azure Cosmos DB utilizando uma aplicação Java para armazenar dados chave/valor

APLICA-SE A: Cassandra API

Como desenvolvedor, pode ter aplicações que usam pares chave/valor. Pode utilizar uma conta API da Cassandra na Azure Cosmos DB para armazenar os dados chave/valor. Este tutorial descreve como usar uma aplicação Java para criar uma conta API Cassandra em Azure Cosmos DB, adicionar uma base de dados (também chamada de espaço-chave) e adicionar uma tabela. A aplicação Java utiliza o controlador Java para criar uma base de dados de utilizadores que contenha detalhes como iD do utilizador, nome de utilizador e cidade do utilizador.

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 Azure ou da página Inicial, selecione Criar um recurso.

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

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

  4. Na página De Conta DB Create Azure Cosmos, insira as definições básicas para a nova conta Azure Cosmos.

    Definição Valor Descrição
    Subscrição A sua subscrição Selecione a subscrição do Azure que quer utilizar para esta conta do Azure Cosmos DB.
    Grupo de Recursos Criar novo

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

    O nome da conta só pode usar letras minúsculas, números e hífens (-), e deve ter entre 3 e 44 caracteres de comprimento.
    API Cassandra A API determina o tipo de conta a criar. A Azure Cosmos DB fornece cinco APIs: Core (SQL) para bases de dados de documentos, Gremlin para bases de dados de gráficos, MongoDB para bases de dados de documentos, Tabela Azure e Cassandra. Deve criar uma conta separada para cada API.

    Selecione Cassandra, porque neste arranque rápido você está criando uma mesa que funciona com a API Cassandra.

    Saiba mais sobre a API para Cassandra.
    Localização 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 Produção provisida ou sem servidor Selecione Provisão para criar uma conta no modo de produção previsto. Selecione Serverless para criar uma conta no modo sem servidor.
    Aplicar desconto de nível gratuito Azure Cosmos DB Aplicar ou não aplicar Com o nível livre Azure Cosmos DB, você receberá os primeiros 1000 RU/s e 25 GB de armazenamento gratuitamente numa conta. Saiba mais sobre o free tier.

    Nota

    Pode ter até uma conta DB Azure Cosmos de nível gratuito por subscrição Azure e deve optar pela criação da conta. Se não vir a opção de aplicar o desconto de nível livre, isto significa que outra conta na subscrição já foi ativada com nível gratuito.

    A nova página de conta da Azure Cosmos DB Cassandra API

  5. No separador Distribuição Global, configuure os seguintes detalhes. Pode deixar os valores predefinidos para efeitos deste arranque rápido:

    Definição Valor Descrição
    Redundância Geográfica Desativar Ativar ou desativar a distribuição global na sua conta, emparelhando a sua região com uma região de pares. Pode adicionar mais regiões à sua conta mais tarde.
    Escritas de várias regiões Desativar A capacidade de escrita multi-região permite-lhe tirar partido da produção prevista para as suas bases de dados e contentores em todo o mundo.

    Nota

    As seguintes opções não estão disponíveis se selecionar Serverless como o modo Capacidade:

    • Aplicar Desconto de Escalão Gratuito
    • Georredundância
    • Escritas de várias regiões
  6. Opcionalmente, pode configurar detalhes adicionais nos seguintes separadores:

    • Networking - Configurar o acesso a partir de uma rede virtual.
    • Política de Backup - Configurar uma política de backup periódica ou contínua.
    • Encriptação - Utilize uma chave gerida pelo serviço ou uma chave gerida pelo cliente.
    • Tags - Tags são pares de nome/valor que lhe permitem categorizar recursos e visualizar faturação consolidada aplicando a mesma etiqueta a múltiplos recursos e grupos de recursos.
  7. Selecione Rever + criar.

  8. 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

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

Obter os detalhes de ligação da conta

Obtenha a informação do fio de ligação do portal Azure e copie-as no ficheiro de configuração Java. A cadeia de ligação permite que a aplicação comunique com a base de dados alojada.

  1. A partir do portal Azure,aceda à sua conta Azure Cosmos.

  2. Abra o painel de cordas de ligaçã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 amostra de Java que você usa neste artigo está hospedado em GitHub. Você pode executar os passos neste doc ou baixar a amostra do repositório azure-cosmos-db-cassandra-java-getting-start-start-tory.

Depois de descarregar os ficheiros, atualize as informações de cadeia de ligação dentro do java-examples\src\main\resources\config.properties ficheiro e execute-as.

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

Utilize os seguintes passos para construir a amostra de raiz:

  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 de Cassandra e construa plugins exigidos pelo seu projeto, como mostra o ficheiropom.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:

    • O ficheiro config.properties armazena o ponto final de ligação e os valores-chave da conta API cassandra.

    • O ficheiro log4j.properties define o nível de registo necessário para interagir com a API de Cassandra.

  4. Navegue na 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ários necessárias para ligar à conta da API para Cassandra.

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

  5. A amostra de Java cria uma base de dados com informações do utilizador, tais como nome de utilizador, ID do utilizador e cidade utilizadora. Terá de definir os métodos obter e definir, para aceder aos detalhes do utilizador na função principal.

    Crie uma classe .java utilizador sob a pasta src/main/java/com/azure/cosmosdb/cassandra/ com métodos de obter e definir.

Adicionar uma base de dados e uma tabela

Esta secção descreve como adicionar uma base de dados (espaço-chave) e uma tabela, utilizando o 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-lhe o seguinte código:

    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 aula de 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.

    Este código altera o diretório (cd) para o caminho da pasta onde 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.

Passos seguintes

Neste tutorial, aprendeu a criar uma conta API da Cassandra em Azure Cosmos DB, uma base de dados e uma tabela usando uma aplicação Java. Pode agora avançar para o artigo seguinte: