All Products
Search
Document Center

DataWorks:Konfigurasikan tugas sinkronisasi batch sharding

Last Updated:Jun 24, 2026

DataWorks memungkinkan Anda mengonfigurasi tugas sinkronisasi batch di Antarmuka tanpa kode atau editor kode untuk menyinkronkan data dari database dan tabel ter-shard ke satu tabel tujuan. Topik ini memberikan contoh penyinkronan data dari database MySQL ter-shard.

Prasyarat

Persiapkan sumber data untuk sinkronisasi. Untuk informasi lebih lanjut, lihat Sumber data yang didukung dan plug-in baca/tulis.

Ikhtisar

Anda dapat menggunakan metode berikut untuk membuat tugas sinkronisasi batch untuk sharding. Tabel berikut membandingkan metode-metode tersebut.

Item

Sumber data ter-shard dan Antarmuka tanpa kode (Direkomendasikan)

Sumber data standar dan Antarmuka tanpa kode

Editor kode

Dukungan Antarmuka tanpa kode

Ya

Ya

Tidak

Konfigurasi nama tabel berbasis aturan

Mendukung konfigurasi nama tabel sumber dengan menggunakan ekspresi reguler. Saat waktu proses, tugas mencari dan menyinkronkan tabel yang cocok.

Tidak didukung.

Mendukung konfigurasi nama tabel dengan menggunakan rentang numerik, misalnya, tb_[1-10]. Rentang harus berurutan, dan setiap tabel dalam rentang tersebut harus ada.

Skema tabel identik wajib

Anda dapat mengonfigurasi kebijakan bidang yang hilang untuk mengizinkan beberapa tabel memiliki bidang yang tidak lengkap. Bidang-bidang tersebut akan di-output sebagai nilai NULL.

Semua tabel harus memiliki skema yang identik.

Referensi pemetaan kolom

Tabel pertama yang cocok dalam sumber metadata dari sumber data ter-shard.

Tabel pertama dari sumber data pertama.

Ditentukan secara manual di editor kode.

Jumlah sumber data yang didukung

Satu sumber data ter-shard dapat mereferensikan hingga 5.000 sumber data.

Kami menyarankan agar Anda mengonfigurasi tidak lebih dari 50 sumber data untuk satu node tunggal.

Apakah penambahan sumber data memerlukan modifikasi dan penerbitan ulang node

Tidak perlu modifikasi node. Setelah Anda memodifikasi sumber data, perubahan tersebut berlaku untuk instans baru.

Anda harus memodifikasi tugas untuk menambahkan sumber data baru dan mengonfigurasi nama tabelnya.

Jenis sumber data yang didukung

MySQL, PolarDB, PolarDB-O, OceanBase

MySQL, PolarDB, AnalyticDB, OceanBase

MySQL, PolarDB, AnalyticDB, SQL Server, Oracle, PostgreSQL, DM, DB2, OceanBase

