Tutorial: Creación de una cuenta de la API para Cassandra en Azure Cosmos DB mediante una aplicación de Java para almacenar datos de pares clave/valor

SE APLICA A: Cassandra

Como desarrollador, puede que tenga aplicaciones que usan pares clave/valor. Puede usar una cuenta de la API para Cassandra en Azure Cosmos DB para almacenar los datos de esos pares clave/valor. En este tutorial se describe cómo usar una aplicación de Java para crear una cuenta de la API para Cassandra en Azure Cosmos DB, así como agregar una base de datos (también conocida como espacio de claves) y una tabla. La aplicación de Java utiliza el controlador Java para crear una base de datos de usuario que contiene información detallada como el identificador, el nombre y la ciudad del usuario.

En este tutorial se describen las tareas siguientes:

  • Creación de una cuenta de base de datos de Cassandra
  • Obtención de la cadena de conexión de cuenta
  • Creación de un proyecto de Maven y sus dependencias
  • Adición de una base de datos y una tabla
  • Ejecución la aplicación

Requisitos previos

Creación de una cuenta de base de datos

  1. En el menú de Azure Portal o en la página principal, seleccione Crear un recurso.

  2. En la página Nuevos, busque y seleccione Azure Cosmos DB.

  3. En la página Azure Cosmos DB, seleccione Crear.

  4. En la página API, seleccione Crear en la sección Cassandra.

    La API determina el tipo de cuenta que se va a crear. Azure Cosmos DB proporciona cinco API: NoSQL para bases de datos de documentos, Gremlin para bases de datos de grafos, MongoDB para bases de datos de documentos, Azure Table y Cassandra. Debe crear una cuenta independiente para cada API.

    Seleccione Cassandra, ya que en este inicio rápido va a crear una tabla que funciona con la API para Cassandra.

    Más información acerca de la API para Cassandra.

  5. En la página Crear una cuenta de Azure Cosmos DB, especifique la configuración básica de la nueva cuenta de Azure Cosmos DB.

    Configuración Value Descripción
    Subscription Su suscripción Seleccione la suscripción de Azure que quiere usar para esta cuenta de Azure Cosmos DB.
    Grupo de recursos Crear nuevo

    A continuación, escriba el mismo nombre que el nombre de cuenta.
    Seleccione Crear nuevo. Luego, escriba un nombre nuevo de grupo de recursos para la cuenta. Para simplificar, use el mismo nombre que el de la cuenta de Azure Cosmos DB.
    Nombre de cuenta Escriba un nombre único. Escriba un nombre único para identificar la cuenta de Azure Cosmos DB. El URI de la cuenta será cassandra.cosmos.azure.com y se anexará al nombre único de la cuenta.

    El nombre de la cuenta solo puede utilizar letras minúsculas, números y guiones (-), y debe tener entre 3 y 31 caracteres de longitud.
    Location Región más cercana a los usuarios Seleccione una ubicación geográfica para hospedar la cuenta de Azure Cosmos DB. Use la ubicación más cercana a los usuarios para que puedan acceder de la forma más rápida posible a los datos.
    Capacity mode (Modo de capacidad) Rendimiento aprovisionado o sin servidor Seleccione Provisioned throughput (Rendimiento aprovisionado) para crear una cuenta en modo de rendimiento aprovisionado. Seleccione Serverless (Sin servidor) para crear una cuenta en modo sin servidor.
    Aplicar el descuento del nivel Gratis de Azure Cosmos DB Aplicar o No aplicar Con el nivel Gratis de Azure Cosmos DB, recibirá los primeros 1000 RU/s y 25 GB de almacenamiento gratis en una cuenta. Más información acerca del nivel Gratis.
    Límite del rendimiento total de la cuenta Seleccione esta opción para limitar el rendimiento de la cuenta Esto resultará útil si desea limitar el rendimiento total de la cuenta a un valor específico.

    Nota

    Puede tener una cuenta de Azure Cosmos DB de nivel Gratis por cada suscripción de Azure y debe optar por tenerla al crear la cuenta. Si no ve la opción para aplicar el descuento por nivel Gratis, significará que en otra cuenta de la suscripción ya se ha habilitado el nivel Gratis.

    Página de la nueva cuenta de Azure Cosmos DB for Apache Cassandra

  6. En la pestaña Distribución global, configure los detalles siguientes. Puede dejar los valores predeterminados para este inicio rápido:

    Configuración Value Descripción
    Redundancia geográfica Deshabilitar Habilite o deshabilite la distribución global en su cuenta. Para ello, debe emparejar su región con una región de par. Puede agregar más regiones a su cuenta más adelante.
    Escrituras en varias regiones Deshabilitar La funcionalidad de escrituras en varias regiones le permite aprovechar el rendimiento aprovisionado para sus bases de datos y contenedores de todo el mundo.
    Zonas de disponibilidad Deshabilitar Las zona de disponibilidad son ubicaciones aisladas dentro de una región de Azure. Cada zona de disponibilidad consta de uno o varios centros de datos equipados con alimentación, refrigeración y redes independientes.

    Nota

    Las siguientes opciones no están disponibles si selecciona Serverless (Sin servidor) en Capacity mode (Modo de capacidad):

    • Aplicación de descuento por nivel Gratis
    • Redundancia geográfica
    • Escrituras en varias regiones
  7. Opcionalmente, puede configurar detalles adicionales en las pestañas siguientes:

    • Redes: configure el acceso desde una red virtual.
    • Directiva de copia de seguridad: configure una directiva de copia de seguridad periódica o continua.
    • Cifrado: use una clave administrada por el servicio o una clave administrada por el cliente.
    • Etiquetas: son pares nombre-valor que permiten categorizar los recursos y ver una facturación consolidada mediante la aplicación de la misma etiqueta en varios recursos y grupos de recursos.
  8. Seleccione Revisar + crear.

  9. Revise la configuración de la cuenta y seleccione Crear. La operación de creación de la cuenta tarda unos minutos. Espere hasta que la página del portal muestre Se completó la implementación .

    Panel de notificaciones de Azure Portal

  10. Seleccione Ir al recurso para ir a la página de la cuenta de Azure Cosmos DB.

