Tutoriel : créer un compte d’API pour Cassandra dans Azure Cosmos DB avec une application Java pour stocker des données de clé/valeur

S’APPLIQUE À : Cassandra

En tant que développeur, vous pouvez avoir des applications qui utilisent des paires clé/valeur. Vous pouvez utiliser un compte d’API pour Cassandra dans Azure Cosmos DB pour stocker les données de clé/valeur. Ce tutoriel explique comment utiliser une application Java pour créer un compte d’API pour Cassandra dans Azure Cosmos DB et ajouter une base de données (également appelée « espace de clés ») et une table. L’application Java utilise le pilote Java pour créer une base de données utilisateur qui contient des détails comme l’ID d’utilisateur, le nom d’utilisateur et la localité de l’utilisateur.

Ce tutoriel décrit les tâches suivantes :

  • Créer un compte de base de données Cassandra
  • Obtenir la chaîne de connexion du compte
  • Créer un projet Maven et des dépendances
  • Ajouter une base de données et une table
  • Exécuter l’application

Prérequis

Création d’un compte de base de données

  1. Dans le menu du portail Azure ou dans la page d’accueil, sélectionnez Créer une ressource.

  2. Dans la page Nouveau, recherchez et sélectionnez Azure Cosmos DB.

  3. Dans la page Azure Cosmos DB, sélectionnez Créer.

  4. À la page API, sélectionnez Créer dans la section Cassandra.

    L’API détermine le type de compte à créer. Azure Cosmos DB propose cinq API : NoSQL pour les bases de données de documents, Gremlin pour les bases de données de graphes, MongoDB pour les bases de données de documents, Azure Table et Cassandra. Vous devez créer un compte distinct pour chaque API.

    Sélectionnez Cassandra car, dans ce guide de démarrage rapide, vous allez créer une table qui fonctionne avec l’API pour Cassandra.

    En savoir plus sur l’API pour Cassandra.

  5. Sur la page Créer un compte Azure Cosmos DB, entrez les paramètres de base du nouveau compte Azure Cosmos DB.

    Paramètre Valeur Description
    Abonnement Votre abonnement Sélectionnez l’abonnement Azure que vous souhaitez utiliser pour ce compte Azure Cosmos DB.
    Groupe de ressources Création

    Entrez ensuite le même nom que le nom du compte.
    Sélectionnez Créer nouveau. Entrez ensuite le nom du nouveau groupe de ressources pour votre compte. Pour rester simple, utilisez le nom de votre compte Azure Cosmos DB.
    Nom du compte Entrer un nom unique Entrez un nom unique pour identifier votre compte Azure Cosmos DB. L’URI de votre compte sera cassandra.cosmos.azure.com apposé à votre nom de compte unique.

    Le nom peut contenir uniquement des lettres minuscules, des chiffres et des traits d’union (-), et doit comporter entre 3 et 31 caractères.
    Emplacement La région la plus proche de vos utilisateurs Sélectionnez la zone géographique dans laquelle héberger votre compte Azure Cosmos DB. Utilisez l’emplacement le plus proche de vos utilisateurs pour leur donner l’accès le plus rapide possible aux données.
    Mode de capacité Débit approvisionné ou serverless Sélectionnez Débit approvisionné pour créer un compte dans mode de débit approvisionné. Sélectionnez serverless pour créer un compte en mode serverless.
    Appliquer la remise de niveau gratuit Azure Cosmos DB Appliquer ou Ne pas appliquer Avec le niveau gratuit d’Azure Cosmos DB, vous recevez gratuitement 1 000 RU/s et 25 Go de stockage dans un compte. Découvrez-en plus sur le niveau gratuit.
    Limiter le débit total du compte Sélectionner pour limiter le débit du compte Cela est utile si vous souhaitez limiter le débit total du compte à une valeur spécifique.

    Notes

    Vous pouvez avoir un seul compte Azure Cosmos DB de niveau gratuit par abonnement Azure et vous devez vous inscrire lors de la création du compte. Si vous ne voyez pas l’option permettant d’appliquer la remise de niveau gratuit, cela signifie qu’un autre compte dans l’abonnement a déjà été activé avec le niveau gratuit.

    Page de nouveau compte pour Azure Cosmos DB for Apache Cassandra

  6. Sous l’onglet Distribution globale, configurez les informations suivantes. Dans le cadre de ce guide de démarrage rapide, vous pouvez conserver les valeurs par défaut :

    Paramètre Valeur Description
    Géoredondance Désactiver Activez ou désactivez la diffusion mondiale sur votre compte en appairant votre région avec une région correspondante. Vous pourrez ajouter d’autres régions à votre compte ultérieurement.
    Écritures multirégions Désactiver La fonctionnalité d’écritures multirégions vous permet de tirer parti du débit provisionné pour vos bases de données et conteneurs à travers le monde.
    Zones de disponibilité Désactiver Les zones de disponibilité sont des emplacements isolés dans une région Azure. Chaque zone de disponibilité est composée d’un ou de plusieurs centres de données équipés d’une alimentation, d’un système de refroidissement et d’un réseau indépendants.

    Notes

    Les options suivantes ne sont pas disponibles si vous sélectionnez Serverless comme Mode de capacité :

    • Appliquer la remise de niveau gratuit
    • Géo-redondance
    • Écritures multirégions
  7. Si vous le souhaitez, vous pouvez configurer des informations supplémentaires sous les onglets suivants :

    • Réseau :configurez l’accès à partir d’un réseau virtuel.
    • Stratégie de sauvegarde : configurez une stratégie de sauvegarde périodique ou continue.
    • Chiffrement : utilisez une clé gérée par le service ou une clé gérée par le client.
    • Étiquettes : les étiquettes sont des paires nom/valeur qui vous permettent de catégoriser les ressources et d’afficher une facturation centralisée en appliquant la même étiquette à plusieurs ressources et groupes de ressources.
  8. Sélectionnez Revoir + créer.

  9. Passez en revue les paramètres du compte, puis sélectionnez Créer. La création du compte prend quelques minutes. Attendez que la page du portail affiche Votre déploiement est terminé.

    Volet Notifications du portail Azure

  10. Sélectionnez Accéder à la ressource pour accéder à la page du compte Azure Cosmos DB.

