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
Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.
Wählen Sie Ihre Umgebung aus.
Rufen Sie den Tab Umgebungskonfiguration auf.
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 Clusternameeurope-west3-composer-exam--7b206598-gke
, die Clusterzone isteurope-west3-a
.
Parameter für die Datenbankverbindung abrufen
Airflow 2
- Rufen Sie die Airflow-Weboberfläche für Ihre Umgebung auf.
Wechseln Sie in der Airflow-Weboberfläche zu Administrator > Konfigurationen.
Suchen Sie den Parameter
sql_alchemy_conn
.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 Nutzernameroot
, das Passwortexample-password
und der Datenbanknamecomposer-1-17-0-airflow-2-0-1-400fa094
.
Airflow 1
- Rufen Sie die Airflow-Weboberfläche für Ihre Umgebung auf.
- Wechseln Sie in der Airflow-Weboberfläche zu Administrator > Konfiguration.
- Suchen Sie den Parameter
sql_alchemy_conn
. 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 Nutzernameroot
, das Passwort istexample-password
und der Datenbanknamecomposer-1-16-2-airflow-1-10-14-3e9e2312
.
Adresse des Datenbankendpunkts abrufen
Rufen Sie in der Google Cloud Console die Seite Kubernetes Engine > Gateways, Dienste und Ingress auf:
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.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:
- Erweitern Sie das Menü Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten.
- Rufen Sie den Tab Netzwerk auf.
- Maximieren Sie unter Netzwerkschnittstellen das Element Standard.
- Maximieren Sie Alias-IP-Bereiche einblenden.
- 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. - 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
Stellen Sie eine Verbindung zur VM-Instanz her, die Sie im vorherigen Schritt erstellt haben.
Installieren Sie das Paket
postgresql-client
:sudo apt-get update sudo apt-get install postgresql-client
Airflow 1
Stellen Sie eine Verbindung zur VM-Instanz her, die Sie im vorherigen Schritt erstellt haben.
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.