Obtención de los detalles de conexión de la cuenta

Obtenga la información de la cadena de conexión desde Azure Portal y cópiela en el archivo de configuración de Java. La cadena de conexión permite a la aplicación comunicarse con la base de datos hospedada.

  1. Desde Azure Portal, vaya a la cuenta de Azure Cosmos DB.

  2. Abra el panel Cadena de conexión.

  3. Copie los valores de PUNTO DE CONTACTO, PUERTO, NOMBRE DE USUARIO y CONTRASEÑA PRINCIPAL que se usarán en los pasos siguientes.

Creación del proyecto y las dependencias

El proyecto de ejemplo de Java que se usa en este artículo se hospeda en GitHub. Puede ejecutar los pasos que aparecen en este documento o descargar el ejemplo del repositorio azure-cosmos-db-cassandra-java-getting-started.

Después de descargar los archivos, actualice la información de la cadena de conexión en el archivo java-examples\src\main\resources\config.properties y ejecútelo.

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

Use estos pasos para compilar el ejemplo desde cero:

  1. En el terminal o símbolo del sistema, cree un nuevo proyecto de Maven denominado "Cassandra-demo".

    mvn archetype:generate -DgroupId=com.azure.cosmosdb.cassandra -DartifactId=cassandra-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 
    
  2. Localice la carpeta cassandra-demo. Con un editor de texto, abra el archivo pom.xml que se generó.

    Agregue las dependencias de Cassandra y cree los complementos necesarios para el proyecto, tal y como se muestra en el archivo pom.xml.

  3. En la carpeta cassandra-demo\src\main, cree una carpeta denominada resources. En la carpeta de recursos, agregue los archivos config.properties y log4j.properties:

    • El archivo config.properties almacena los valores de clave y el punto de conexión de la cuenta de la API para Cassandra.

    • El archivo log4j.properties define el nivel de registro necesario para interactuar con la API para Cassandra.

  4. Examine la carpeta src/main/java/com/azure/cosmosdb/cassandra/. Dentro de la carpeta cassandra, cree otra carpeta denominada utils. La nueva carpeta almacena las clases de utilidad necesarias para conectarse a la cuenta de la API para Cassandra.

    Agregue la clase CassandraUtils para crear el clúster y abrir y cerrar las sesiones de Cassandra. El clúster se conecta a la cuenta de la API para Cassandra en Azure Cosmos DB y devuelve una sesión a la que se accede. Use la clase Configuraciones para leer información de la cadena de conexión desde el archivo config.properties.

  5. El ejemplo de Java crea una base de datos con información de usuario como el nombre de usuario, el identificador de usuario y la ciudad del usuario. Deberá definir los métodos get y set para acceder a los detalles del usuario en la función principal.

    Cree una clase User.java en la carpeta src/main/java/com/azure/cosmosdb/cassandra/ con los métodos get y set.

Adición de una base de datos y una tabla

En esta sección se describe cómo agregar una base de datos (espacio de claves) y una tabla mediante CQL.

  1. En la carpeta src\main\java\com\azure\cosmosdb\cassandra, cree una carpeta denominada repository.

  2. Cree la clase de Java UserRepository y agregue el código siguiente en él:

    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. Busque la carpeta src\main\java\com\azure\cosmosdb\cassandra y cree una nueva subcarpeta denominada "examples".

  4. Cree la clase de Java UserProfile. Esta clase contiene el método principal que llama a los métodos createKeyspace y 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"); 
            } 
        } 
    } 
    

Ejecución la aplicación

  1. Abra un símbolo del sistema o una ventana de terminal. Pegue el bloque de código siguiente.

    Este código cambia el directorio (cd) a la ruta de acceso de la carpeta donde creó el proyecto. A continuación, se ejecuta el comando mvn clean install para generar el archivo cosmosdb-cassandra-examples.jar en la carpeta de destino. Finalmente, se ejecuta la aplicación de Java.

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

    En la ventana de terminal se notifica que se ha creado el espacio de claves y la tabla.

  2. Ahora, en Azure Portal, abra el Explorador de datos para confirmar que el espacio de claves y la tabla se crearon.

Pasos siguientes

En este tutorial, aprendió a crear una cuenta de la API para Cassandra en Azure Cosmos DB, una base de datos y una tabla mediante una aplicación de Java. Avance al siguiente artículo: