Ringkasan Dorongan Transformasi

Untuk meningkatkan performa pipeline data, Anda dapat mengirim beberapa operasi transformasi ke BigQuery, bukan Apache Spark. Pushdown Transformasi merujuk pada setelan yang memungkinkan operasi di pipeline data Cloud Data Fusion dikirim ke BigQuery sebagai mesin eksekusi. Akibatnya, operasi dan datanya akan ditransfer ke BigQuery dan operasi dilakukan di sana.

Pushdown Transformasi meningkatkan performa pipeline yang memiliki beberapa operasi JOIN kompleks atau transformasi lain yang didukung. Mengeksekusi beberapa transformasi di BigQuery mungkin lebih cepat daripada menjalankannya di Spark.

Transformasi yang tidak didukung dan semua transformasi pratinjau dijalankan di Spark.

Transformasi yang didukung

Pushdown Transformasi tersedia di Cloud Data Fusion versi 6.5.0 dan yang lebih baru, tetapi beberapa transformasi berikut hanya didukung di versi yang lebih baru.

JOIN operasi

  • Pushdown Transformasi tersedia untuk operasi JOIN di Cloud Data Fusion versi 6.5.0 dan yang lebih baru.

  • Operasi JOIN dasar (on-key) dan lanjutan didukung.

  • Gabungan harus memiliki tepat dua tahap input agar eksekusi dapat dilakukan di BigQuery.

  • Gabungan yang dikonfigurasi untuk memuat satu atau beberapa input ke dalam memori dijalankan di Spark, bukan BigQuery, kecuali dalam kasus berikut:

    • Jika salah satu input ke join sudah didorong ke bawah.
    • Jika Anda mengonfigurasi join untuk dijalankan di SQL Engine (lihat opsi Stages to force execution).

Sink BigQuery

Pushdown Transformasi tersedia untuk Sink BigQuery di Cloud Data Fusion versi 6.7.0 dan yang lebih baru.

Saat Sink BigQuery mengikuti tahap yang telah dijalankan di BigQuery, operasi yang menulis data ke BigQuery dilakukan langsung di BigQuery.

Untuk meningkatkan performa dengan sink ini, Anda memerlukan hal berikut:

  • Akun layanan harus memiliki izin untuk membuat dan memperbarui tabel dalam set data yang digunakan oleh BigQuery Sink.
  • Set data yang digunakan untuk Dorongan Transformasi dan Sink BigQuery harus disimpan di lokasi yang sama.
  • Operasi harus berupa salah satu dari berikut:
    • Insert (opsi Truncate Table tidak didukung)
    • Update
    • Upsert

Agregasi GROUP BY

Pushdown Transformasi tersedia untuk agregasi GROUP BY di Cloud Data Fusion versi 6.7.0 dan yang lebih baru.

Agregasi GROUP BY di BigQuery tersedia untuk operasi berikut:

  • Avg
  • Collect List (nilai null dihapus dari array output)
  • Collect Set (nilai null dihapus dari array output)
  • Concat
  • Concat Distinct
  • Count
  • Count Distinct
  • Count Nulls
  • Logical And
  • Logical Or
  • Max
  • Min
  • Standard Deviation
  • Sum
  • Sum of Squares
  • Corrected Sum of Squares
  • Variance
  • Shortest String
  • Longest String

Agregasi GROUP BY dijalankan di BigQuery dalam kasus berikut:

  • Ini mengikuti tahap yang telah didorong ke bawah.
  • Anda telah mengonfigurasinya untuk dijalankan di SQL Engine (lihat opsi Tahapan untuk memaksa eksekusi).

Menghapus duplikat agregasi

Pushdown Transformasi tersedia untuk agregasi penghapusan duplikat di Cloud Data Fusion versi 6.7.0 dan yang lebih baru untuk operasi berikut:

  • Tidak ada operasi filter yang ditentukan
  • ANY (nilai non-null untuk kolom yang diinginkan)
  • MIN (nilai minimum untuk kolom yang ditentukan)
  • MAX (nilai maksimum untuk kolom yang ditentukan)

Operasi berikut tidak didukung:

  • FIRST
  • LAST

Agregasi penghapusan duplikat dijalankan di mesin SQL dalam kasus berikut:

  • Ini mengikuti tahap yang telah didorong ke bawah.
  • Anda telah mengonfigurasinya untuk dijalankan di SQL Engine (lihat opsi Stages to force execution).

Pushdown Sumber BigQuery

Pushdown Sumber BigQuery tersedia di Cloud Data Fusion versi 6.8.0 dan yang lebih baru.

