GSP1087
Présentation
AlloyDB pour PostgreSQL est un service de base de données entièrement géré compatible avec PostgreSQL pour les charges de travail d'entreprise les plus exigeantes. AlloyDB associe le meilleur de Google à l'un des moteurs de base de données Open Source les plus utilisés, PostgreSQL, pour des performances, une évolutivité et une disponibilité optimales.
Le moteur de données en colonnes peut considérablement accélérer la vitesse à laquelle AlloyDB traite les analyses, les jointures et les agrégations SQL. Il fournit les fonctionnalités suivantes : 1) un store orienté colonnes contenant des données de tables pour les colonnes sélectionnées, réorganisées dans un format orienté colonnes ; et 2) un planificateur de requêtes et un moteur d'exécution en colonnes permettant d'utiliser le store orienté colonnes dans les requêtes.
Dans cet atelier, vous allez explorer les fonctionnalités du moteur de données en colonnes AlloyDB.
Objectifs de l'atelier
Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :
- Créer un ensemble de données de référence pour tester le moteur de données en colonnes
- Exécuter un test de référence
- Vérifier le flag de base de données pour le moteur de données en colonnes
- Définir ou vérifier l'extension de base de données pour le moteur de données en colonnes
- Tester le moteur de données en colonnes
Préparation
Avant de cliquer sur le bouton "Démarrer l'atelier"
Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique vous permet de suivre les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
- Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
Remarque : Ouvrez une fenêtre de navigateur en mode incognito (recommandé) ou de navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
- Vous disposez d'un temps limité. N'oubliez pas qu'une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Utilisez uniquement le compte de participant pour cet atelier. Si vous utilisez un autre compte Google Cloud, des frais peuvent être facturés à ce compte.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, une boîte de dialogue s'affiche pour vous permettre de sélectionner un mode de paiement.
Sur la gauche, vous trouverez le panneau "Détails concernant l'atelier", qui contient les éléments suivants :
- Le bouton "Ouvrir la console Google Cloud"
- Le temps restant
- Les identifiants temporaires que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).
L'atelier lance les ressources, puis ouvre la page "Se connecter" dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
-
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}}
Vous trouverez également le nom d'utilisateur dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}}
Vous trouverez également le mot de passe dans le panneau "Détails concernant l'atelier".
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud.
Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
-
Accédez aux pages suivantes :
- Acceptez les conditions d'utilisation.
- N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
- Ne vous inscrivez pas à des essais sans frais.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Pour accéder aux produits et services Google Cloud, cliquez sur le menu de navigation ou saisissez le nom du service ou du produit dans le champ Recherche.
Activer Cloud Shell
Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud. Cloud Shell vous permet d'accéder via une ligne de commande à vos ressources Google Cloud.
-
Cliquez sur Activer Cloud Shell
en haut de la console Google Cloud.
-
Passez les fenêtres suivantes :
- Accédez à la fenêtre d'informations de Cloud Shell.
- Autorisez Cloud Shell à utiliser vos identifiants pour effectuer des appels d'API Google Cloud.
Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET : . Le résultat contient une ligne qui déclare l'ID_PROJET pour cette session :
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.
- (Facultatif) Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
- Cliquez sur Autoriser.
Résultat :
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Facultatif) Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project
Résultat :
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Remarque : Pour consulter la documentation complète sur gcloud, dans Google Cloud, accédez au guide de présentation de la gcloud CLI.
Tâche 1 : Créer un ensemble de données de référence pour tester le moteur de données en colonnes
Dans cet environnement d'atelier, un cluster et une instance AlloyDB sont provisionnés lorsque vous démarrez l'atelier.
- Dans la console Google Cloud, accédez au menu de navigation (
) > Afficher tous les produits. Ensuite, sous Bases de données, sélectionnez AlloyDB pour PostgreSQL.
Sur la page AlloyDB, vous trouverez un cluster nommé lab-cluster et une instance nommée lab-instance. La création et l'initialisation complètes de l'instance prennent quelques minutes.
Veuillez attendre qu'une coche verte (état Prête) s'affiche à côté de l'instance nommée lab-instance dans la colonne Nom de la ressource avant de passer à l'étape suivante.
- Sur la ligne de l'instance nommée lab-instance, sous Adresse IP privée, copiez l'adresse IP privée (par exemple,
10.100.0.2) dans un fichier texte. Vous pourrez ainsi coller la valeur à une étape ultérieure. N'incluez pas le signe deux-points ni le numéro de port (:5432).
Pour évaluer les capacités du moteur de données en colonnes, vous avez besoin d'un grand ensemble de données qui vous permettra de mesurer les performances. Lors des étapes suivantes, vous allez utiliser l'outil PostgreSQL pgbench pour générer un ensemble de données synthétiques permettant d'évaluer le moteur de données en colonnes.
-
Dans le menu de navigation (
), sous Compute Engine, cliquez sur Instances de VM.
-
Pour l'instance nommée alloydb-client, dans la colonne Connecter, cliquez sur SSH pour ouvrir une fenêtre de terminal.
-
Définissez la variable d'environnement suivante en remplaçant ALLOYDB_ADDRESS par l'adresse IP privée de l'instance AlloyDB.
export ALLOYDB=ALLOYDB_ADDRESS
- Exécutez la commande suivante pour stocker l'adresse IP privée de l'instance AlloyDB sur la VM cliente AlloyDB afin qu'elle soit conservée tout au long de l'atelier.
echo $ALLOYDB > alloydbip.txt
- Pour utiliser pgbench, vous devez d'abord créer et remplir les exemples de tables. Exécutez la commande suivante pour créer un ensemble de quatre tables. Vous serez invité à saisir le mot de passe de l'utilisateur postgres, qui est Change3Me.
La plus grande table, pgbench_accounts, contiendra 50 millions de lignes. Cette opération prend quelques minutes.
pgbench -h $ALLOYDB -U postgres -i -s 500 -F 90 -n postgres
dropping old tables...
NOTICE: table "pgbench_accounts" does not exist, skipping
NOTICE: table "pgbench_branches" does not exist, skipping
NOTICE: table "pgbench_history" does not exist, skipping
NOTICE: table "pgbench_tellers" does not exist, skipping
creating tables...
generating data (client-side)...
50000000 of 50000000 tuples (100%) done (elapsed 91.26 s, remaining 0.00 s)
creating primary keys...
done in 167.61 s (drop tables 0.00 s, create tables 0.01 s, client-side generate 93.16 s, primary keys 74.43 s).
- Connectez-vous au client psql et exécutez la requête suivante pour vérifier le nombre de lignes dans la table pgbench_accounts. Vous serez invité à saisir le mot de passe de l'utilisateur postgres, qui est Change3Me.
psql -h $ALLOYDB -U postgres
select count (*) from pgbench_accounts;
count
----------
50000000
(1 row)
Cliquez sur Vérifier ma progression pour valider l'objectif.
Créer un ensemble de données de référence
Tâche 2 : Exécuter un test de référence
À des fins d'évaluation, vous allez exécuter une requête très simple qui effectue des analyses séquentielles, puis utiliser explain pour examiner le plan de requête avant et après avoir ajouté la table de test au moteur de données en colonnes.
- Revenez au shell alloydb-client. Le client psql doit toujours être actif. Si ce n'est pas le cas, reconnectez-vous en suivant les instructions de la tâche 1. Exécutez la requête suivante pour activer le chronométrage de toutes les opérations de requête :
\timing on
- Lancez ensuite la requête suivante pour évaluer le temps d'exécution. Cette requête effectue des analyses séquentielles de l'intégralité de la table pgbench_accounts.
Remarque : Cet exemple de requête renvoie 20 lignes maximum, car il s'agit d'une démonstration.
SELECT aid, bid, abalance FROM pgbench_accounts WHERE bid < 189 OR abalance > 100 LIMIT 20;
aid | bid | abalance
-----+-----+----------
1 | 1 | 0
2 | 1 | 0
3 | 1 | 0
4 | 1 | 0
5 | 1 | 0
6 | 1 | 0
7 | 1 | 0
8 | 1 | 0
9 | 1 | 0
10 | 1 | 0
11 | 1 | 0
12 | 1 | 0
13 | 1 | 0
14 | 1 | 0
15 | 1 | 0
16 | 1 | 0
17 | 1 | 0
18 | 1 | 0
19 | 1 | 0
20 | 1 | 0
(20 rows)
- Exécutez la requête suivante pour générer un plan explain pour une requête sans restriction. Vos valeurs devraient être semblables à celles de l'exemple de résultat, mais elles varieront en raison du caractère aléatoire de la génération des données.
Remarque : Vous devrez peut-être appuyer sur la barre d'espace pour faire défiler le plan explain de la requête.
EXPLAIN (ANALYZE,COSTS,SETTINGS,BUFFERS,TIMING,SUMMARY,WAL,VERBOSE)
SELECT count(*) FROM pgbench_accounts WHERE bid < 189 OR abalance > 100;
QUERY PLAN
---------------------------------------------------------------------------------------------------------------
---------------------------------------------------
Finalize Aggregate (cost=1242226.53..1242226.54 rows=1 width=8) (actual time=11010.409..11014.083 rows=1 loop
s=1)
Output: count(*)
Buffers: shared hit=20921 read=888170
I/O Timings: read=19536.769
-> Gather (cost=1242226.32..1242226.53 rows=2 width=8) (actual time=11010.398..11014.075 rows=3 loops=1)
Output: (PARTIAL count(*))
Workers Planned: 2
Workers Launched: 2
Buffers: shared hit=20921 read=888170
I/O Timings: read=19536.769
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!! Section removed for pasting !!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Filter: ((pgbench_accounts.bid < 189) OR (pgbench_accounts.abalance > 100))
Rows Removed by Filter: 10400000
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!! Section removed for pasting !!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Buffers: shared hit=6
Planning Time: 0.117 ms
Execution Time: 11014.169 ms
(38 rows)
-
Dans les résultats, portez une attention particulière aux valeurs de temps de planification (Planning Time) et de temps d'exécution (Execution Time). Dans l'exemple de résultat, le temps de planification est de 0,117 milliseconde et le temps d'exécution est de 11 014,169 millisecondes, soit 11,014 secondes. Vos valeurs devraient être semblables à celles de l'exemple de résultat, mais elles varieront en raison du caractère aléatoire de la génération des données.
-
Copiez les valeurs de temps de planification et d'exécution issues de votre exécution dans un fichier texte afin de pouvoir les comparer ultérieurement avec les résultats une fois le moteur de données en colonnes activé. Vous pouvez également copier l'intégralité des résultats du plan de requête dans un fichier texte.
-
Appuyez sur la touche Q pour fermer le plan de requête.
Tâche 3 : Vérifier le flag de base de données pour le moteur de données en colonnes
Dans cette tâche, vous allez examiner le flag de base de données du moteur de données en colonnes dans votre instance.
-
Dans la console Google Cloud, accédez au menu de navigation (
) > Afficher tous les produits. Ensuite, sous Bases de données, sélectionnez AlloyDB pour PostgreSQL.
-
Sur la ligne de l'instance nommée lab-instance, cliquez sur Actions (icône à trois points verticaux), puis sur Modifier.
-
Développez la section Options de configuration avancées.
-
Sous Options, cliquez sur Ajouter un flag de base de données.
-
Cliquez sur Sélectionner un indicateur pour parcourir la liste des flags disponibles et découvrir les options proposées.
Notez que le flag google_columnar_engine.enabled est déjà activé (état Activé). Vous n'ajouterez pas de flag supplémentaire dans cet atelier.
- Cliquez sur Annuler pour quitter la page Modifier de l'instance.
Tâche 4 : Définir ou vérifier l'extension de base de données pour le moteur de données en colonnes
Dans cette tâche, vous allez configurer une extension de base de données afin d'activer complètement la fonctionnalité de moteur de données en colonnes pour votre cluster AlloyDB.
Contrairement à la configuration d'un flag, vous devez vous connecter à votre instance en utilisant le client psql pour activer une extension de base de données.
-
Revenez au shell alloydb-client. Le client psql doit toujours être actif. Si ce n'est pas le cas, reconnectez-vous en suivant les instructions de la tâche 1.
-
Assurez-vous d'être connecté à la base de données postgres en exécutant la requête suivante :
\c postgres
- Exécutez la requête système suivante pour afficher les détails des extensions activées dans la base de données.
Remarque : Votre liste d'extensions peut varier.
\dx
List of installed extensions
Name | Version | Schema | Description
------------------------+---------+------------+---------------------------------------
google_columnar_engine | 1.0 | public | Google extension for columnar engine
google_db_advisor | 1.0 | public | Google extension for Database Advisor
hypopg | 1.3.2 | public | Hypothetical indexes for PostgreSQL
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(4 rows)
- Si google_columnar_engine apparaît dans la liste, passez à la tâche suivante (tâche 5). Si google_columnar_engine n'apparaît pas dans la liste, exécutez la commande suivante :
CREATE EXTENSION IF NOT EXISTS google_columnar_engine;
- Exécutez à nouveau la requête d'extension pour vérifier que l'extension google_columnar_engine est activée.
\dx
Tâche 5 : Tester le moteur de données en colonnes
Étant donné que votre table principale (pgbench_accounts) est relativement petite, vous pouvez l'ajouter directement au moteur de données en colonnes pour l'évaluer. Dans un déploiement réel, vous utiliserez le framework de recommandation du moteur de données en colonnes pour identifier automatiquement les colonnes les plus utilisées dans toutes les tables qui bénéficieraient le plus d'être gérées par le moteur.
- Revenez au shell alloydb-client. Exécutez la requête suivante pour ajouter pgbench_accounts au moteur de données en colonnes. L'exécution de la requête peut prendre quelques minutes.
SELECT google_columnar_engine_add('pgbench_accounts');
- Exécutez ensuite la même requête de plan explain que précédemment pour voir les effets du moteur de données en colonnes. Vos valeurs devraient être semblables à celles de l'exemple de résultat, mais elles varieront en raison du caractère aléatoire de la génération des données.
EXPLAIN (ANALYZE,COSTS,SETTINGS,BUFFERS,TIMING,SUMMARY,WAL,VERBOSE)
SELECT count(*) FROM pgbench_accounts WHERE bid < 189 OR abalance > 100;
QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Finalize Aggregate (cost=142400.72..142400.73 rows=1 width=8) (actual time=75.948..78.680 rows=1 loops=1)
Output: count(*)
-> Gather (cost=142400.51..142400.72 rows=2 width=8) (actual time=71.555..78.667 rows=3 loops=1)
Output: (PARTIAL count(*))
Workers Planned: 2
Workers Launched: 2
-> Partial Aggregate (cost=141400.51..141400.52 rows=1 width=8) (actual time=45.768..45.771 rows=1 loops=3)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Section removed for pasting
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Rows Removed by Columnar Filter: 10400000
Rows Aggregated by Columnar Scan: 4505600
Columnar cache search mode: native
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Section removed for pasting
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Buffers: shared hit=22 read=3 dirtied=1
I/O Timings: read=0.560
Planning Time: 2.022 ms
Execution Time: 78.804 ms
(29 rows)
-
Dans les résultats, portez une attention particulière aux valeurs de temps de planification (Planning Time) et de temps d'exécution (Execution Time). Dans l'exemple après activation du moteur de données en colonnes, le temps de planification est de 2,022 millisecondes et le temps d'exécution est de 78,804 millisecondes. Vos valeurs devraient être semblables à celles de l'exemple de résultat, mais elles varieront en raison du caractère aléatoire de la génération des données.
-
D'après les exemples fournis, la différence entre le temps d'exécution avant et après activation du moteur de données en colonnes est de 10 935,365 ms, soit 10,9 secondes. Cela représente une diminution de 141 fois. Dans l'exemple après activation du moteur de données en colonnes, notez également que plus de 4,5 millions de lignes ont été agrégées à l'aide d'une analyse en colonnes plutôt que du moteur de base de données principal.
Cliquez sur Vérifier ma progression pour valider l'objectif.
Tester le moteur de données en colonnes
Remarque : Si votre score ne s'actualise pas complètement après avoir terminé toutes les tâches, développez la section Points de contrôle (la barre latérale jaune à droite de la page), puis cliquez sur Vérifier ma progression pour chaque tâche afin que le score s'actualise.
Félicitations !
Vous avez maintenant exploré les puissantes fonctionnalités du moteur de données en colonnes AlloyDB.
Formations et certifications Google Cloud
Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.
Dernière mise à jour du manuel : 16 janvier 2025
Dernier test de l'atelier : 15 décembre 2025
Copyright 2026 Google LLC. Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.