全部产品
Search
文档中心

DataWorks:Pengaturan kontrol saluran untuk sinkronisasi batch

更新时间:Jun 23, 2025

Topik ini menjelaskan pengaturan kontrol saluran yang dapat dikonfigurasi untuk sinkronisasi batch. Informasi ini membantu Anda memahami dan mengonfigurasi parameter kontrol saluran dengan benar, serta mengurangi kebutuhan dukungan teknis.

Pengaturan kontrol saluran

Paralelisme

Berikut adalah jawaban atas pertanyaan berikut:

  • Pertanyaan 1: Bagaimana cara mengonfigurasi paralelisme untuk node sinkronisasi data?

  • Pertanyaan 2: Mengapa node sinkronisasi data saya berjalan lambat? Apakah masalah ini disebabkan oleh jumlah utas paralel yang tidak mencukupi?

  • Pertanyaan 3: Mengapa node sinkronisasi data saya tetap lambat meskipun saya mengonfigurasi sejumlah besar utas paralel? Mengapa node tersebut selalu menunggu sumber daya dari grup sumber daya eksklusif?

Paralelisme merujuk pada jumlah maksimum utas paralel yang digunakan untuk membaca data dari sumber atau menulis data ke tujuan saat menjalankan node sinkronisasi data. Untuk meningkatkan efisiensi sinkronisasi data, sesuaikan paralelisme secara tepat. Gambar berikut menunjukkan titik entri untuk mengonfigurasi paralelisme di antarmuka pengguna (UI) tanpa kode. Entry point of configuring parallelism Saat menjalankan node sinkronisasi data untuk menyinkronkan data dari file yang disimpan di Object Storage Service (OSS), FTP, Hadoop Distributed File System (HDFS), atau sumber data AWS S3, data dibaca berdasarkan granularitas file. Secara default, jumlah file dari mana data dibaca lebih kecil daripada jumlah maksimum utas paralel yang dikonfigurasikan. Parameter Expected Maximum Concurrency pada gambar menentukan jumlah maksimum utas paralel yang dapat dikonfigurasikan. Karena kinerja grup sumber daya Data Integration dan karakteristik node sinkronisasi data, jumlah aktual utas paralel yang dijalankan mungkin lebih kecil atau sama dengan jumlah maksimum yang dikonfigurasikan. Jika menggunakan grup sumber daya bersama untuk Data Integration (debugging), biaya akan dikenakan berdasarkan jumlah utas paralel yang dijalankan. Data Integration berusaha memastikan konsistensi antara jumlah aktual dan maksimum utas paralel yang dikonfigurasikan. Dalam skenario berikut, jumlah aktual utas paralel yang dijalankan mungkin lebih kecil:

  • Node sinkronisasi data digunakan untuk menyinkronkan data dari database relasional seperti MySQL, PolarDB, SQL Server, PostgreSQL, atau Oracle, tetapi tidak ada shard key atau shard key tidak valid yang dikonfigurasikan. Dalam kasus ini, node tidak dapat melakukan sharding data di database, sehingga utas paralel tidak dapat digunakan untuk membaca data. Anda dapat menentukan bidang tipe data integer sebagai shard key. Oracle memungkinkan penentuan bidang tipe data waktu sebagai shard key.

  • Data disinkronkan dari sumber data PolarDB for Xscale (PolarDB-X). Saat menjalankan node sinkronisasi data untuk menyinkronkan data dari PolarDB-X, node melakukan sharding data berdasarkan topologi fisik tabel logis dan membaca data yang telah di-shard. Secara default, jumlah shard tabel fisik lebih kecil daripada jumlah maksimum utas paralel yang dikonfigurasikan.

  • Saat menjalankan node sinkronisasi data untuk menyinkronkan data dari file yang disimpan di Object Storage Service (OSS), FTP, Hadoop Distributed File System (HDFS), atau sumber data AWS S3, data dibaca berdasarkan granularitas file. Secara default, jumlah file dari mana data dibaca lebih kecil daripada jumlah maksimum utas paralel yang dikonfigurasikan.

  • Jika distribusi data di sumber sangat tidak merata, waktu lama mungkin diperlukan untuk membaca data dari beberapa shard setelah pembacaan dari shard lain selesai. Pada tahap akhir pelaksanaan node, jumlah aktual utas paralel yang dijalankan mungkin lebih kecil daripada jumlah maksimum yang dikonfigurasikan.

Praktik terbaik untuk mengonfigurasi paralelisme:

  • Semakin banyak utas paralel dijalankan, semakin banyak sumber daya direbut oleh node sinkronisasi data. Alokasi sumber daya dari grup sumber daya mengikuti aturan first in, first out (FIFO). Semakin awal node dikomit, semakin awal sumber daya direbut. Kami menyarankan mengonfigurasi paralelisme berdasarkan kebutuhan bisnis untuk mencegah durasi pelaksanaan yang panjang dan perebutan sumber daya yang menghalangi pelaksanaan node lainnya.

  • Jika hanya ingin menyinkronkan sejumlah kecil data dari sumber, konfigurasikan sejumlah kecil utas paralel. Paralelisme kecil hanya membutuhkan sedikit sumber daya, membantu node merebut sumber daya fragmen dengan cepat, dan mengontrol durasi pelaksanaan dalam rentang wajar.

  • Jika mengonfigurasi beberapa node sinkronisasi data untuk sumber data yang sama, hindari menjalankan node secara paralel. Hal ini menyeimbangkan penggunaan sumber daya grup sumber daya dan mengurangi beban kerja baca paralel pada sumber data.

Laju transmisi data

Berikut adalah jawaban atas pertanyaan berikut:

  • Pertanyaan 1: Bagaimana cara menentukan laju transmisi data untuk node sinkronisasi data? Apa dampak dari throttling yang diaktifkan atau dinonaktifkan?

  • Pertanyaan 2: Mengapa pengaturan tidak berlaku dalam beberapa kasus setelah saya mengaktifkan throttling dan menentukan laju transmisi maksimum?

  • Pertanyaan 3: Mengapa ada celah besar antara laju transmisi data aktual dan laju transmisi maksimum yang ditentukan dalam beberapa kasus?

Laju transmisi data dan jumlah maksimum utas paralel erat kaitannya. Jika mengonfigurasi kedua pengaturan ini, beban baca pada sumber dan beban tulis pada tujuan dapat dikendalikan dalam rentang wajar, membantu memastikan stabilitas sumber dan tujuan.

Jika tidak mengaktifkan throttling, node sinkronisasi data menjalankan jumlah maksimum utas paralel yang dikonfigurasikan untuk menyinkronkan data, dan laju transmisi data untuk setiap irisan node tidak dibatasi. Sebagai contoh, jika jumlah aktual utas paralel yang dijalankan adalah ActualConcurrent dan laju transmisi data untuk setiap irisan node adalah Speed, laju transmisi data aktual dihitung berdasarkan rumus: ActualConcurrent × Speed. Jika tidak mengaktifkan throttling, data ditransmisikan pada laju maksimum yang didukung oleh perangkat keras dan konfigurasi node. Konfigurasi node mencakup jumlah maksimum utas paralel dan ukuran memori yang dikonfigurasikan. Konfigurasi perangkat keras mencakup spesifikasi sumber data dan konfigurasi jaringan.

Jika mengaktifkan throttling, Data Integration menjalankan node berdasarkan laju transmisi maksimum dan jumlah maksimum utas paralel yang dikonfigurasikan. Saat mengembangkan rencana eksekusi, laju transmisi data untuk setiap irisan node dihitung dengan membulatkan ke atas hasil bagi laju transmisi maksimum dibagi jumlah maksimum utas paralel. Laju transmisi minimum untuk setiap irisan node adalah 1 MB/s. Laju transmisi maksimum aktual dihitung berdasarkan rumus: Jumlah aktual utas paralel yang dijalankan × Laju transmisi data aktual untuk setiap irisan node. Berikut adalah contoh tentang throttling:

  • Jika jumlah maksimum utas paralel yang dikonfigurasikan adalah 5 dan laju transmisi maksimum adalah 5 MB/s, node dibagi menjadi 5 irisan untuk dijalankan secara paralel, dengan laju transmisi maksimum untuk setiap irisan node adalah 1 MB/s.

    • Jika jumlah aktual utas paralel yang dijalankan adalah 5, laju transmisi maksimum aktual adalah 5 MB/s, yang sama dengan laju transmisi maksimum yang dikonfigurasikan.

    • Jika jumlah aktual utas paralel yang dijalankan dibatasi oleh kinerja sumber data, jumlah aktual utas paralel yang dijalankan mungkin lebih kecil. Jika jumlah aktual utas paralel yang dijalankan adalah 1, laju transmisi maksimum aktual adalah 1 MB/s, yang lebih kecil daripada laju transmisi maksimum yang dikonfigurasikan.

  • Jika jumlah maksimum utas paralel yang dikonfigurasikan adalah 5 dan laju transmisi maksimum adalah 3 MB/s, node dibagi menjadi 5 irisan untuk dijalankan secara paralel, dengan laju transmisi maksimum untuk setiap irisan node adalah 1 MB/s, yang dihitung dengan membulatkan ke atas hasil bagi 3 dibagi 5.

    • Jika jumlah aktual utas paralel yang dijalankan adalah 5, laju transmisi maksimum aktual adalah 5 MB/s, yang lebih besar daripada laju transmisi maksimum yang dikonfigurasikan.

    • Jika jumlah aktual utas paralel yang dijalankan adalah 1, laju transmisi maksimum aktual adalah 1 MB/s, yang lebih kecil daripada laju transmisi maksimum yang dikonfigurasikan.

  • Jika jumlah maksimum utas paralel yang dikonfigurasikan adalah 5 dan laju transmisi maksimum adalah 10 MB/s, node dibagi menjadi 5 irisan untuk dijalankan secara paralel, dengan laju transmisi maksimum untuk setiap irisan node adalah 2 MB/s, yang merupakan hasil bagi 10 dibagi 5.

    • Jika jumlah aktual utas paralel yang dijalankan adalah 5, laju transmisi maksimum aktual adalah 10 MB/s, yang sama dengan laju transmisi maksimum yang dikonfigurasikan.

    • Jika jumlah aktual utas paralel yang dijalankan adalah 1, laju transmisi maksimum aktual adalah 2 MB/s, yang lebih kecil daripada laju transmisi maksimum yang dikonfigurasikan.

