Auf die Airflow-Datenbank zugreifen

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Auf dieser Seite wird erläutert, wie Sie eine Verbindung zu einer Cloud SQL-Instanz herstellen, die die Airflow-Datenbank Ihrer Cloud Composer-Umgebung ausführt und wie Sie SQL-Abfragen ausführen.

Sie können beispielsweise Abfragen direkt in der Airflow-Datenbank ausführen, Datenbanksicherungen erstellen, Statistiken basierend auf dem Datenbankinhalt erfassen oder andere benutzerdefinierte Informationen aus der Datenbank abrufen.

Bei einer Cloud Composer-Umgebung können Sie beispielsweise von einer VM im GKE-Cluster Ihrer Umgebung eine Verbindung zur Airflow-Datenbank herstellen.

Name und Region des Clusters der Umgebung abrufen

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zur Seite Umgebungen“

  2. Wählen Sie Ihre Umgebung aus.

  3. Rufen Sie den Tab Umgebungskonfiguration auf.

  4. Im Element GKE-Cluster werden der Name und die Region aufgeführt. des GKE-Cluster Ihrer Umgebung.

    Wenn der Wert dieses Parameters beispielsweise projects/example-project/locations/us-central1/clusters/us-central1-composer-exam-e-23125af4-gke, lautet der Clustername us-central1-composer-exam-e-23125af4-gke, der Clusterregion ist us-central1.

Parameter für die Datenbankverbindung abrufen

Airflow 2

  1. Rufen Sie die Airflow-Weboberfläche für Ihre Umgebung auf.
  2. Wechseln Sie in der Airflow-Weboberfläche zu Administrator > Konfigurationen.

  3. Suchen Sie den Parameter sql_alchemy_conn.

  4. Rufen Sie den Benutzernamen, das Passwort und den Datenbanknamen aus dem Wert dieser .

    Wenn der Wert dieses Parameters beispielsweise postgresql+psycopg2://root:example-password@127.0.0.1:3306/composer-1-17-0-airflow-2-0-1-400fa094, dann lautet der Nutzername root, das Passwort example-password und der Datenbankname composer-1-17-0-airflow-2-0-1-400fa094.

Airflow 1

Cloud Composer 2 unterstützt nur Airflow 2.

Adresse des Datenbankendpunkts abrufen

Öffentliche IP-Adresse

  1. Wechseln Sie in der Google Cloud Console zur Kubernetes Engine > Gateways, Dienste und Seite für eingehenden Traffic:

    Zu "Dienste & Ingress"

  2. Wählen Sie den Dienst airflow-sqlproxy-service für Ihren Cluster aus. Sie können den Namen des Clusters oder den aufgeführten IP-Bereich für Endpunkte verwenden, um das richtige Element zu ermitteln.

  3. Suchen Sie auf der Seite Dienstdetails die IP-Adresse eines Bereitstellungs-Pods. Sie wird im Abschnitt Pods bereitstellen in der Spalte Endpunkte aufgeführt.

Private IP-Adresse – PSC

  1. Wechseln Sie in der Google Cloud Console zur Netzwerkdienste > Seite Private Service Connect:

    Zu Private Service Connect

  2. Klicken Sie auf den Endpunkt mit dem Namen Ihrer Umgebung. Zum Beispiel kann es sein, mit dem Namen us-central1-example-environ-d9cb394f-psc.

  3. Ihre Umgebung stellt über die angegebene IP-Adresse eine Verbindung zur Datenbank her in die Zeile IP-Adresse ein.

Private IP-Adresse – VPC-Peerings

  1. Wechseln Sie in der Google Cloud Console zur Kubernetes Engine > Gateways, Dienste und Seite für eingehenden Traffic:

    Zu "Dienste & Ingress"

  2. Wählen Sie den Dienst airflow-sqlproxy-service für Ihren Cluster aus. Sie können den Namen des Clusters oder den aufgeführten IP-Bereich für Endpunkte verwenden, um das richtige Element zu ermitteln.

  3. Suchen Sie auf der Seite Dienstdetails die IP-Adresse eines Bereitstellungs-Pods. Sie wird im Abschnitt Pods bereitstellen in der Spalte Endpunkte aufgeführt.

