Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Cette page explique comment se connecter à une instance Cloud SQL qui exécute la base de données Airflow de votre environnement Cloud Composer et exécuter des requêtes SQL.
Par exemple, vous pouvez exécuter des requêtes directement sur la base de données Airflow, effectuer des sauvegardes de la base de données, collecter des statistiques en fonction du contenu de la base de données ou récupérer d'autres informations personnalisées de la base de données.
Pour un environnement Cloud Composer, vous pouvez vous connecter à la base de données Airflow depuis une VM dans le cluster GKE de votre environnement.
Obtenir le nom et la zone du cluster de votre environnement
Dans la console Google Cloud, accédez à la page Environnements.
Sélectionnez votre environnement.
Accédez à l'onglet Configuration de l'environnement.
L'élément Cluster GKE répertorie le nom et la zone du cluster GKE de votre environnement.
Par exemple, si la valeur de ce paramètre est
projects/example-project/zones/europe-west3-a/clusters/europe-west3-composer-exam--7b206598-gke
, le nom du cluster esteurope-west3-composer-exam--7b206598-gke
, mais la zone du cluster esteurope-west3-a
.
Obtenir les paramètres de connexion à la base de données
Airflow 2
- Accédez à l'interface Web Airflow associée à votre environnement.
Dans l'interface Web Airflow, accédez à Admin > Configurations (Administration > Configurations).
Recherchez le paramètre
sql_alchemy_conn
.Récupérez le nom d'utilisateur, le mot de passe et le nom de la base de données à partir de la valeur de ce .
Par exemple, si la valeur de ce paramètre est
postgresql+psycopg2://root:example-password@127.0.0.1:3306/composer-1-17-0-airflow-2-0-1-400fa094
le nom d'utilisateur estroot
, le mot de passeexample-password
et le nom de la base de donnéescomposer-1-17-0-airflow-2-0-1-400fa094
.
Airflow 1
- Accédez à l'interface Web Airflow associée à votre environnement.
- Dans l'interface Web Airflow, accédez à Admin > Configuration.
- Recherchez le paramètre
sql_alchemy_conn
. Récupérez le nom d'utilisateur, le mot de passe et le nom de la base de données à partir de la valeur de ce paramètre.
Par exemple, si la valeur de ce paramètre est
mysql+mysqldb://root:example-password@127.0.0.1/composer-1-16-2-airflow-1-10-14-3e9e2312?charset=utf8
alors le nom d'utilisateur estroot
, le mot de passe estexample-password
, le nom de la base de données estcomposer-1-16-2-airflow-1-10-14-3e9e2312
.
Obtenir l'adresse du point de terminaison de la base de données
Dans la console Google Cloud, accédez à Kubernetes Engine > Passerelles, services et Entrée:
Sélectionnez le service
airflow-sqlproxy-service
pour votre cluster. Vous pouvez utiliser le nom du cluster ou la plage d'adresses IP répertoriée pour les points de terminaison afin de rechercher l'élément approprié.Sur la page Informations sur le service, recherchez l'adresse IP d'un pod de diffusion. Il est répertorié dans la section Pods de diffusion, dans la colonne Points de terminaison.
Créez une instance de VM
Créez une instance de VM avec les paramètres suivants :
Région : Sélectionnez la même région que votre cluster.
Zone : Sélectionnez la même zone que votre cluster.
Disque de démarrage : Sélectionnez une distribution Linux, par exemple
Ubuntu 21.04 LTS
.Spécifiez une adresse IP dans la plage d'adresses IP du cluster :
- Développez le menu Gestion, sécurité, disques, réseau et location unique.
- Accédez à l'onglet Réseau.
- Dans Interfaces réseau, développez l'élément d'interface par défaut.
- Développez la section Afficher les plages d'adresses IP d'alias.
- Dans le champ Plage de sous-réseaux, sélectionnez la plage d'adresses IP
gke-services
de votre cluster. Exemple :gke-europe-west3-composer-exam7b206598-gke-services-115b26e7
. Vous avez obtenu le nom du cluster à l'étape précédente. - Dans la plage d'adresses IP d'alias, spécifiez une adresse IP pour l'instance de VM qui se trouve dans la plage d'adresses IP de la plage de sous-réseau spécifiée.
Se connecter à l'instance de VM et installer le package client SQL
Airflow 2
Connectez-vous à l'instance de VM que vous avez créée à l'étape précédente.
Installez le package
postgresql-client
.sudo apt-get update sudo apt-get install postgresql-client
Airflow 1
Connectez-vous à l'instance de VM que vous avez créée à l'étape précédente.
Installez le package
mysql-client
.sudo apt-get update sudo apt-get install mysql-client
Se connecter à la base de données Airflow
Lorsque vous êtes connecté à l'instance de VM, exécutez la commande suivante pour vous connecter à la base de données Airflow :
Airflow 2
psql --user=USERNAME --password \
--host=DB_ENDPOINT \
--port=3306 \
DB_NAME
Airflow 1
mysql --user=USERNAME --password \
--host=DB_ENDPOINT \
DB_NAME
Remplacez les valeurs obtenues aux étapes précédentes :
USERNAME
par le nom d'utilisateur ;DB_ENDPOINT
par l'adresse IP du point de terminaison de la base de données que vous avez obtenu ; plus tôt dans ce guide.DB_NAME
par le nom de la base de données.
Exécuter des requêtes SQL
Une invite s'affiche. Vous pouvez exécuter des requêtes SQL dans cette invite. Exemple :
SELECT * FROM dag LIMIT 10;
Vider le contenu de la base de données et le transférer dans un bucket
Pour vider le contenu de la base de données dans un fichier, exécutez la commande suivante :
Airflow 2
pg_dump --user=USERNAME --password \
--host=DB_ENDPOINT \
--port=3306 \
DB_NAME > DUMP_FILE
Airflow 1
mysqldump --user=USERNAME --password \
--host=DB_ENDPOINT \
DB_NAME > DUMP_FILE
Remplacez :
USERNAME
par le nom d'utilisateur.DB_ENDPOINT
par l'adresse IP du point de terminaison de la base de données.DB_NAME
par le nom de la base de données.DUMP_FILE
par le nom du fichier de vidage. Exemple :dump.sql
Pour transférer le fichier de vidage vers un bucket Cloud Storage, procédez comme suit :
gcloud storage cp DUMP_FILE BUCKET_ADDRESS
Remplacez :
DUMP_FILE
par le nom du fichier de vidage.BUCKET_ADDRESS
par l'adresse du bucket. Exemple :gs://europe-west3-db-dump
Vous pouvez également transférer le fichier de vidage localement avec gcloud compute scp
.