Ekseskusi terdistribusi

Berikut adalah jawaban atas pertanyaan berikut:

  • Pertanyaan 1: Dalam skenario apa saya perlu mengaktifkan mode eksekusi terdistribusi untuk node sinkronisasi data?

  • Pertanyaan 2: Mengapa node sinkronisasi data saya tetap lambat meskipun dijalankan dalam mode eksekusi terdistribusi?

Jika tidak mengaktifkan mode eksekusi terdistribusi, jumlah utas paralel yang dikonfigurasikan hanya digunakan untuk instance Elastic Compute Service (ECS) tunggal untuk menjalankan node. Jika mengaktifkan mode eksekusi terdistribusi, sistem membagi node menjadi irisan dan mendistribusikannya ke beberapa instance ECS untuk dijalankan secara paralel. Semakin banyak instance ECS, semakin tinggi kecepatan sinkronisasi data. Jika memiliki persyaratan tinggi untuk kinerja sinkronisasi data, jalankan node dalam mode eksekusi terdistribusi. Mode ini memanfaatkan sumber daya fragmen dari instance ECS, meningkatkan pemanfaatan sumber daya.

Batasan dan praktik terbaik:

  • Jika menggunakan sejumlah besar utas paralel dalam mode eksekusi terdistribusi, permintaan akses berlebihan dikirim ke sumber data. Oleh karena itu, evaluasi beban akses pada sumber data sebelum menggunakan mode ini.

  • Jika grup sumber daya eksklusif hanya berisi satu instance ECS, hindari menjalankan node dalam mode eksekusi terdistribusi karena proses eksekusi hanya didistribusikan pada satu mesin tanpa sumber daya tambahan.

  • Jika ingin menyinkronkan sejumlah kecil data, konfigurasikan sejumlah kecil utas paralel dan gunakan grup sumber daya eksklusif dengan instance ECS tunggal. Hindari mengaktifkan mode eksekusi terdistribusi.

  • Mode eksekusi terdistribusi hanya dapat diaktifkan jika jumlah maksimum utas paralel yang dikonfigurasikan lebih besar atau sama dengan 8.

Jumlah maksimum catatan data kotor yang diizinkan selama sinkronisasi data

Berikut adalah jawaban atas pertanyaan berikut:

  • Pertanyaan 1: Apa itu data kotor?

  • Pertanyaan 2: Bagaimana cara mengonfigurasi jumlah maksimum catatan data kotor yang diizinkan selama sinkronisasi data?

  • Pertanyaan 3: Apa hubungan antara laju transmisi maksimum dan data kotor?

Batasan pada data kotor mengontrol perilaku node sinkronisasi data ketika data kotor dihasilkan selama pelaksanaan. Jika terjadi pengecualian saat menulis catatan data tunggal ke tujuan, catatan tersebut dianggap sebagai data kotor. Karena kompleksitas pemrosesan data dari berbagai sistem heterogen, catatan data yang gagal ditulis dianggap sebagai data kotor. Dalam beberapa skenario sinkronisasi data, data kotor mengurangi efisiensi sinkronisasi data. Sebagai contoh, saat menyinkronkan data ke database relasional, catatan data ditulis secara batch secara default. Namun, jika data kotor dihasilkan, mode penulisan diubah menjadi penulisan satu per satu untuk mengidentifikasi data kotor dan memastikan penulisan normal dari catatan data yang tersisa. Setelah mode penulisan diubah, efisiensi sinkronisasi data berkurang. Akibatnya, jika sejumlah besar data kotor dihasilkan, efisiensi keseluruhan sangat berkurang.

Data Integration memungkinkan mengonfigurasi pengaturan terkait data kotor untuk sebagian besar jenis sumber data. Pengaturan berikut didukung:

  • Jika tidak mengonfigurasi jumlah maksimum data kotor yang diizinkan, node dapat terus berjalan jika data kotor dihasilkan. Untuk menerapkan pengaturan ini, biarkan parameter yang menentukan jumlah maksimum data kotor kosong saat mengonfigurasi node.

  • Jika menetapkan jumlah maksimum data kotor yang diizinkan ke 0, tidak ada data kotor yang diizinkan. Jika data kotor dihasilkan, node gagal.

  • Jika menetapkan jumlah maksimum data kotor yang diizinkan ke bilangan bulat positif N, maksimum N data kotor diizinkan. Jika jumlah data kotor yang dihasilkan melebihi N, node gagal.

Praktik terbaik:

  • Jika ingin menyinkronkan data ke sumber data dengan persyaratan tinggi untuk data, seperti database relasional atau sumber data Hologres, ClickHouse, atau AnalyticDB for MySQL, tetapkan jumlah maksimum data kotor yang diizinkan ke 0. Hal ini membantu mengidentifikasi risiko kualitas data pada kesempatan paling awal. Database relasional mencakup MySQL, SQL Server, PostgreSQL, Oracle, PolarDB, dan PolarDB-X.

  • Jika ingin menyinkronkan data ke sumber data tanpa persyaratan tinggi untuk data, tidak perlu mengonfigurasi jumlah maksimum data kotor yang diizinkan. Anda juga dapat mengonfigurasinya berdasarkan kebutuhan bisnis untuk mengurangi biaya O&M yang diperlukan untuk menangani data kotor.

  • Konfigurasikan aturan peringatan dengan kondisi pemicu kegagalan atau penundaan node untuk node kunci. Hal ini membantu mengidentifikasi masalah pada kesempatan paling awal.

  • Jika node dapat dijalankan ulang, konfigurasikan pengaturan untuk memungkinkan node dijalankan ulang setelah terjadi kesalahan. Hal ini mencegah masalah lingkungan sesekali yang menghalangi pelaksanaan node.

Kuota untuk jumlah koneksi yang didukung untuk sumber data

Berikut adalah jawaban atas pertanyaan berikut:

  • Pertanyaan 1: Apa kuota untuk jumlah koneksi yang didukung untuk sumber data? Bagaimana cara mengonfigurasi kuota dengan tepat?

  • Pertanyaan 2: Mengapa node sinkronisasi batch yang dihasilkan oleh solusi sinkronisasi data berjalan lambat dan macet dalam status Submit?

Kuota untuk jumlah koneksi yang didukung untuk sumber data mencakup item-item berikut:

  • Jumlah maksimum utas paralel yang didukung untuk penulisan data ke tujuan: menentukan jumlah maksimum utas paralel yang dapat digunakan untuk menulis data ke tujuan dalam node sinkronisasi real-time. Tentukan angka yang sesuai berdasarkan spesifikasi grup sumber daya dan kemampuan penulisan data tujuan. Nilai maksimumnya adalah 32, dan nilai defaultnya adalah 3.

  • Jumlah maksimum koneksi yang didukung untuk pembacaan data dari sumber: Saat node sinkronisasi batch dijalankan untuk menyinkronkan data penuh dari sumber, koneksi Java Database Connectivity (JDBC) ke sumber dibuat untuk membaca data historis penuh. Jumlah maksimum menentukan batas atas untuk jumlah koneksi JDBC yang diizinkan untuk sumber. Pengaturan ini mencegah pelaksanaan paralel sejumlah besar node sinkronisasi batch mencapai jumlah maksimum koneksi yang diizinkan oleh kumpulan koneksi sumber dan memastikan stabilitas sumber. Konfigurasikan pengaturan ini berdasarkan sumber daya sumber. Nilai defaultnya adalah 15. Jika jumlah maksimum koneksi yang dikonfigurasikan tidak memenuhi kebutuhan bisnis, node sinkronisasi batch mungkin macet dalam status Submit. Untuk menyelesaikan masalah ini, ubah waktu penjadwalan node lain yang menggunakan sumber data yang sama atau tambah jumlah maksimum koneksi secara tepat.