VM-Instanz erstellen

Erstellen Sie eine neue VM-Instanz mit den folgenden Parametern:

  • Region Wählen Sie die Region des Clusters aus.

  • Zone. Wählen Sie eine beliebige Zone in derselben Region wie den Cluster aus.

  • Bootlaufwerk. Wählen Sie eine Linux-Distribution aus, z. B. Ubuntu 21.04 LTS.

  • Geben Sie eine IP-Adresse im IP-Bereich des Clusters an:

    1. Erweitern Sie das Menü Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten.
    2. Rufen Sie den Tab Netzwerk auf.
    3. Maximieren Sie unter Netzwerkschnittstellen das Element Standard.
    4. Maximieren Sie Alias-IP-Bereiche einblenden.
    5. Wählen Sie im Subnetzbereich den IP-Bereich gke-services für den Cluster aus. Beispiel: gke-europe-west3-composer-exam7b206598-gke-services-115b26e7. Sie haben im vorherigen Schritt den Namen des Clusters abgerufen.
    6. Geben Sie im Alias-IP-Bereich eine IP-Adresse für die VM-Instanz im IP-Adressbereich des angegebenen Subnetzbereichs an.

Verbindung zur VM-Instanz herstellen und das SQL-Clientpaket installieren

Airflow 2

  1. Stellen Sie eine Verbindung zur VM-Instanz her, die Sie im vorherigen Schritt erstellt haben.

  2. Installieren Sie das Paket postgresql-client:

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

Airflow 1

Cloud Composer 2 unterstützt nur Airflow 2.

Verbindung zur Airflow-Datenbank herstellen

Führen Sie den folgenden Befehl aus, während Sie mit der VM-Instanz verbunden sind, um eine Verbindung zur Airflow-Datenbank herzustellen:

Airflow 2

psql --user=USERNAME --password \
  --host=DB_ENDPOINT \
  --port=3306 \
  DB_NAME

Airflow 1

Cloud Composer 2 unterstützt nur Airflow 2.

Ersetzen Sie folgende Werte durch die Werte, die Sie in den vorherigen Schritten abgerufen haben:

  • USERNAME durch den Nutzernamen.
  • DB_ENDPOINT durch die IP-Adresse des abgerufenen Datenbankendpunkts weiter oben in diesem Leitfaden.
  • DB_NAME durch den Datenbanknamen.

SQL-Abfragen ausführen

Eine Eingabeaufforderung wird angezeigt. Sie können SQL-Abfragen in dieser Eingabeaufforderung ausführen. Beispiel:

SELECT * FROM dag LIMIT 10;

Inhalt der Datenbank in einer Dumpdatei sichern und in einen Bucket übertragen

Führen Sie den folgenden Befehl aus, um Datenbankinhalte in eine Dump-Datei zu speichern:

Airflow 2

pg_dump --user=USERNAME --password \
  --host=DB_ENDPOINT \
  --port=3306 \
  DB_NAME > DUMP_FILE

Airflow 1

Cloud Composer 2 unterstützt nur Airflow 2.

Ersetzen Sie:

  • USERNAME durch den Nutzernamen.
  • DB_ENDPOINT durch die IP-Adresse des Datenbankendpunkts.
  • DB_NAME durch den Datenbanknamen.
  • DUMP_FILE durch den Namen der Dumpdatei. Beispiel: dump.sql.

So übertragen Sie die Dumpdatei in einen Cloud Storage-Bucket:

gsutil cp DUMP_FILE BUCKET_ADDRESS

Ersetzen Sie:

  • DUMP_FILE durch den Namen der Dumpdatei.
  • BUCKET_ADDRESS durch die Adresse des Buckets. Beispiel: gs://europe-west3-db-dump.

Alternativ können Sie die Dumpdatei lokal mit gcloud compute scp übertragen.

Nächste Schritte