Tutorial: Criar uma conta de API do Cassandra no Azure Cosmos DB por meio de um aplicativo Java para armazenar dados de chave/valorTutorial: Create a Cassandra API account in Azure Cosmos DB by using a Java application to store key/value data

Como desenvolvedor, é possível ter aplicativos que usam os pares de chave/valor.As a developer, you might have applications that use key/value pairs. Você pode usar uma conta da API do Cassandra do Azure Cosmos DB para armazenar dados de chave/valor.You can use a Cassandra API account in Azure Cosmos DB to store the key/value data. Este tutorial descreve como usar um aplicativo Java para criar uma conta de API do Cassandra no Azure Cosmos DB, adicionar um banco de dados (também chamado de keyspace) e adicionar uma tabela.This tutorial describes how to use a Java application to create a Cassandra API account in Azure Cosmos DB, add a database (also called a keyspace), and add a table. 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.The Java application uses the Java driver to create a user database that contains details such as user ID, user name, and user city.

Este tutorial cobre as seguintes tarefas:This tutorial covers the following tasks:

  • Criar uma conta de banco de dados do CassandraCreate a Cassandra database account
  • Obter uma cadeia de conexão da contaGet the account connection string
  • Criar dependências e projeto MavenCreate a Maven project and dependencies
  • Adicionar um banco de dados e uma tabelaAdd a database and a table
  • Execute o aplicativoRun the app

Pré-requisitosPrerequisites

Criar uma conta de banco de dadosCreate a database account

  1. Faça login no   portal do Azure .Sign in to the Azure portal.

  2. Selecione Criar um recurso > Bancos de dados > Azure Cosmos DB.Select Create a resource > Databases > Azure Cosmos DB.

  3. No painel Nova conta, insira as configurações da nova conta do Azure Cosmos.In the New account pane, enter the settings for the new Azure Cosmos account.

    ConfiguraçãoSetting Valor sugeridoSuggested value DESCRIÇÃODescription
    IDID Insira um nome exclusivoEnter a unique name Insira um nome exclusivo para identificar essa conta do Azure Cosmos.Enter a unique name to identify this Azure Cosmos account.

    Como cassandra.cosmosdb.azure.com é acrescentado à ID fornecida para criar seu ponto de contato, use uma ID exclusiva mas identificável.Because cassandra.cosmosdb.azure.com is appended to the ID that you provide to create your contact point, use a unique but identifiable ID.
    APIAPI CassandraCassandra A API determina o tipo de conta a ser criada.The API determines the type of account to create.
    Selecione Cassandra, pois neste artigo, você criará um banco de dados de toda a coluna que pode ser consultado usando a sintaxe CQL (Linguagem de Consulta do Cassandra).Select Cassandra, because in this article you will create a wide-column database that can be queried by using Cassandra Query Language (CQL) syntax.
    AssinaturaSubscription Sua assinaturaYour subscription Selecione a assinatura do Azure que você deseja usar para essa conta do Azure Cosmos.Select Azure subscription that you want to use for this Azure Cosmos account.
    Grupo de recursosResource Group Insira um nomeEnter a name Selecione Criar e, em seguida, insira um novo nome de grupo de recursos para sua conta.Select Create New, and then enter a new resource-group name for your account. Para simplificar, você pode usar um nome igual à sua ID.For simplicity, you can use the same name as your ID.
    Local padrãoLocation Selecione a região mais próxima de seus usuáriosSelect the region closest to your users Selecione a localização geográfica na qual hospedar a sua conta do Azure Cosmos.Select the geographic location in which to host your Azure Cosmos account. Use a localização mais próxima dos usuários para fornecer a eles acesso mais rápido aos dados.Use the location that's closest to your users, to give them the fastest access to the data.

    Criar conta com o portal

  4. Selecione Criar.Select Create.
    A criação da conta leva alguns minutos.The account creation takes a few minutes. Depois que o recurso for criado, você pode ver a notificação Implantação bem-sucedida no lado direito do portal.After the resource is created, you can see the Deployment succeeded notification on the right side of the portal.

Obter os detalhes de conexão da sua contaGet the connection details of your account

Obter as informações de cadeia de conexão do portal do Azure e copiá-lo para o arquivo de configuração de Java.Get the connection string information from the Azure portal, and copy it into the Java configuration file. A cadeia de conexão permite que seu aplicativo se comunique com o banco de dados hospedado.The connection string enables your app to communicate with your hosted database.

  1. No portal do Azure, vá para sua conta do Azure Cosmos.From the Azure portal, go to your Azure Cosmos account.

  2. Abra o painel  cadeia de conexão.Open the Connection String pane.

  3. Copie os valores de PONTO DE CONTATO, PORTA, NOME DE USUÁRIO, e SENHA PRIMÁRIA a serem usados nas próximas etapas.Copy the CONTACT POINT, PORT, USERNAME, and PRIMARY PASSWORD values to use in the next steps.

Criar o projeto e as dependênciasCreate the project and the dependencies

O projeto de exemplo de Java que você usa neste artigo é hospedado no GitHub.The Java sample project that you use in this article is hosted in GitHub. Você pode executar as etapas neste documento ou baixar o exemplo do repositório azure-cosmos-db-cassandra-java-getting-started.You can run the steps in this doc or download the sample from the azure-cosmos-db-cassandra-java-getting-started repository.

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.After you download the files, update the connection string information within the java-examples\src\main\resources\config.properties file and run it.

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:Use the following steps to build the sample from scratch:

  1. No terminal ou prompt de comando, crie um novo projeto Maven chamado Cassandra-demo.From the terminal or command prompt, create a new Maven project called 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.Locate the cassandra-demo folder. Usando um editor de texto, abra o arquivo pom.xml que foi gerado.Using a text editor, open the pom.xml file that was generated.

    Adicione as dependências do Cassandra e crie os plug-ins exigidos pelo seu projeto, conforme mostrado no arquivo pom.xml.Add the Cassandra dependencies and build plugins required by your project, as shown in the pom.xml file.

  3. Na pasta cassandra-demo\src\main, crie uma nova pasta chamada resources.Under the cassandra-demo\src\main folder, create a new folder named resources. Na pasta de recursos, adicione os arquivos config.properties e log4j.properties:Under the resources folder, add the config.properties and log4j.properties files:

    • O arquivo config.properties armazena os valores da chave e ponto de extremidade da conexão da conta da API do Cassandra.The config.properties file stores the connection endpoint and key values of the Cassandra API account.

    • O arquivo log4j.properties define o nível de log necessário para interagir com a API do Cassandra.The log4j.properties file defines the level of logging required for interacting with the Cassandra API.

  4. Navegue até a pasta src/main/java/com/azure/cosmosdb/cassandra/.Browse to the src/main/java/com/azure/cosmosdb/cassandra/ folder. Dentro da pasta de cassandra, crie outra pasta chamada utils.Within the cassandra folder, create another folder named utils. A nova pasta armazena as classes de utilitário necessárias para se conectar à conta de API do Cassandra.The new folder stores the utility classes required to connect to the Cassandra API account.

    Adicione a classe CassandraUtils para criar o cluster e para abrir e fechar as sessões de Cassandra.Add the CassandraUtils class to create the cluster and to open and close Cassandra sessions. O cluster se conecta à conta da API do Cassandra no Azure Cosmos DB e retorna uma sessão para acessar.The cluster connects to the Cassandra API account in Azure Cosmos DB and returns a session to access. Use a classe Configurações para ler informações de cadeia de conexão do arquivo config.properties.Use the Configurations class to read connection string information from the config.properties file.

  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.The Java sample creates a database with user information such as user name, user ID, and user city. Você precisa definir get e métodos para acessar os detalhes do usuário na função principal.You need to define get and set methods to access user details in the main function.

    Crie uma classe User.java na pasta src/main/java/com/azure/cosmosdb/cassandra/ com métodos get e set.Create a User.java class under the src/main/java/com/azure/cosmosdb/cassandra/ folder with get and set methods.

Adicionar um banco de dados e uma tabelaAdd a database and a table

Esta seção descreve como adicionar um banco de dados (keyspace) e uma tabela por meio de CQL.This section describes how to add a database (keyspace) and a table, by using CQL.

  1. Na pasta src\main\java\com\azure\cosmosdb\cassandra, crie uma nova pasta chamada repository.Under the src\main\java\com\azure\cosmosdb\cassandra folder, create a new folder named repository.

  2. Crie a classe Java UserRepository e adicione o seguinte código a ela:Create the UserRepository Java class and add the following code to it:

    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.Locate the src\main\java\com\azure\cosmosdb\cassandra folder, and create a new subfolder named examples.

  4. Em seguida, crie a classe Java UserProfile.Create the UserProfile Java class. Essa classe contém o método principal que chama os métodos createKeyspace e createTable que você definiu anteriormente:This class contains the main method that calls the createKeyspace and createTable methods you defined earlier:

    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"); 
            } 
        } 
    } 
    

Execute o aplicativoRun the app

  1. Abra um prompt de comando ou uma janela de terminal.Open a command prompt or terminal window. Cole o seguinte bloco de código.Paste the following code block.

    Esse código altera o diretório (cd) para o caminho da pasta onde você criou o projeto.This code changes the directory (cd) to the folder path where you created the project. Em seguida, ele executa o comando mvn clean install para gerar o arquivo cosmosdb-cassandra-examples.jar dentro da pasta de destino.Then, it runs the mvn clean install command to generate the cosmosdb-cassandra-examples.jar file within the target folder. Por fim, ele executa o aplicativo Java.Finally, it runs the Java application.

    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.The terminal window displays notifications that the keyspace and table are created.

  2. Agora, no portal do Azure, abra o Data Explorer para confirmar que o keyspace e a tabela foram criadas.Now, in the Azure portal, open Data Explorer to confirm that the keyspace and table were created.

Próximas etapasNext steps

Neste tutorial, você aprendeu a criar uma conta de API do Cassandra no Azure Cosmos DB, um banco de dados e uma tabela usando um aplicativo Java.In this tutorial, you've learned how to create a Cassandra API account in Azure Cosmos DB, a database, and a table by using a Java application. Prossiga agora para o próximo artigo:You can now proceed to the next article: