Mengakses database Airflow

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

  1. Di konsol Google Cloud, buka halaman Environments.

    Buka Lingkungan

  2. Pilih lingkungan Anda.

  3. Buka tab Konfigurasi lingkungan.

  4. 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 adalah europe-west3-composer-exam--7b206598-gke, zona cluster adalah europe-west3-a.

Mendapatkan parameter koneksi database

Airflow 2

  1. Akses antarmuka web Airflow untuk lingkungan Anda.
  2. Di antarmuka web Airflow, buka Admin > Configurations.

  3. Temukan parameter sql_alchemy_conn.

  4. 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 adalah root, sandinya adalah example-password, nama database-nya adalah composer-1-17-0-airflow-2-0-1-400fa094.

Aliran udara 1

  1. Akses antarmuka web Airflow untuk lingkungan Anda.
  2. Di antarmuka web Airflow, buka Admin > Configuration.
  3. Temukan parameter sql_alchemy_conn.
  4. 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 adalah root, sandinya adalah example-password, nama database-nya adalah composer-1-16-2-airflow-1-10-14-3e9e2312.

Mendapatkan alamat endpoint database

  1. Di konsol Google Cloud, buka halaman Kubernetes Engine > Gateways, Services & Ingress:

    Buka Services & Ingress

  2. 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.

  3. 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:

    1. Luaskan item Management, security, disks, networking, sole tenancy.
    2. Buka tab Networking.
    3. Di Network interfaces, luaskan item antarmuka default.
    4. Luaskan Tampilkan rentang IP alias.
    5. 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.
    6. 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

  1. Hubungkan ke instance VM yang Anda buat di langkah sebelumnya.

  2. Instal paket postgresql-client.

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

Aliran udara 1

  1. Hubungkan ke instance VM yang Anda buat di langkah sebelumnya.

  2. 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.

Langkah selanjutnya