Ketika Sumber BigQuery mengikuti tahap yang kompatibel untuk bentang bawah BigQuery, pipeline dapat menjalankan semua tahapan yang kompatibel dalam BigQuery.

Cloud Data Fusion akan menyalin data yang diperlukan untuk menjalankan pipeline dalam BigQuery.

Saat Anda menggunakan Pushdown Sumber BigQuery, properti pengelompokan tabel dan pengelompokan akan dipertahankan, sehingga Anda dapat menggunakan properti ini untuk mengoptimalkan operasi lebih lanjut, seperti join.

Persyaratan tambahan

Untuk menggunakan Pushdown Sumber BigQuery, persyaratan berikut harus dipenuhi:

  • Akun layanan yang dikonfigurasi untuk Pushdown Transformasi BigQuery harus memiliki izin untuk membaca tabel di set data Sumber BigQuery.

  • Set data yang digunakan di Sumber BigQuery dan set data yang dikonfigurasi untuk Dorongan Transformasi harus disimpan di lokasi yang sama.

Agregasi jendela

Pushdown Transformasi tersedia untuk agregasi Jendela di Cloud Data Fusion versi 6.9 dan yang lebih baru. Agregasi jendela di BigQuery didukung untuk operasi berikut:

  • Rank
  • Dense Rank
  • Percent Rank
  • N tile
  • Row Number
  • Median
  • Continuous Percentile
  • Lead
  • Lag
  • First
  • Last
  • Cumulative distribution
  • Accumulate

Agregasi jendela dijalankan di BigQuery dalam kasus berikut:

  • Ini mengikuti tahap yang telah didorong ke bawah.
  • Anda telah mengonfigurasinya untuk dijalankan di SQL Engine (lihat opsi Stages to force pushdown ).

Dorongan Filter Wrangler

Wrangler Filter Pushdown tersedia di Cloud Data Fusion versi 6.9 dan yang lebih baru.

Saat menggunakan plugin Wrangler, Anda dapat mengirim filter, yang dikenal sebagai operasi Precondition, untuk dijalankan di BigQuery, bukan Spark.

Bentang bawah filter hanya didukung dengan mode SQL untuk Preconditions, yang juga dirilis dalam versi 6.9. Dalam mode ini, plugin menerima ekspresi prakondisi dalam SQL standar ANSI.

Jika mode SQL digunakan untuk prakondisi, Directives dan User Defined Directives akan dinonaktifkan untuk plugin Wrangler, karena tidak didukung dengan prakondisi dalam mode SQL.

Mode SQL untuk prakondisi tidak didukung untuk plugin Wrangler dengan beberapa input saat Pushdown Transformasi diaktifkan. Jika digunakan dengan beberapa input, tahap Wrangler dengan kondisi filter SQL ini akan dijalankan di Spark.

Filter dijalankan di BigQuery dalam kasus berikut:

  • Ini mengikuti tahap yang telah didorong ke bawah.
  • Anda telah mengonfigurasinya untuk dijalankan di SQL Engine (lihat opsi Stages to force pushdown ).

Metrik

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

Kapan menggunakan Pushdown Transformasi

Menjalankan transformasi di BigQuery melibatkan hal berikut:

  1. Menulis data ke BigQuery untuk tahap yang didukung di pipeline Anda.
  2. Mengeksekusi tahapan yang didukung di BigQuery.
  3. Membaca data dari BigQuery setelah transformasi yang didukung dijalankan, kecuali jika diikuti oleh Sink BigQuery.

Bergantung pada ukuran set data, mungkin ada overhead jaringan yang cukup besar, yang dapat berdampak negatif terhadap keseluruhan waktu eksekusi pipeline saat Pushdown Transformasi diaktifkan.

Karena overhead jaringan, kami merekomendasikan Pushdown Transformasi dalam kasus berikut:

  • Beberapa operasi yang didukung dijalankan secara berurutan (tanpa langkah di antara tahapan).
  • Peningkatan performa dari BigQuery yang menjalankan transformasi, relatif terhadap Spark, melebihi latensi pemindahan data ke dalam dan mungkin keluar dari BigQuery.

Cara kerja Duet AI

Saat Anda menjalankan pipeline yang menggunakan Pushdown Transformasi, Cloud Data Fusion mengeksekusi tahap transformasi yang didukung di BigQuery. Semua tahap lain dalam pipeline dijalankan di Spark.

