Compartir vía


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

SE APLICA A: Casandra

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

En este tutorial se describen las tareas siguientes:

  • Cree una cuenta de base de datos de Cassandra.
  • Obtención de la cadena de conexión de cuenta.
  • Cree un proyecto y dependencias de Maven.
  • Agregue una base de datos y una tabla.
  • Ejecute 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 , en la sección Cassandra , seleccione Crear.

    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 porque en este tutorial va a crear una tabla que funcione con la API para Cassandra.

    Para más información sobre la API para Cassandra, consulte ¿Qué es Azure Cosmos DB para Apache Cassandra?.

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

    Configuración Valor Descripción
    Suscripción 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 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 tu cuenta, cassandra.cosmos.azure.com, se añadió a tu nombre único de cuenta.

    El nombre de la cuenta solo puede usar letras minúsculas, números y guiones (-) y debe tener entre 3 y 31 caracteres.
    Ubicación 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 proporcionarles el acceso más rápido a los datos.
    Modo de capacidad Rendimiento aprovisionado o sin servidor. Seleccione Rendimiento aprovisionado para crear una cuenta en modo rendimiento aprovisionado. Seleccione Sin servidor para crear una cuenta en modo sin servidor .
    Aplica el descuento del nivel gratuito de Azure Cosmos DB Aplicar o No aplicar. Con el nivel gratis de Azure Cosmos DB, obtendrá los primeros 1000 RU/s y 25 GB de almacenamiento gratis en una cuenta. Obtenga más información sobre el nivel gratis.
    Limitar el rendimiento total de la cuenta Seleccione esta opción para limitar el rendimiento de la cuenta. Esta opción es útil si desea limitar el rendimiento total de la cuenta a un valor específico.

    Nota:

    Puede tener hasta una cuenta de nivel Gratis de Azure Cosmos DB por suscripción de Azure. Debe optar por unirse al crear la cuenta. Si no ve la opción de aplicar el descuento del nivel Gratis, otra cuenta de la suscripción fue habilitada con 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. Use los valores predeterminados de este tutorial.

    Configuración Valor Descripción
    Redundancia geográfica Disable 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 de varias regiones Disable Con la funcionalidad de escrituras multiregión, puede aprovechar el rendimiento aprovisionado para las bases de datos y los contenedores en todo el mundo.
    Zonas de disponibilidad Disable Las zonas 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.

    Las siguientes opciones no están disponibles si selecciona Sin servidor como modo de capacidad:

    • Aplicación de descuento por nivel Gratis
    • Redundancia geográfica
    • Escrituras de varias regiones
  7. Opcionalmente, puede configurar otros detalles 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: las etiquetas son pares nombre-valor que puede usar para clasificar los recursos y ver la facturación consolidada aplicando la misma etiqueta a 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 .

    Captura de pantalla que muestra el panel 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 de este artículo 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> 

Para compilar el ejemplo desde cero, siga estos pasos:

  1. Desde la terminal o la línea de comandos, 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 pom.xml archivo que se generó.

    Agregue las dependencias de Cassandra y los complementos de compilación que requiere el proyecto, como se muestra en el archivo pom.xml .

  3. En la carpeta cassandra-demo\src\main, cree una carpeta denominada resources. En la carpeta resources, 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/. En la cassandra carpeta , cree otra carpeta denominada utils. La nueva carpeta almacena las clases de utilidad necesarias para conectarse a la API para la cuenta de 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 Configurations para leer información de cadena de conexión del config.properties archivo.

  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. Debe 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 src/main/java/com/azure/cosmosdb/cassandra/ carpeta 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 el lenguaje de consulta cassandra (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 que definió 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 la carpeta donde creaste 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. En Azure Portal, abra El Explorador de datos para confirmar que se crearon el espacio de claves y la tabla.

Paso siguiente

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