Créer et interroger une base de données à l'aide de la console Google Cloud

Ce guide de démarrage rapide vous explique comment effectuer des opérations de base dans Spanner à l'aide de la console Google Cloud. Vous allez :

  • Créer une instance Spanner
  • Créer une base de données
  • Créer un schéma
  • Insérer et modifier des données
  • exécuter une requête.

Pour en savoir plus sur le coût d'utilisation de Spanner, consultez la page Tarifs.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  5. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  6. Facultatif: L'API Spanner doit être activée automatiquement. Si ce n'est pas le cas, activez-le manuellement:

    Activer l'API Spanner
  1. Pour obtenir les autorisations nécessaires pour créer des instances et des bases de données, demandez à votre administrateur de vous attribuer le rôle IAM d'administrateur Cloud Spanner ("roles/spanner.admin") sur votre projet.

Créer une instance

Lorsque vous utilisez Spanner pour la première fois, vous devez créer une instance. Cela correspond à l'allocation des ressources utilisées par les bases de données Spanner dans cette instance.

  1. Dans la console Google Cloud, accédez à la page Spanner.

    Accéder à Spanner

  2. Sélectionnez ou créez un projet Google Cloud si vous ne l'avez pas déjà fait.

  3. Sur la page Spanner, cliquez sur Créer une instance provisionnée.

    Si vous avez déjà utilisé Spanner, la page Instances de Spanner s'affichera au lieu de la page du produit. Cliquez sur Créer une instance.

  4. Sur la page Attribuer un nom à l'instance, saisissez un nom d'instance, tel que Test Instance.

  5. L'ID de l'instance est automatiquement saisi en fonction du nom de l'instance (par exemple, test-instance). Modifiez-le si nécessaire. Cliquez sur Continuer.

  6. Sur la page Configurer votre instance, conservez l'option par défaut Régional et sélectionnez une configuration dans le menu déroulant.

    La configuration que vous choisissez détermine l'emplacement géographique où vos instances seront stockées et dupliquées.

  7. Cliquez sur Continuer.

  8. Sur la page Allouer de la capacité de calcul, sélectionnez Unités de traitement (PU) et conservez la valeur par défaut de 1 000 unités de traitement.

  9. Cliquez sur Créer.

    La console Google Cloud affiche la page Présentation de l'instance que vous avez créée.

Créer une base de données

  1. Dans la console Google Cloud, accédez à la page Instances de Spanner.

    Accéder à la page Instances Spanner

  2. Cliquez sur l'instance que vous avez créée, par exemple Test Instance.

  3. Sur la page "Présentation de l'instance" qui s'affiche, cliquez sur Créer une base de données.

  4. Saisissez un nom pour la base de données, par exemple example-db.

  5. Sélectionnez un dialecte de base de données.

    Pour plus d'informations sur la compatibilité de PostgreSQL et sur le choix d'un dialecte, consultez la page Interface PostgreSQL. Si vous avez sélectionné GoogleSQL, vous définirez le schéma dans le champ de texte Définir votre schéma de la section suivante de ce guide de démarrage rapide.

    Voici à quoi ressemble la page de création de votre instance :

    Fenêtre de création de base de données mise à jour.

  6. Cliquez sur Créer.

    La console Google Cloud affiche la page Présentation de la base de données que vous avez créée.

Créer un schéma pour votre base de données

  1. Dans le menu de navigation, cliquez sur Spanner Studio.

  2. Sur la page Spanner Studio, cliquez sur Nouvel onglet ou utilisez l'onglet de l'éditeur vide.

  3. Saisissez cette commande :

    GoogleSQL

    CREATE TABLE Singers (
      SingerId   INT64 NOT NULL,
      FirstName  STRING(1024),
      LastName   STRING(1024),
      SingerInfo BYTES(MAX),
      BirthDate  DATE
    ) PRIMARY KEY(SingerId);
    

    PostgreSQL

    CREATE TABLE Singers (
      BirthDate  TIMESTAMPTZ,
      SingerId   BIGINT PRIMARY KEY,
      FirstName  VARCHAR(1024),
      LastName   VARCHAR(1024),
      SingerInfo BYTEA
    );
    
  4. Cliquez sur Exécuter.

    La console Google Cloud revient à la page Présentation de la base de données et indique que des mises à jour des schémas sont en cours. Une fois la mise à jour terminée, la page se présente comme suit :

    GoogleSQL

    Page "Vue d'ensemble" mise à jour.

    PostgreSQL

    Page "Vue d'ensemble" mise à jour.

    Notez que PostgreSQL convertit le nom de la table en minuscules.

