Accéder à la base de données Airflow

Cloud Composer 1 | Cloud Composer 2

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

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

    Accéder à la page Environnements

  2. Sélectionnez votre environnement.

  3. Accédez à l'onglet Configuration de l'environnement.

  4. L'élément Cluster GKE indique 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 est europe-west3-composer-exam--7b206598-gke, mais la zone du cluster est europe-west3-a.

Obtenir les paramètres de connexion à la base de données

Airflow 2

  1. Accédez à l'interface Web Airflow associée à votre environnement.
  2. Dans l'interface Web Airflow, accédez à Admin > Configurations (Administration > Configurations).

  3. Recherchez le paramètre sql_alchemy_conn.

  4. 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 postgresql+psycopg2://root:example-password@127.0.0.1:3306/composer-1-17-0-airflow-2-0-1-400fa094, le nom d'utilisateur est root, le mot de passe est example-password et le nom de la base de données est composer-1-17-0-airflow-2-0-1-400fa094.

Airflow 1

  1. Accédez à l'interface Web Airflow associée à votre environnement.
  2. Dans l'interface Web Airflow, accédez à Admin > Configuration.
  3. Recherchez le paramètre sql_alchemy_conn.
  4. 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, le nom d'utilisateur est root, le mot de passe est example-password et le nom de la base de données est composer-1-16-2-airflow-1-10-14-3e9e2312.

Obtenir l'adresse du point de terminaison de la base de données

  1. Dans la console Google Cloud, accédez à la page Kubernetes Engine > Passerelles, services et entrées:

    Accéder à la page Services et entrées

  2. 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é.

  3. 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:

    1. Développez le menu Gestion, sécurité, disques, réseau et location unique.
    2. Accédez à l'onglet Réseau.
    3. Dans Interfaces réseau, développez l'élément d'interface par défaut.
    4. Développez la section Afficher les plages d'adresses IP d'alias.
    5. 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.
    6. 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

  1. Connectez-vous à l'instance de VM que vous avez créée à l'étape précédente.

  2. Installez le package postgresql-client.

    sudo apt-get update
    sudo apt-get install postgresql-client
    

Airflow 1

  1. Connectez-vous à l'instance de VM que vous avez créée à l'étape précédente.

  2. 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 précédemment 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. Par exemple, dump.sql.

Pour transférer le fichier de vidage vers un bucket Cloud Storage, procédez comme suit :

gsutil cp DUMP_FILE BUCKET_ADDRESS

Remplacez :

  • DUMP_FILE par le nom du fichier de vidage.
  • BUCKET_ADDRESS par l'adresse du bucket. Par exemple, gs://europe-west3-db-dump.

Vous pouvez également transférer le fichier de vidage localement avec gcloud compute scp.

Étapes suivantes