Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Halaman ini menjelaskan cara terhubung ke instance Cloud SQL yang menjalankan database Airflow dari lingkungan Cloud Composer Anda dan menjalankan kueri SQL.
Misalnya, Anda mungkin ingin menjalankan kueri langsung di database Airflow, membuat cadangan database, mengumpulkan statistik berdasarkan konten database, atau mengambil informasi kustom lainnya dari database.
Untuk lingkungan Cloud Composer, salah satu cara melakukannya adalah dengan menghubungkan ke database Airflow dari VM di cluster GKE di lingkungan Anda.
Mendapatkan nama dan zona cluster lingkungan Anda
Di konsol Google Cloud, buka halaman Environments.
Pilih lingkungan Anda.
Buka tab Konfigurasi lingkungan.
Item Cluster GKE mencantumkan nama dan zona cluster GKE lingkungan Anda.
Misalnya, jika nilai parameter ini adalah
projects/example-project/zones/europe-west3-a/clusters/europe-west3-composer-exam--7b206598-gke
, nama cluster adalaheurope-west3-composer-exam--7b206598-gke
, zona cluster adalaheurope-west3-a
.
Mendapatkan parameter koneksi database
Airflow 2
- Akses antarmuka web Airflow untuk lingkungan Anda.
Di antarmuka web Airflow, buka Admin > Configurations.
Temukan parameter
sql_alchemy_conn
.Dapatkan nama pengguna, sandi, dan nama database dari nilai parameter ini.
Misalnya, jika nilai parameter ini adalah
postgresql+psycopg2://root:example-password@127.0.0.1:3306/composer-1-17-0-airflow-2-0-1-400fa094
, maka nama penggunanya adalahroot
, sandinya adalahexample-password
, nama database-nya adalahcomposer-1-17-0-airflow-2-0-1-400fa094
.
Aliran udara 1
- Akses antarmuka web Airflow untuk lingkungan Anda.
- Di antarmuka web Airflow, buka Admin > Configuration.
- Temukan parameter
sql_alchemy_conn
. Dapatkan nama pengguna, sandi, dan nama database dari nilai parameter ini.
Misalnya, jika nilai parameter ini adalah
mysql+mysqldb://root:example-password@127.0.0.1/composer-1-16-2-airflow-1-10-14-3e9e2312?charset=utf8
, maka nama penggunanya adalahroot
, sandinya adalahexample-password
, nama database-nya adalahcomposer-1-16-2-airflow-1-10-14-3e9e2312
.
Mendapatkan alamat endpoint database
Di konsol Google Cloud, buka halaman Kubernetes Engine > Gateways, Services & Ingress:
Pilih layanan
airflow-sqlproxy-service
untuk cluster Anda. Anda dapat menggunakan nama cluster atau rentang IP yang tercantum untuk endpoint guna mencari item yang benar.Di halaman Detail layanan, temukan alamat IP pod aktif. Pod tersebut tercantum di bagian Serving pods, di kolom Endpoints.
Membuat instance VM
Buat instance VM baru dengan parameter berikut:
Region. Pilih region yang sama dengan cluster Anda.
Zona. Pilih zona yang sama dengan cluster Anda.
Boot disk. Pilih distribusi Linux, misalnya,
Ubuntu 21.04 LTS
.Tentukan alamat IP dalam rentang IP cluster:
- Luaskan item Management, security, disks, networking, sole tenancy.
- Buka tab Networking.
- Di Network interfaces, luaskan item antarmuka default.
- Luaskan Tampilkan rentang IP alias.
- Di Rentang subnet, pilih rentang IP
gke-services
untuk cluster Anda. Contohnya,gke-europe-west3-composer-exam7b206598-gke-services-115b26e7
. Anda mendapatkan nama cluster di langkah sebelumnya. - Di Alias IP range, tentukan alamat IP untuk instance VM yang berada dalam rentang alamat IP dari rentang subnet yang ditentukan.
Menghubungkan ke instance VM dan menginstal paket klien SQL
Airflow 2
Hubungkan ke instance VM yang Anda buat di langkah sebelumnya.
Instal paket
postgresql-client
.sudo apt-get update sudo apt-get install postgresql-client
Aliran udara 1
Hubungkan ke instance VM yang Anda buat di langkah sebelumnya.
Instal paket
mysql-client
.sudo apt-get update sudo apt-get install mysql-client
Menghubungkan ke database Airflow
Saat terhubung ke instance VM, jalankan perintah berikut untuk terhubung ke database Airflow:
Airflow 2
psql --user=USERNAME --password \
--host=DB_ENDPOINT \
--port=3306 \
DB_NAME
Aliran udara 1
mysql --user=USERNAME --password \
--host=DB_ENDPOINT \
DB_NAME
Ganti dengan nilai yang diperoleh pada langkah sebelumnya:
USERNAME
dengan nama pengguna.DB_ENDPOINT
dengan alamat IP endpoint database yang Anda dapatkan sebelumnya dalam panduan ini.DB_NAME
dengan nama database.
Menjalankan kueri SQL
Perintah akan muncul. Anda dapat menjalankan kueri SQL di perintah ini. Contoh:
SELECT * FROM dag LIMIT 10;
Membuat dump konten database dan mentransfernya ke bucket
Untuk membuang konten database ke dalam file, jalankan perintah berikut:
Airflow 2
pg_dump --user=USERNAME --password \
--host=DB_ENDPOINT \
--port=3306 \
DB_NAME > DUMP_FILE
Aliran udara 1
mysqldump --user=USERNAME --password \
--host=DB_ENDPOINT \
DB_NAME > DUMP_FILE
Ganti:
USERNAME
dengan nama pengguna.DB_ENDPOINT
dengan alamat IP endpoint database.DB_NAME
dengan nama database.DUMP_FILE
dengan nama file dump. Contoh,dump.sql
.
Untuk mentransfer file dump ke bucket Cloud Storage:
gcloud storage cp DUMP_FILE BUCKET_ADDRESS
Ganti:
DUMP_FILE
dengan nama file dump.BUCKET_ADDRESS
dengan alamat bucket. Contoh,gs://europe-west3-db-dump
.
Atau, Anda dapat mentransfer file dump secara lokal
dengan gcloud compute scp
.