Sumber data ter-shard dan Antarmuka tanpa kode

  1. Masuk ke Konsol DataWorks. Di wilayah target, klik Data Integration > Data Integration di panel navigasi kiri. Pilih ruang kerja dari daftar drop-down dan klik Go to Data Integration.

  2. Di panel navigasi kiri, klik Data Source, lalu klik Add Data Source. Pilih jenis sumber data. Metode ini saat ini mendukung MySQL, PolarDB, dan PolarDB-O.

  3. Buat sumber data standar untuk setiap database ter-shard. Topik ini menggunakan MySQL sebagai contoh. Untuk langkah-langkah detail, lihat Konfigurasikan sumber data.

    Setelah sumber data dibuat, Anda dapat melihat sumber data MySQL untuk setiap database ter-shard di halaman Data Source List. Misalnya, sumber data bernama MySQL_20241114 berkorespondensi dengan database user_info_20241114.

  4. Buat sumber data Sharded Database and Table untuk menggabungkan beberapa sumber data standar menjadi satu sumber data yang digunakan sebagai sumber sinkronisasi.

    1. Klik Add Data Source dan pilih Sharded Database and Table. Di dialog Add Data Source, klik tab Sharded Database and Table. Jenis sumber data yang tersedia mencakup MySQL (sharded database and table), PolarDB-O (sharded database and table), dan PolarDB (sharded database and table).

    2. Pilih jenis sumber data ter-shard dan konfigurasikan parameternya. Topik ini menggunakan MySQL (sharded database and table) sebagai contoh.

      Masukkan Data Source Name, misalnya Database_and_Table_Sharding_of_MySQL. Setelah mengonfigurasi parameter, klik Complete untuk membuat sumber data ter-shard.

      Parameter utama:

      • Data Source Name: Tentukan nama kustom untuk sumber data.

      • Select Data Sources: Pilih sumber data standar yang telah Anda buat untuk database ter-shard.

      • Meta data source: Untuk sinkronisasi sharding, skema tabel di semua sumber data harus identik. Pilih satu sumber data sebagai templat untuk metadata default. Templat ini digunakan untuk mengambil skema default saat Anda mengonfigurasi tugas sinkronisasi.

        Penting

        Jika skema tabel di berbagai sumber data tidak konsisten, tugas sinkronisasi akan gagal.

  5. Buat node sinkronisasi batch.

  6. Konfigurasikan tugas sinkronisasi sharding.

    Untuk mengonfigurasi sharding di Antarmuka tanpa kode, pada Data Source, pilih MySQL (sharded database and table), lalu pilih sumber data ter-shard yang telah Anda buat. Untuk langkah-langkah lengkap cara mengonfigurasi tugas, lihat Konfigurasikan tugas sinkronisasi batch menggunakan Antarmuka tanpa kode.

    Catatan

    Topik ini menggunakan MySQL (sharded database and table) sebagai contoh. Pilih jenis sesuai kebutuhan bisnis Anda.

    Halaman uji konektivitas jaringan menunjukkan bahwa nama sumber data sumber adalah Database_and_Table_Sharding_of_MySQL, kelompok sumber daya adalah Serveless_Resource (China (Shanghai), pay-as-you-go, 0,5 CU dikonsumsi), dan tujuannya adalah sumber data jenis MaxCompute(ODPS) bernama doc_test_project. Uji konektivitas untuk ketiganya berhasil.

  7. Klik Next.

  8. Pilih tabel yang akan disinkronkan, klik Save dan Publish, lalu selesaikan langkah-langkah berikutnya.

    Di halaman Configure Source and Destination, pada Langkah 2 Configure Task, di bagian Source sebelah kiri, pilih MySQL (sharded database and table) sebagai sumber data. Atur Table Selection Method ke Fixed Table, pilih tabel user_info, dan masukkan id untuk Split Key. (Sharding mensyaratkan bahwa semua tabel memiliki skema identik. Jika tidak, tugas akan gagal.) Di bagian Destination sebelah kanan, pilih MaxCompute(ODPS) sebagai sumber data dan atur nama tabel ke user_info. Atur Partition Information ke pt=${bizdate}. Atur Write Mode ke Clear existing data before writing (Insert Overwrite) dan Convert empty string to null ke No.

Sumber data standar dan Antarmuka tanpa kode

  1. Buat sumber data standar untuk setiap database ter-shard. Topik ini menggunakan MySQL sebagai contoh. Untuk langkah-langkah detail, lihat Konfigurasikan sumber data.

  2. Buat node sinkronisasi batch.

  3. Konfigurasikan tugas sinkronisasi sharding.

    Untuk mengonfigurasi sharding di Antarmuka tanpa kode, di bagian Data Source, klik + Edit Data Sources. Di panel pemilihan sumber data yang muncul, pilih dan tambahkan sumber data untuk database ter-shard. Untuk langkah-langkah lengkap cara mengonfigurasi tugas, lihat Konfigurasikan tugas sinkronisasi batch menggunakan Antarmuka tanpa kode.

  4. Tambahkan sumber data standar ke daftar Selected Data Sources, lalu klik Confirm.

  5. Klik Next.

  6. Untuk setiap sumber data, pilih tabel yang ingin Anda sinkronkan. Lalu, klik Save dan Publish, dan selesaikan langkah-langkah berikutnya.

    Penting

    Dalam konfigurasi ini, opsi Data Sources for Sharded Databases Use Same Account and Password dipilih secara default. Artinya, semua sumber data ter-shard menggunakan akun dan password dari sumber data pertama untuk mengakses database masing-masing. Jika database ter-shard Anda menggunakan akun dan password berbeda, kosongkan opsi ini. Hal ini memungkinkan setiap sumber data menggunakan kredensial yang telah dikonfigurasi sendiri.

    Di halaman Configure Source and Destination, tiga sumber data MySQL ter-shard dikonfigurasi di bagian Source sebelah kiri, seperti MySQL_20241112, MySQL_20241114, dan MySQL_20241113. Untuk setiap sumber data, tabel user_info dipilih. Halaman menampilkan peringatan: "Sharding mensyaratkan bahwa semua tabel memiliki skema identik. Jika tidak, tugas akan gagal." Di bagian Destination sebelah kanan, sumber datanya adalah MaxCompute(ODPS) dan tabelnya adalah user_info. Partition Information diatur ke pt=${bizdate}, dan Write Mode adalah Clear existing data before writing (Insert Overwrite).

