全部产品
Search
文档中心

DataWorks:Parameter advanced untuk sinkronisasi real-time

更新时间:Feb 12, 2026

Bagian ini menjelaskan parameter advanced.

Parameter

Nilai

Bawaan

Deskripsi

Cakupan

Auto-set Runtime Configuration

true/false

true

  • true (Bawaan): Sistem secara otomatis mengatur parameter seperti Concurrency berdasarkan jumlah CU. Namun, jika total Concurrency bukan kelipatan genap dari jumlah shard Source, hal ini dapat menyebabkan distribusi shard yang tidak seimbang di antara thread baca, sehingga menimbulkan Data Skew dan menurunkan performa.

  • false: Memungkinkan konfigurasi parameter secara manual. Jika Anda mengalami Performance Bottleneck atau Data Skew, pilih false dan sesuaikan parameter untuk mengoptimalkan distribusi data.

General

Global Flush Interval (detik)

Bilangan bulat dari 5 hingga 1000

60

Mengatur interval saat semua thread tulis melakukan batch-flush data cache ke Destination dan memajukan Synchronization Offset.

  • Nilai yang lebih tinggi meningkatkan Throughput tetapi juga meningkatkan Data Visibility Latency.

  • Nilai yang lebih rendah mengurangi Data Visibility Latency tetapi dapat menurunkan Throughput.

Rekomendasi: Untuk skenario sinkronisasi data volume tinggi di mana latensi bukan prioritas utama, pertimbangkan untuk menaikkan nilai ini. Untuk kasus penggunaan yang memerlukan performa real-time tinggi, turunkan nilai ini.

General

Failover Restart Policy Time Window (menit)

Bilangan bulat dari 1 hingga 60

30

Ketika Synchronization Task mengalami pengecualian yang dapat dipulihkan, sistem memeriksa dalam jangka waktu ini apakah akan memicu restart otomatis. Sistem memeriksa apakah jumlah kegagalan dalam jangka waktu tersebut telah melebihi ambang batas (Threshold) jumlah kegagalan.

  • Jika jumlah kegagalan belum melebihi Threshold, Task akan direstart, dan jumlah kegagalan untuk jangka waktu tersebut dinaikkan.

  • Jika jumlah kegagalan telah melebihi Threshold, Task ditandai sebagai gagal dan tidak akan direstart.

Parameter ini menentukan jangka waktu penghitungan kegagalan. Jangka waktu yang lebih pendek membuat sistem lebih toleran terhadap gangguan singkat dan intermiten.

Penting

Mengatur jangka waktu ini terlalu kecil dapat menyebabkan Task sering direstart ketika menghadapi masalah persisten yang tidak dapat dipulihkan. Hal ini membuang resource dan dapat menunda deteksi serta penyelesaian manual terhadap akar permasalahan.

General

Failover Restart Policy Failure Count Threshold

Bilangan bulat dari 1 hingga 100

3

Menentukan jumlah maksimum restart otomatis yang diizinkan untuk Task dalam jangka waktu yang dikonfigurasi.

  • Nilai yang lebih tinggi meningkatkan toleransi terhadap error intermiten yang sering terjadi.

  • Nilai yang lebih rendah memungkinkan sistem lebih cepat menandai masalah persisten sebagai kegagalan, sehingga mencegah pemborosan resource.

Rekomendasi: Tetapkan nilai yang relatif kecil untuk menyeimbangkan toleransi kesalahan dengan deteksi masalah yang cepat.

General

Partition Cache Queue Size

Bilangan bulat dari 5 hingga 100

5

Saat menulis ke tabel partisi non-Delta di MaxCompute, data di-cache per partisi. Dalam jangka waktu yang ditetapkan oleh Global Flush Interval, Synchronization Task harus mengalokasikan cache terpisah untuk setiap partisi tujuan. Parameter ini membatasi jumlah maksimum partisi yang dapat di-cache secara bersamaan.

Jika jumlah partisi yang akan ditulis dalam satu interval flush melebihi ukuran antrian ini, sistem akan memicu flush global lebih awal untuk meng-commit seluruh data cache. Flush awal yang sering terjadi dapat secara signifikan mengurangi efisiensi penulisan dan performa sinkronisasi secara keseluruhan.

