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.

Namen und Zone des Clusters Ihrer 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 Zone des GKE-Clusters Ihrer Umgebung aufgelistet.

    Wenn der Wert dieses Parameters beispielsweise projects/example-project/zones/europe-west3-a/clusters/europe-west3-composer-exam--7b206598-gke lautet, lautet der Clustername europe-west3-composer-exam--7b206598-gke, die Clusterzone ist europe-west3-a.

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. Ermitteln Sie den Nutzernamen, das Passwort und den Datenbanknamen aus dem Wert dieses Parameters.

    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

  1. Rufen Sie die Airflow-Weboberfläche für Ihre Umgebung auf.
  2. Wechseln Sie in der Airflow-Weboberfläche zu Administrator > Konfiguration.
  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 mysql+mysqldb://root:example-password@127.0.0.1/composer-1-16-2-airflow-1-10-14-3e9e2312?charset=utf8 lautet, lautet der Nutzername root, das Passwort ist example-password und der Datenbankname composer-1-16-2-airflow-1-10-14-3e9e2312.

Adresse des Datenbankendpunkts abrufen

  1. Rufen Sie in der Google Cloud Console die Seite Kubernetes Engine > Gateways, Dienste und Ingress auf:

    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 die Zone des Clusters 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

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

  2. Installieren Sie das Paket mysql-client:

    sudo apt-get update
    sudo apt-get install mysql-client
    

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

mysql --user=USERNAME --password \
  --host=DB_ENDPOINT \
  DB_NAME

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

mysqldump --user=USERNAME --password \
  --host=DB_ENDPOINT \
  DB_NAME > DUMP_FILE

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:

gcloud storage 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