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 qui exécute 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 basées sur le contenu de la base de données ou récupérer d'autres informations personnalisées de la base de données.

Pour y parvenir, vous pouvez vous connecter à la base de données Airflow depuis une VM dans le cluster GKE de votre environnement.

Obtenez le nom et la zone du cluster de votre environnement

  1. Dans Google Cloud Console, 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 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, alors le nom du cluster est europe-west3-composer-exam--7b206598-gke, 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 pour votre environnement.
  2. Dans l'interface Web Airflow, accédez à Admin > 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 composer-1-17-0-airflow-2-0-1-400fa094.

Airflow 1

Cloud Composer 2 n'est compatible qu'avec Airflow 2.

Obtenir l'adresse du point de terminaison du proxy SQL

  1. Dans Google Cloud Console, accédez à la page Kubernetes Engine > 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 Détails du 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.
  • (Uniquement pour Adresse IP privée) Spécifiez une adresse IP dans la plage d'adresses IP du cluster:

    1. Développez l'élément Gestion, sécurité, disques, mise en 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 la Plage de sous-réseau, 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 le champ 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

Cloud Composer 2 n'est compatible qu'avec Airflow 2.

Se connecter à la base de données Airfow

Une fois 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=SQL_ENDPOINT --port=3306 DB_NAME

Airflow 1

Cloud Composer 2 n'est compatible qu'avec Airflow 2.

Remplacez-la par les valeurs obtenues aux étapes précédentes:

  • USERNAME par le nom d'utilisateur.
  • SQL_ENDPOINT par l'adresse IP du point de terminaison SQL.
  • 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;

Videz le contenu de la base de données et transférez-le 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=SQL_ENDPOINT --port=3306 \
    DB_NAME > DUMP_FILE

Airflow 1

Cloud Composer 2 n'est compatible qu'avec Airflow 2.

Remplacez :

  • USERNAME par le nom d'utilisateur.
  • SQL_ENDPOINT par l'adresse IP du point de terminaison SQL.
  • 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 dans un bucket Cloud Storage, procédez comme suit:

gsutil cp DUMP_DILE 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.

Étape suivante