Obtenir les détails de connexion de votre compte

Obtenez les informations de la chaîne de connexion auprès du Portail Azure, puis copiez-les dans le fichier de configuration Java. La chaîne de connexion permet à votre application de communiquer avec votre base de données hébergée.

  1. Dans le Portail Azure, accédez à votre compte Azure Cosmos DB.

  2. Ouvrez le volet Chaîne de connexion.

  3. Copiez les valeurs de POINT DE CONTACT, PORT, NOM D’UTILISATEUR et MOT DE PASSE PRINCIPAL, que vous utiliserez dans les étapes suivantes.

Créer le projet et les dépendances

L’exemple de projet Java que vous utilisez dans cet article est hébergé dans GitHub. Vous pouvez exécuter les étapes de ce document ou télécharger l’exemple à partir du référentiel azure-cosmos-db-cassandra-java-getting-started.

Après avoir téléchargé les fichiers, mettez à jour les informations de la chaîne de connexion dans le fichier java-examples\src\main\resources\config.properties et exécutez-le.

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

Suivez la procédure ci-après pour créer l’exemple depuis le début :

  1. À partir du terminal ou d’une invite de commandes, créez un projet Maven nommé Cassandra-demo.

    mvn archetype:generate -DgroupId=com.azure.cosmosdb.cassandra -DartifactId=cassandra-demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false 
    
  2. Recherchez le dossier cassandra-demo. Avec un éditeur de texte, ouvrez le fichier pom.xml qui a été généré.

    Ajoutez les dépendances de Cassandra et générez les plug-ins nécessaires pour votre projet, comme indiqué dans le fichier pom.xml.

  3. Sous le dossier cassandra-demo\src\main, créez un dossier nommé resources. Sous le dossier des ressources, ajoutez les fichiers config.properties et log4j.properties :

    • Le fichier config.properties stocke les valeurs du point de terminaison et de la clé de connexion du compte d’API pour Cassandra.

    • Le fichier log4j.properties définit le niveau de journalisation nécessaire pour interagir avec l’API pour Cassandra.

  4. Accédez au dossier src/main/java/com/azure/cosmosdb/cassandra/. Dans le dossier cassandra, créez un autre dossier nommé utils. Le nouveau dossier stocke les classes utilitaires nécessaires pour se connecter au compte d’API pour Cassandra.

    Ajoutez la classe CassandraUtils pour créer le cluster, et pour ouvrir et fermer les sessions Cassandra. Le cluster se connecte au compte d’API pour Cassandra dans Azure Cosmos DB et retourne une session permettant l’accès. Utilisez la classe Configurations pour lire les informations de la chaîne de connexion dans le fichier config.properties.

  5. L’exemple Java crée une base de données avec les informations utilisateur, comme le nom d’utilisateur, l’ID d’utilisateur et la localité de l’utilisateur. Vous devez définir des méthodes get et set pour accéder aux détails de l’utilisateur dans la fonction main.

    Créez une classe User.java sous le dossier src/main/java/com/azure/cosmosdb/cassandra/ avec des méthodes get et set.

Ajouter une base de données et une table

Cette section décrit comment ajouter une base de données (espace de clés) et une table avec CQL.

  1. Sous le dossier src\main\java\com\azure\cosmosdb\cassandra, créez un dossier nommé repository.

  2. Créez la classe Java UserRepository et ajoutez-y le code suivant :

    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. Recherchez le dossier src\main\java\com\azure\cosmosdb\cassandra et créez un sous-dossier nommé examples.

  4. Créez la classe Java UserProfile. Cette classe contient la méthode principale qui appelle les méthodes createKeyspace et createTable que vous avez définies précédemment :

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

Exécuter l’application

  1. Ouvrez une invite de commandes ou une fenêtre de terminal. Collez le bloc de code suivant.

    Ce code change le répertoire (cd) pour le chemin du dossier où vous avez créé le projet. Ensuite, il exécute la commande mvn clean install pour générer le fichier cosmosdb-cassandra-examples.jar dans le dossier cible. Enfin, il exécute l’application Java.

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

    La fenêtre de terminal affiche des notifications indiquant que l’espace de clé et la table sont créés.

  2. Maintenant, dans le portail Azure, ouvrez l’Explorateur de données pour vérifier que l’espace de clés et la table ont été créés.

Étapes suivantes

Dans ce tutoriel, vous avez découvert comment créer un compte d’API pour Cassandra dans Azure Cosmos DB, ainsi qu’une base de données et une table à l’aide d’une application Java. Vous pouvez maintenant passer à l’article suivant :