Rekomendasi: Atur Partition Cache Queue Size ke nilai yang lebih besar daripada jumlah maksimum partisi berbeda yang diperkirakan akan ditulis dalam satu Global Flush Interval untuk menghindari flush prematur.

Jika Synchronization Task mengalami keterlambatan dan log berisi pesan uploader map size has reached uploaderMapMaximumSize, batas cache partisi telah tercapai. Pertimbangkan untuk menaikkan parameter ini guna meningkatkan Throughput.

Penting

Menambah parameter ini akan meningkatkan konsumsi memori secara linear. Gunakan rumus berikut untuk memperkirakan penggunaan memori: Penggunaan Memori ≈ 10 MB × Partition Cache Queue Size × Jumlah Worker × Concurrency per Worker × Ukuran Thread Pool Tulis Async.

Konfigurasikan nilai ini dengan hati-hati berdasarkan resource kluster yang tersedia untuk mencegah error Out of Memory (OOM).

Writes to MaxCompute

Async Write Thread Pool Size

Bilangan bulat dari 1 hingga 100

1

Jika Synchronization Task mengalami keterlambatan dan Anda mengidentifikasi Destination tulis sebagai Performance Bottleneck, Anda dapat menaikkan parameter ini untuk meningkatkan Throughput tulis. Misalnya, membaca dari Log Service (Loghub) biasanya lebih cepat daripada menulis ke MaxCompute. Dalam kasus seperti ini, menambah jumlah thread tulis dapat membantu menyeimbangkan pipeline.

Catatan

Untuk mencegah overhead berlebihan dari penjadwalan thread internal pada suatu Worker, kami merekomendasikan agar nilai ini tidak melebihi 10.

Writes to MaxCompute

Oversized Field Handling Rule

Do Not Process/Truncate/Set to Null

Do Not Process

MaxCompute memberlakukan batas panjang maksimum untuk satu field, yang secara bawaan adalah 8 MB. Parameter ini menentukan strategi penanganan field yang melebihi batas tersebut selama sinkronisasi.

  • Do Not Process: Task mencoba menulis field oversized apa adanya. Jika panjang field melebihi batas MaxCompute dan Anda belum mengubah batas bawaan 8 MB, Synchronization Task akan gagal.

  • Truncate: Field dipotong hingga panjang maksimum yang diizinkan (8 MB) sebelum ditulis.

  • Set to Null: Konten field oversized dibuang, dan nilai NULL ditulis sebagai gantinya.

Writes to MaxCompute

Real-time Task Session Cache Size (byte)

Bilangan bulat positif

67108864 (64 MB)

Saat menulis data ke tabel Delta MaxCompute, sebuah Session dibuat untuk setiap partisi tujuan. Untuk tabel non-partisi, satu Session global tunggal dibuat. Setiap Session berisi beberapa Bucket, yang jumlahnya ditentukan saat tabel dibuat. Synchronization Task menyimpan cache data untuk setiap Bucket. Ketika ukuran total data cache di semua Bucket dalam satu Session melebihi nilai ini (dalam byte), sistem memicu commit batch seluruh data dari Session tersebut ke server MaxCompute.

Catatan

Parameter ini mengatur pertukaran antara penggunaan memori dan frekuensi penulisan. Jika Synchronization Task gagal karena error Out of Memory (OOM), pertimbangkan untuk menurunkan nilai ini guna mengurangi tekanan memori puncak.

Writes to MaxCompute

Real-time Task Bucket Cache Size (byte)

Bilangan bulat positif

1048576 (1 MB)

Saat menulis data ke tabel Delta MaxCompute, sebuah Session dibuat untuk setiap partisi tujuan (atau satu Session global tunggal untuk tabel non-partisi). Setiap Session dibagi menjadi beberapa Bucket. Synchronization Task mengalokasikan cache independen untuk setiap Bucket. Ketika jumlah data cache dalam satu Bucket melebihi nilai ini (dalam byte), data dalam Bucket tersebut dikirim ke server MaxCompute.

Catatan

Parameter ini mengatur pertukaran antara konsumsi memori dan frekuensi penulisan. Biasanya Anda tidak perlu menyesuaikan pengaturan ini; nilai bawaan sudah direkomendasikan.