Saat menjalankan transformasi:

  1. Cloud Data Fusion memuat set data input ke BigQuery dengan menulis data ke Cloud Storage, lalu menjalankan tugas pemuatan BigQuery.

  2. Operasi JOIN dan transformasi yang didukung kemudian dijalankan sebagai tugas BigQuery menggunakan pernyataan SQL.

  3. Jika diperlukan pemrosesan lebih lanjut setelah tugas dijalankan, data dapat diekspor dari BigQuery ke Spark. Namun, jika opsi Try direct copy to BigQuery sinks diaktifkan dan Sink BigQuery mengikuti tahap yang dijalankan di BigQuery, record akan ditulis langsung ke tabel Sink BigQuery tujuan.

Diagram berikut menunjukkan bagaimana Pushdown Transformasi mengeksekusi transformasi yang didukung di BigQuery, bukan Spark.

Pushdown Transformasi ke BigQuery di pipeline Cloud Data Fusion.

Praktik terbaik

Menyesuaikan ukuran cluster dan eksekutor

Untuk mengoptimalkan pengelolaan resource di pipeline, lakukan hal berikut:

  • Gunakan jumlah pekerja cluster (node) yang tepat untuk beban kerja. Dengan kata lain, dapatkan hasil maksimal dari cluster Dataproc yang disediakan dengan sepenuhnya menggunakan CPU dan memori yang tersedia untuk instance Anda, sekaligus memanfaatkan kecepatan eksekusi BigQuery untuk tugas-tugas yang besar.

  • Tingkatkan paralelisme dalam pipeline Anda menggunakan cluster penskalaan otomatis.

  • Sesuaikan konfigurasi resource Anda di tahap pipeline tempat data dikirim atau diambil dari BigQuery selama eksekusi pipeline.

Direkomendasikan: Lakukan eksperimen dengan meningkatkan jumlah core CPU untuk resource eksekutor (hingga jumlah core CPU yang digunakan node pekerja). Eksekutor mengoptimalkan penggunaan CPU selama langkah serialisasi dan deserialisasi saat data masuk dan keluar dari BigQuery. Untuk mengetahui informasi selengkapnya, lihat Pengukuran cluster.

Manfaat menjalankan transformasi di BigQuery adalah pipeline Anda dapat berjalan pada cluster Dataproc yang lebih kecil. Jika join merupakan operasi yang paling banyak menggunakan resource di pipeline, Anda dapat bereksperimen dengan ukuran cluster yang lebih kecil, karena operasi JOIN yang berat kini dilakukan di BigQuery), sehingga Anda berpotensi mengurangi biaya komputasi secara keseluruhan.

Mengambil data lebih cepat dengan BigQuery Storage Read API

Setelah BigQuery menjalankan transformasi, pipeline Anda mungkin memiliki tahapan tambahan untuk dijalankan di Spark. Di Cloud Data Fusion versi 6.7.0 dan yang lebih baru, Transformation Pushdown mendukung BigQuery Storage Read API, yang meningkatkan latensi dan menghasilkan operasi baca yang lebih cepat ke Spark. Hal ini dapat mengurangi waktu eksekusi pipeline secara keseluruhan.

API membaca data secara paralel, jadi sebaiknya sesuaikan ukuran eksekutor sesuai dengan itu. Jika operasi yang menggunakan banyak resource dijalankan di BigQuery, kurangi alokasi memori untuk eksekutor guna meningkatkan paralelisme saat pipeline berjalan (lihat Menyesuaikan ukuran cluster dan eksekutor).

BigQuery Storage Read API dinonaktifkan secara default. Anda dapat mengaktifkannya di lingkungan eksekusi tempat Scala 2.12 terinstal (termasuk Dataproc 2.0 dan Dataproc 1.5).

Mempertimbangkan ukuran set data

Pertimbangkan ukuran set data di operasi JOIN. Untuk operasi JOIN yang menghasilkan sejumlah besar data output, seperti sesuatu yang menyerupai operasi JOIN silang, ukuran set data yang dihasilkan mungkin berukuran lebih besar daripada set data input. Selain itu, pertimbangkan overhead untuk menarik kembali data ini ke Spark saat pemrosesan Spark tambahan untuk data ini terjadi, seperti transformasi atau sink, dalam konteks performa pipeline secara keseluruhan.

Memitigasi data yang condong

Operasi JOIN untuk data yang sangat miring dapat menyebabkan tugas BigQuery melebihi batas penggunaan resource, yang menyebabkan operasi JOIN gagal. Untuk mencegah hal ini, buka setelan plugin Joiner dan identifikasi input yang miring di kolom Skewed Input Stage. Hal ini memungkinkan Cloud Data Fusion mengatur input dengan cara yang mengurangi risiko pernyataan BigQuery agar tidak melebihi batas.

Di setelan plugin Joiner, identifikasi data yang condong ke kolom di kolom Skewed Input Stage.

Langkah selanjutnya