Mengakses database Airflow

Cloud Composer 1 | Cloud Composer 2

Halaman ini menjelaskan cara untuk terhubung ke instance Cloud SQL yang menjalankan database Airflow di lingkungan Cloud Composer Anda dan menjalankan kueri SQL.

Misalnya, Anda mungkin ingin menjalankan kueri langsung pada database Airflow, membuat cadangan database, mengumpulkan statistik berdasarkan konten database, atau mengambil informasi kustom lainnya dari database.

Untuk lingkungan Cloud Composer, salah satu cara untuk melakukannya adalah dengan terhubung ke database Airflow dari VM di cluster GKE 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 dan zona cluster adalah europe-west3-a.

Mendapatkan parameter koneksi database

Aliran udara 2

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

  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, nama penggunanya adalah root, sandinya adalah example-password, dan 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 > Konfigurasi.
  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, dan nama database-nya adalah composer-1-16-2-airflow-1-10-14-3e9e2312.

Mendapatkan alamat endpoint database

  1. Di konsol Google Cloud, buka Kubernetes Engine > halaman 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 yang menayangkan. Parameter ini tercantum di bagian pod penayangan, di kolom Endpoint.

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 di rentang IP cluster:

    1. Luaskan item Pengelolaan, keamanan, disk, jaringan, tenancy tunggal.
    2. Buka tab Jaringan.
    3. Di Network interfaces, luaskan item antarmuka default.
    4. Luaskan Tampilkan rentang IP alias.
    5. Di bagian Subnet range, pilih rentang IP gke-services untuk cluster Anda. Contohnya, gke-europe-west3-composer-exam7b206598-gke-services-115b26e7. Anda memperoleh nama cluster pada langkah sebelumnya.
    6. Di Rentang IP Alias, 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

Aliran udara 2

  1. Hubungkan ke instance VM yang Anda buat pada 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 pada 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:

Aliran udara 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 peroleh di awal dalam panduan ini.
  • DB_NAME dengan nama database.

Menjalankan kueri SQL

Perintah akan muncul. Anda dapat menjalankan kueri SQL dalam prompt ini. Contoh:

SELECT * FROM dag LIMIT 10;

Membuang konten database dan mentransfernya ke bucket

Untuk membuang konten database ke dalam file, jalankan perintah berikut:

Aliran udara 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:

gsutil cp DUMP_FILE BUCKET_ADDRESS

Ganti:

  • DUMP_FILE dengan nama file dump.
  • BUCKET_ADDRESS dengan alamat bucket. Contoh, gs://europe-west3-db-dump.

Sebagai alternatif, Anda dapat mentransfer file dump secara lokal dengan gcloud compute scp.

Langkah selanjutnya