Insérer et modifier des données

La console Google Cloud fournit une interface permettant d'insérer, de modifier et de supprimer des données.

Insérer des données

  1. Dans la liste des tables de la page Présentation de la base de données, cliquez sur la table "Singers".

    La console Google Cloud affiche la page Schéma de la table Singers.

  2. Dans le menu de navigation, cliquez sur Données pour afficher la page Données de la table "Singers" (Chanteurs).

  3. Cliquez sur Insert.

    La console Google Cloud affiche la page Spanner Studio de la table Singers avec un nouvel onglet de requête contenant les instructions INSERT et SELECT que vous modifiez pour insérer une ligne dans la table Singers et afficher le résultat de cette insertion:

    GoogleSQL

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      Singers (SingerId,
        BirthDate,
        FirstName,
        LastName,
        SingerInfo)
    VALUES
      (<SingerId>, -- type: INT64
        <BirthDate>, -- type: DATE
        <FirstName>, -- type: STRING(1024)
        <LastName>, -- type: STRING(1024)
        <SingerInfo> -- type: BYTES(MAX)
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      Singers
    WHERE
      SingerId=<SingerId>;
    

    PostgreSQL

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      singers (singerid,
        birthdate,
        firstname,
        lastname,
        singerinfo)
    VALUES
      (<singerid>, -- type: bigint
        <birthdate>, -- type: timestamp with time zone
        <firstname>, -- type: character varying
        <lastname>, -- type: character varying
        <singerinfo> -- type: bytea
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      singers
    WHERE
      singerid=<singerid>;
    

    Notez que PostgreSQL convertit les noms de colonnes en minuscules.

  4. Modifiez la clause VALUES de l'instruction INSERT et la clause WHERE de l'instruction SELECT :

    GoogleSQL

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      Singers (SingerId,
        BirthDate,
        FirstName,
        LastName,
        SingerInfo)
    VALUES
      (1, -- type: INT64
        NULL, -- type: DATE
        'Marc', -- type: STRING(1024)
        'Richards', -- type: STRING(1024)
        NULL -- type: BYTES(MAX)
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      Singers
    WHERE
      SingerId=1;
    

    PostgreSQL

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      singers (singerid,
        birthdate,
        firstname,
        lastname,
        singerinfo)
    VALUES
      (1, -- type: bigint
        NULL, -- type: timestamp with time zone
        'Marc', -- type: character varying
        'Richards', -- type: character varying
        NULL -- type: bytea
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      singers
    WHERE
      singerid=1;
    
  5. Cliquez sur Exécuter.

    Spanner exécute les instructions. Lorsque vous avez terminé, l'onglet Résultats indique que la première instruction a inséré une ligne et fournit un lien pour afficher les données de la table.

  6. Dans l'onglet Résultats, cliquez sur le lien table. La table Singers contient maintenant une ligne:

    GoogleSQL

    Données mises à jour de la table "Singers" avec une ligne.

    PostgreSQL

    Données mises à jour de la table "Singers" avec une ligne.

  7. Cliquez sur Insérer pour ajouter une ligne.

    La console Google Cloud affiche à nouveau la page Spanner Studio de la table "Singers" avec un nouvel onglet de requête contenant les mêmes instructions INSERT et SELECT.

  8. Modifiez la clause VALUES de l'instruction INSERT et la clause WHERE de l'instruction SELECT :

    GoogleSQL

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      Singers (SingerId,
        BirthDate,
        FirstName,
        LastName,
        SingerInfo)
    VALUES
      (2, -- type: INT64
        NULL, -- type: DATE
        'Catalina', -- type: STRING(1024)
        'Smith', -- type: STRING(1024)
        NULL -- type: BYTES(MAX)
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      Singers
    WHERE
      SingerId=2;
    

    PostgreSQL

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      singers (singerid,
        birthdate,
        firstname,
        lastname,
        singerinfo)
    VALUES
      (2, -- type: bigint
        NULL, -- type: timestamp with time zone
        'Catalina', -- type: character varying
        'Smith', -- type: character varying
        NULL -- type: bytea
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      singers
    WHERE
      singerid=2;
    
  9. Cliquez sur Exécuter.

    Une fois que Spanner a exécuté les instructions, l'onglet Results (Résultats) indique à nouveau que la première instruction a inséré une ligne.

  10. Cliquez sur le lien de table. La table Singers contient maintenant deux lignes:

    GoogleSQL

    Données mises à jour de la table "Singers" avec deux lignes.

    PostgreSQL

    Données mises à jour de la table "Singers" avec deux lignes.

Vous pouvez également insérer des valeurs de chaîne vide lorsque vous saisissez des données.

  1. Cliquez sur Insérer pour ajouter une ligne.

    Spanner affiche à nouveau la page Spanner Studio de la table "Singers" avec un nouvel onglet de requête contenant les mêmes instructions INSERT et SELECT.

  2. Modifiez la clause VALUES de l'instruction INSERT du modèle et la clause WHERE de l'instruction SELECT :

    GoogleSQL

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      Singers (SingerId,
        BirthDate,
        FirstName,
        LastName,
        SingerInfo)
    VALUES
      (3, -- type: INT64
        NULL, -- type: DATE
        'Kena', -- type: STRING(1024)
        '', -- type: STRING(1024)
        NULL -- type: BYTES(MAX)
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      Singers
    WHERE
      SingerId=3;
    

    PostgreSQL

      -- Add new values in the VALUES clause in order of the column list.
      -- Each value must be type compatible with its associated column.
    INSERT INTO
      singers (singerid,
        birthdate,
        firstname,
        lastname,
        singerinfo)
    VALUES
      (3, -- type: bigint
        NULL, -- type: timestamp with time zone
        'Kena', -- type: character varying
        '', -- type: character varying
        NULL -- type: bytea
        );
      -- Change values in the WHERE condition to match the inserted row.
    SELECT
      *
    FROM
      singers
    WHERE
      singerid=3;
    

    Notez que la valeur fournie pour la colonne du nom de famille est une chaîne vide, '', et non une valeur NULL.

  3. Cliquez sur Exécuter.

    Une fois que Spanner a exécuté les instructions, l'onglet Results (Résultats) indique que la première instruction a inséré une ligne.

  4. Cliquez sur le lien de table. La table Singers contient maintenant trois lignes, et celle dont la valeur de clé primaire est 3 comporte une chaîne vide dans la colonne LastName:

    GoogleSQL

    Données de la table "Singers" mises à jour avec trois lignes.

    PostgreSQL

    Données de la table "Singers" mises à jour avec trois lignes.

Modifier des données

  1. Sur la page Données de la table "Singers", cochez la case sur la ligne dont la valeur de clé primaire est 3, puis cliquez sur Modifier.

    Spanner affiche la page Spanner Studio avec un nouvel onglet contenant les instructions de modèle UPDATE et SET que vous pouvez modifier. Notez que les clauses WHERE des deux instructions indiquent que la ligne à mettre à jour est celle qui possède la valeur de clé primaire 3.

    GoogleSQL

      -- Change values in the SET clause to update the row where the WHERE condition is true.
    UPDATE
      Singers
    SET
      BirthDate='',
      FirstName='Kena',
      LastName='',
      SingerInfo=''
    WHERE
      SingerId=3;
    SELECT
      *
    FROM
      Singers
    WHERE
      SingerId=3;
    

    PostgreSQL

      -- Change values in the SET clause to update the row where the WHERE condition is true.
    UPDATE
      singers
    SET
      birthdate=NULL,
      firstname='Kena',
      lastname='',
      singerinfo=NULL
    WHERE
      singerid='3';
    SELECT
      *
    FROM
      singers
    WHERE
      singerid='3';
    
  2. Modifiez la clause SET de l'instruction UPDATE pour ne mettre à jour que la date de naissance :

    GoogleSQL

      -- Change values in the SET clause to update the row where the WHERE condition is true.
    UPDATE
      Singers
    SET
      BirthDate='1961-04-01'
    WHERE
      SingerId=3;
    SELECT
      *
    FROM
      Singers
    WHERE
      SingerId=3;
    

    PostgreSQL

      -- Change values in the SET clause to update the row where the WHERE condition is true.
    UPDATE
      singers
    SET
      birthdate='1961-04-01 00:00:00 -8:00'
    WHERE
      singerid='3';
    SELECT
      *
    FROM
      singers
    WHERE
      singerid='3';
    
  3. Cliquez sur Exécuter.

    Spanner exécute les instructions. Lorsque vous avez terminé, l'onglet Résultats indique que la première instruction a mis à jour une ligne et fournit un lien pour afficher les données de la table.

  4. Dans l'onglet Résultats, cliquez sur le lien table.

    La ligne mise à jour comporte maintenant une valeur pour la date de naissance.

    GoogleSQL

    Données mises à jour de la table "Singers" avec une ligne mise à jour.

    PostgreSQL

    Données mises à jour de la table "Singers" avec une ligne mise à jour.

Supprimer des données

  1. Sur la page Données de la table "Singers" (Chanteurs), cochez la case sur la ligne dont la première colonne contient 2, puis cliquez sur Delete (Supprimer).
  2. Dans la boîte de dialogue qui s'affiche, cliquez sur Confirmer.

    La table Singers contient maintenant deux lignes:

    GoogleSQL

    Données mises à jour de la table "Singers" avec deux lignes ; la ligne "SingerId 2" a été supprimée.

    PostgreSQL

    Données mises à jour de la table "Singers" avec deux lignes ; la ligne "SingerId 2" a été supprimée.

Exécuter une requête

  1. Sur la page Présentation de la base de données, cliquez sur Spanner Studio dans le menu de navigation.

  2. Cliquez sur Nouvel onglet pour créer un onglet de requête. Saisissez ensuite la requête suivante dans l'éditeur de requête:

    GoogleSQL

    SELECT * FROM Singers;
    

    PostgreSQL

    SELECT * FROM singers;
    
  3. Cliquez sur Exécuter.

    Spanner exécute la requête. Lorsque vous avez terminé, l'onglet Résultats affiche le résultat de votre requête :

    GoogleSQL

    Résultats de la requête

    PostgreSQL

    Résultats de la requête

Félicitations ! Vous avez créé une base de données Spanner et exécuté une instruction SQL à l'aide de l'éditeur de requête.

Effectuer un nettoyage

Pour éviter des frais supplémentaires sur votre compte de facturation Cloud, supprimez la base de données et l'instance que vous avez créées. La suppression d'une instance supprime automatiquement toutes les bases de données qui y ont été créées.

Supprimer la base de données

  1. Dans la console Google Cloud, accédez à la page Instances de Spanner.

    Accéder à la page Instances Spanner

  2. Cliquez sur le nom de l'instance contenant la base de données que vous souhaitez supprimer, par exemple Test Instance.

  3. Cliquez sur le nom de la base de données que vous souhaitez supprimer, par exemple example-db.

  4. Sur la page Détails de la base de données, cliquez sur Supprimer la base de données.

  5. Confirmez que vous souhaitez supprimer la base de données en saisissant son nom et en cliquant sur Supprimer.

Supprimer l'instance

  1. Dans la console Google Cloud, accédez à la page Instances de Spanner.

    Accéder à la page Instances Spanner

  2. Cliquez sur le nom de l'instance que vous souhaitez supprimer, par exemple Test Instance.

  3. Cliquez sur Supprimer l'instance.

  4. Confirmez que vous souhaitez supprimer l'instance en saisissant son nom et en cliquant sur Supprimer.

Étapes suivantes