Menjalankan transformasi di BigQuery

Halaman ini menjelaskan cara menjalankan transformasi ke BigQuery, bukan Spark, di Cloud Data Fusion.

Untuk mengetahui informasi selengkapnya, lihat Ringkasan Transformation Pushdown.

Sebelum memulai

Transformation Pushdown tersedia di versi 6.5.0 dan yang lebih baru. Jika pipeline Anda berjalan di lingkungan yang lebih lama, Anda dapat mengupgrade instance ke versi terbaru.

Mengaktifkan Transformation Pushdown di pipeline Anda

Konsol

Untuk mengaktifkan Transformation Pushdown di pipeline yang di-deploy, lakukan hal berikut:

  1. Buka instance Anda:

    1. Di konsol Google Cloud , buka halaman Cloud Data Fusion.

    2. Untuk membuka instance di Cloud Data Fusion Studio, klik Instance, lalu klik View instance.

      Buka Instance

  2. Klik Menu > Daftar.

    Tab pipeline yang di-deploy akan terbuka.

  3. Klik pipeline yang di-deploy yang diinginkan untuk membukanya di Pipeline Studio.

  4. Klik Configure > Transformation Pushdown.

    Aktifkan Pengoptimalan Transformasi.

  5. Klik Enable Transformation Pushdown.

  6. Di kolom Dataset, masukkan nama set data BigQuery.

    Opsional: Untuk menggunakan makro, klik M. Untuk mengetahui informasi selengkapnya, lihat Set data.

  7. Opsional: Konfigurasi opsi, jika diperlukan.

  8. Klik Save.

Konfigurasi opsional

.
Properti Mendukung makro Versi Cloud Data Fusion yang didukung Deskripsi
Gunakan koneksi Tidak 6.7.0 dan yang lebih baru Apakah akan menggunakan koneksi yang ada.
Koneksi Ya 6.7.0 dan yang lebih baru Nama koneksi. Koneksi ini memberikan informasi project dan akun layanan.
Opsional: Gunakan makro fungsi, ${conn(connection_name)}.
ID Project Set Data Ya 6.5.0 Jika set data berada di project yang berbeda dengan tempat tugas BigQuery berjalan, masukkan ID project set data. Jika tidak ada nilai yang diberikan, secara default, nilai ini akan menggunakan ID project tempat tugas berjalan.
ID Project Ya 6.5.0 ID project Google Cloud .
Jenis Akun Layanan Ya 6.5.0 Pilih salah satu opsi berikut:
  • Jalur File: jalur file ke akun layanan.
  • JSON: konten JSON akun layanan.
Defaultnya adalah JSON.
Jalur File Akun Layanan Ya 6.5.0 Jalur di sistem file lokal ke kunci akun layanan yang digunakan untuk otorisasi. Jalur ini ditetapkan ke auto-detect saat berjalan di cluster Managed Service untuk Apache Spark. Saat berjalan di cluster lain, file harus ada di setiap node dalam cluster. Defaultnya adalah auto-detect.
JSON Akun Layanan Ya 6.5.0 Konten file JSON akun layanan.
Nama Bucket Sementara Ya 6.5.0 Bucket Cloud Storage yang menyimpan data sementara. Bucket ini otomatis dibuat jika tidak ada, tetapi tidak otomatis dihapus. Data Cloud Storage akan dihapus setelah dimuat ke BigQuery. Jika nilai ini tidak diberikan, bucket unik akan dibuat, lalu dihapus setelah pipeline selesai berjalan. Akun layanan harus memiliki izin untuk membuat bucket di project yang dikonfigurasi.
Lokasi Ya 6.5.0 Lokasi tempat set data BigQuery dibuat. Nilai ini diabaikan jika set data atau bucket sementara sudah ada exists. Defaultnya adalah US multi-region.
Nama Kunci Enkripsi Ya 6.5.1/0.18.1 Kunci enkripsi yang dikelola pelanggan (CMEK) yang mengenkripsi data yang ditulis ke bucket, set data, atau tabel yang dibuat oleh plugin. Jika bucket, set data, atau tabel sudah ada, nilai ini akan diabaikan.
Mempertahankan Tabel BigQuery setelah Selesai Ya 6.5.0 Apakah akan mempertahankan semua tabel sementara BigQuery yang dibuat selama pipeline berjalan untuk tujuan proses debug dan validasi. Defaultnya adalah No.
TTL Tabel Sementara (dalam jam) Ya 6.5.0 Tetapkan TTL tabel untuk tabel sementara BigQuery, dalam jam. Hal ini berguna sebagai pengaman jika pipeline dibatalkan dan proses pembersihan terganggu (misalnya, jika cluster eksekusi dimatikan secara tiba-tiba). Menetapkan nilai ini ke 0 akan menonaktifkan TTL tabel. Defaultnya adalah 72 (3 hari).
Prioritas Tugas Ya 6.5.0 Prioritas yang digunakan untuk menjalankan tugas BigQuery. Pilih salah satu opsi berikut:
  1. Batch: tugas batch diantrekan dan dimulai segera setelah resource tanpa aktivitas tersedia, biasanya dalam beberapa menit. Jika tugas tidak dimulai dalam waktu tiga jam, prioritasnya dialihkan ke interaktif.
  2. Interaktif: tugas interaktif dijalankan sesegera mungkin dan dihitung dalam batas tarif serentak dan batas tarif harian.