Editor kode

  1. Buat node sinkronisasi batch.

  2. Konfigurasikan tugas sinkronisasi sharding.

    Untuk mengonfigurasi sharding di editor kode, gunakan skrip serupa contoh berikut. Untuk langkah-langkah lengkap cara mengonfigurasi tugas, lihat Konfigurasikan tugas sinkronisasi batch menggunakan editor kode.

    Penting

    Hapus komentar dari kode berikut sebelum menjalankannya.

    {
        "type":"job",
        "version":"2.0",
        "steps":[
            {
                "stepType":"mysql",
                "parameter":{
                    "envType":0,
                    "column":[
                        "id",
                        "name"
                    ],
                    "socketTimeout":3600000,
                    "tableComment":"",
                    "connection":[    // Konfigurasikan koneksi berdasarkan jumlah database ter-shard.
                        {
                            "datasource":"datasourceName1",  // Sumber data ter-shard 1.
                            "table":[           // Tabel di sumber data 1.
                                "tb1"
                            ]
                        },
                        {
                            "datasource":"datasourceName2", // Sumber data ter-shard 2.
                            "table":[          // Tabel di sumber data 2.
                                "tb2",
                                "tb3"
                            ]
                        }
                    ],
                    "useSpecialSecret":true, // Setiap sumber data menggunakan password-nya sendiri.
                    "where":"",
                    "splitPk":"id",
                    "encoding":"UTF-8"
                    },
                "name":"Reader",
                "category":"reader"
                },
            {
                "stepType":"odps",
                "parameter":{
                    "partition":"pt=${bizdate}",
                    "truncate":true,
                    "datasource":"odpsname",
                    "envType":0,
                    "isSupportThreeModel":false,
                    "column":[
                        "id",
                        "name"
                    ],
                    "emptyAsNull":false,
                    "tableComment":"",
                    "table":"t1",
                    "consistencyCommit":false
                    },
                "name":"Writer",
                "category":"writer"
                }
        ],
        "setting":{
            "executeMode":null,
            "errorLimit":{
                "record":""
                },
            "speed":{
                "concurrent":2,
                "throttle":false
                }
        },
        "order":{
            "hops":[
                {
                    "from":"Reader",
                    "to":"Writer"
                    }
            ]
        }
    }

FAQ

Sumber data ter-shard tidak terlihat di node sinkronisasi (error API 610002)

Gejala: Setelah Anda membuat sumber data ter-shard, sumber data tersebut tidak muncul di daftar drop-down **Data Source** pada node sinkronisasi. Panggilan API /di/getDataSourceList mengembalikan code:610002.

Penyebab: Ini adalah masalah yang diketahui yang disebabkan oleh data kotor di sistem. Masalah ini hanya memengaruhi sumber data ter-shard. Sumber data standar seperti MySQL dan PolarDB tidak terpengaruh.

Solusi: Kirim tiket dan berikan ID ruang kerja serta nama sumber data. Tim backend DataWorks akan menyelidiki dan membersihkan data kotor tersebut.

Tugas sharding gagal dan sumber data hilang setelah pembuat meninggalkan perusahaan

Gejala: Setelah karyawan yang membuat tugas sinkronisasi sharding meninggalkan perusahaan, tugas yang sebelumnya berjalan sukses mulai gagal. Sumber data ter-shard yang sebelumnya dikonfigurasi tidak lagi ditemukan di node sinkronisasi, tetapi masih terlihat di pusat sumber data dan uji koneksi-nya berhasil. Masalah ini tetap terjadi bahkan setelah mengganti pemilik tugas.

Penyebab: Masalah ini disebabkan oleh data kotor akibat perubahan status akun pembuat, misalnya ketika karyawan meninggalkan perusahaan. Data kotor tersebut mencegah sumber data ter-shard dikembalikan dengan benar oleh API yang mengisi daftar sumber data di node sinkronisasi.

Solusi: Kirim tiket dan berikan ID ruang kerja serta nama sumber data. Tim backend DataWorks akan menyelidiki dan membersihkan data kotor tersebut. Setelah pembersihan, sumber data ter-shard akan kembali terlihat, dan tugas sinkronisasi dapat berjalan seperti yang diharapkan.