Writes to MaxCompute

Dynamic Disk Write Threshold

Bilangan bulat positif

None

Parameter ini berlaku saat Anda menulis data ke tabel Delta MaxCompute. Jika jumlah partisi tujuan yang memiliki data tertunda melebihi Threshold ini, cache Bucket akan dipindahkan dari memori ke disk untuk mengurangi konsumsi memori. Mengaktifkan fitur ini menurunkan performa sinkronisasi dan hanya boleh digunakan ketika Task perlu menulis ke jumlah partisi yang sangat besar, sehingga menimbulkan tekanan memori berlebihan.

Writes to MaxCompute

Single-table Flush Concurrency

Bilangan bulat positif

2

Saat Anda menulis data ke tabel Delta MaxCompute, parameter ini menentukan berapa banyak Bucket dari satu Session yang dapat di-flush ke server MaxCompute secara konkuren. Dalam kebanyakan kasus, Anda tidak perlu mengubah parameter ini.

Writes to MaxCompute

Data Partitioning Strategy

Primary key value/Table partition field value

Primary key value

Saat Anda menulis data ke tabel Delta MaxCompute dengan Concurrency tulis lebih dari 1, Anda harus mengonfigurasi Data Partitioning Strategy untuk memastikan konsistensi data. Strategi ini menentukan bagaimana catatan (record) Source didistribusikan di antara instans penulis paralel.

  • Berdasarkan Primary key value: Catatan dengan Primary Key yang sama selalu diarahkan ke instans penulis yang sama.

    • Keuntungan: Primary Key biasanya terdistribusi secara merata, yang membantu mencegah Data Skew dan memastikan beban tulis seimbang di antara instans.

    • Kerugian: Setiap penulis harus mempertahankan cache independen untuk setiap partisi tujuan. Pendekatan ini mengonsumsi lebih banyak memori, dihitung sebagai Memori ≈ Concurrency × Partisi × Overhead Cache, dan dapat menyebabkan error OOM.

  • Berdasarkan Table partition field value: Catatan yang termasuk dalam partisi tujuan yang sama diproses oleh instans penulis yang sama.

    • Keuntungan: Instans penulis dapat berbagi cache untuk partisi tertentu. Hal ini secara signifikan mengurangi penggunaan memori secara keseluruhan.

    • Kerugian: Jika data tidak merata di seluruh partisi—misalnya karena adanya partisi "hot"—hal ini dapat menyebabkan Data Skew pada penulis, di mana beberapa instans kelebihan beban sementara yang lain menganggur.

Rekomendasi konfigurasi:

  1. Utamakan strategi Primary key value untuk performa optimal dan penyeimbangan beban dalam kebanyakan skenario. Jika Synchronization Task gagal karena error OOM akibat ukuran cache yang berlebihan, alihkan ke strategi Table partition field value untuk mengurangi tekanan memori.

  2. Sebelum mengganti strategi, evaluasi distribusi data Anda di seluruh partisi untuk menghindari munculnya Performance Bottleneck baru.

Writes to MaxCompute

Concurrency per Worker

Bilangan bulat dari 1 hingga 100

Bervariasi tergantung jumlah CU

Total Concurrency Synchronization Task dihitung sebagai Concurrency per Worker × Jumlah Worker. Anda dapat menyesuaikan nilai ini untuk mengatasi Data Skew. Misalnya, jika Source adalah Logstore Log Service (Loghub), total Concurrency idealnya sama dengan (Highest Shard ID - Lowest Shard ID) + 1.

Untuk mengurangi overhead dari penjadwalan thread dalam satu Worker, kami merekomendasikan agar Concurrency per Worker diatur kurang dari 10.

General

Number of Workers

Bilangan bulat dari 1 hingga 100

Bervariasi tergantung jumlah CU

Total Concurrency Synchronization Task dihitung sebagai Concurrency per Worker × Jumlah Worker. Mengalokasikan terlalu banyak CU ke satu Worker dapat menyebabkan penundaan penjadwalan resource yang lama. Kami merekomendasikan mengonfigurasi Jumlah Worker sedemikian rupa sehingga setiap Worker dialokasikan 10 CU atau kurang.

General