Defaultnya adalah Batch.
Tahapan untuk memaksa pushdown Ya 6.7.0 Tahapan yang didukung untuk selalu dijalankan di BigQuery. Setiap nama tahapan harus berada di baris terpisah.
Tahapan untuk melewati pushdown Ya 6.7.0 Tahapan yang didukung untuk tidak pernah dijalankan di BigQuery. Setiap nama tahapan harus berada di baris terpisah.
Gunakan BigQuery Storage Read API Ya 6.7.0 Apakah akan menggunakan BigQuery Storage Read API saat mengekstrak data dari BigQuery selama eksekusi pipeline. Opsi ini dapat meningkatkan performa Transformation Pushdown, tetapi menimbulkan biaya tambahan. Opsi ini mengharuskan Scala 2.12 diinstal di lingkungan eksekusi.

Memantau perubahan performa di log

Log runtime pipeline menyertakan pesan yang menampilkan kueri SQL yang dijalankan di BigQuery. Anda dapat memantau tahapan mana dalam pipeline yang didorong ke BigQuery.

Contoh berikut menunjukkan entri log saat eksekusi pipeline dimulai. Log menunjukkan bahwa operasi JOIN di pipeline Anda telah didorong ke BigQuery untuk dieksekusi:

  INFO  [Driver:i.c.p.g.b.s.BigQuerySQLEngine@190] - Validating join for stage 'Users' can be executed on BigQuery: true
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'UserProfile'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'UserDetails'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@292] - Starting join for dataset 'Users'
  INFO  [Driver:i.c.p.g.b.s.BigQuerySQLEngine@190] - Validating join for stage 'UserPurchases' can be executed on BigQuery: true
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'Purchases'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@292] - Starting join for dataset 'UserPurchases'
  INFO  [Driver:i.c.p.g.b.s.BigQuerySQLEngine@190] - Validating join for stage 'MostPopularNames' can be executed on BigQuery: true
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@131] - Starting push for dataset 'FirstNameCounts'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@292] - Starting join for dataset 'MostPopularNames'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@193] - Starting pull for dataset 'MostPopularNames'

Contoh berikut menunjukkan nama tabel yang akan ditetapkan untuk setiap set data yang terlibat dalam eksekusi pushdown:

  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset Purchases stored in table <TABLE_ID>
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset UserDetails stored in table <TABLE_ID>
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset FirstNameCounts stored in table <TABLE_ID>
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@145] - Executing Push operation for dataset UserProfile stored in table <TABLE_ID>

Saat eksekusi berlanjut, log akan menampilkan penyelesaian tahapan push, dan akhirnya eksekusi operasi JOIN. Contoh:

  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@133] - Completed push for dataset 'UserProfile'
  DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@133] - Completed push for dataset 'UserDetails'
  DEBUG [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@235] - Executing join operation for dataset Users
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQueryJoinDataset@118] - Creating table `<TABLE_ID>` using job: <JOB_ID> with SQL statement: SELECT `UserDetails`.id AS `id` , `UserDetails`.first_name AS `first_name` , `UserDetails`.last_name AS `last_name` , `UserDetails`.email AS `email` , `UserProfile`.phone AS `phone` , `UserProfile`.profession AS `profession` , `UserProfile`.age AS `age` , `UserProfile`.address AS `address` , `UserProfile`.score AS `score` FROM `your_project.your_dataset.<DATASET_ID>` AS `UserProfile` LEFT JOIN `your_project.your_dataset.<DATASET_ID>` AS `UserDetails` ON `UserProfile`.id = `UserDetails`.id
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQueryJoinDataset@151] - Created BigQuery table `<TABLE_ID>
  INFO  [batch-sql-engine-adapter:i.c.p.g.b.s.BigQuerySQLEngine@245] - Executed join operation for dataset Users

Setelah semua tahapan selesai, pesan akan menampilkan bahwa operasi Pull telah selesai. Hal ini menunjukkan bahwa proses ekspor BigQuery telah dipicu dan data akan mulai dibaca ke dalam pipeline setelah tugas ekspor ini dimulai. Contoh:

DEBUG [batch-sql-engine-adapter:i.c.c.e.s.b.BatchSQLEngineAdapter@196] - Completed pull for dataset 'MostPopularNames'

Jika eksekusi pipeline mengalami error, error tersebut akan dijelaskan dalam log.

Untuk mengetahui detail tentang eksekusi operasi JOIN BigQuery, seperti penggunaan resource, waktu eksekusi, dan penyebab error, Anda dapat melihat data Tugas BigQuery menggunakan ID Tugas, yang muncul di log tugas.

Meninjau metrik pipeline

Untuk mengetahui informasi selengkapnya tentang metrik yang disediakan Cloud Data Fusion untuk bagian pipeline yang dijalankan di BigQuery, lihat Metrik pipeline pushdown BigQuery.

Langkah berikutnya