全部产品
Search
文档中心

DataWorks:Konfigurasikan task sinkronisasi sharding offline

更新时间:Jan 06, 2026

Di DataWorks, Anda dapat mengonfigurasi task sinkronisasi offline melalui Antarmuka tanpa kode atau editor kode untuk menyinkronkan data dari database dan tabel yang di-shard ke satu tabel tujuan. Topik ini menggunakan contoh untuk menunjukkan sinkronisasi data dari database dan tabel MySQL yang di-shard.

Prasyarat

Persiapkan sumber data yang ingin Anda sinkronkan. Untuk informasi selengkapnya, lihat Sumber data yang didukung dan plugin baca/tulis.

Ikhtisar

Anda dapat menggunakan salah satu metode berikut untuk membuat task sinkronisasi offline untuk database dan tabel yang di-shard. Tabel berikut membandingkan metode-metode tersebut.

Perbedaan

Sumber data sharded + Antarmuka tanpa kode (Direkomendasikan)

Sumber data standar + Antarmuka tanpa kode

Editor kode

Dukungan Antarmuka tanpa kode

Ya

Ya

Tidak

Konfigurasi nama tabel berdasarkan aturan

Anda dapat mengonfigurasi nama tabel sumber dengan ekspresi reguler. Saat waktu proses, task akan mencari dan menyinkronkan tabel yang cocok berdasarkan ekspresi reguler tersebut.

Tidak didukung.

Anda dapat mengonfigurasi nama tabel dengan rentang numerik, seperti tb_[1-10]. Rentang tersebut harus kontinu, dan setiap tabel anak harus ada.

Memerlukan skema tabel identik

Anda dapat mengonfigurasi kebijakan bidang yang hilang untuk mengizinkan beberapa tabel memiliki bidang yang tidak lengkap. Bidang-bidang tersebut kemudian diatur sebagai NULL.

Memerlukan skema tabel identik.

Referensi pemetaan bidang

Tabel pertama yang cocok dalam sumber metadata dari sumber data sharded.

Tabel pertama dari sumber data pertama.

Dikonfigurasi secara manual di editor kode.

Jumlah sumber data yang didukung

Satu sumber data sharded dapat mereferensikan maksimal 5.000 sumber data.

Anda dapat mengonfigurasi maksimal 50 sumber data untuk satu node tunggal.

Memerlukan modifikasi dan penerbitan node untuk menambahkan sumber data

Anda tidak perlu memodifikasi node. Setelah Anda memodifikasi sumber data, perubahan tersebut berlaku pada instans baru.

Anda harus memodifikasi task untuk menambahkan sumber data 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 sharded + Antarmuka tanpa kode

  1. Buka halaman Data Integration.

    Masuk ke Konsol DataWorks. Di bilah navigasi atas, pilih Wilayah yang diinginkan. Di panel navigasi kiri, pilih Data Integration > Data Integration. Pada halaman yang muncul, pilih ruang kerja yang diinginkan 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 mendukung MySQL, PolarDB, dan PolarDB-O.

  3. Buat setiap database yang di-shard sebagai sumber data standar. Topik ini menggunakan MySQL sebagai contoh. Untuk informasi selengkapnya, lihat Konfigurasi Sumber Data.

    image

  4. Buat sumber data Sharded. Gabungkan sumber data standar menjadi satu sumber untuk sinkronisasi data.

    1. Klik Add Data Source dan pilih Sharded.image

    2. Pilih jenis sumber data sharded dan konfigurasi parameter-parameternya. Topik ini menggunakan MySQL (Sharded) sebagai contoh.

      image

      Deskripsi parameter utama:

      • Sesuaikan Data Source Name.

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

      • Metadata Source: Untuk sinkronisasi database dan tabel yang di-shard, skema semua database dan tabel di seluruh sumber data harus identik. Pilih satu sumber data untuk digunakan sebagai templat metadata default. Hal ini memungkinkan task sinkronisasi menarik skema database dan tabel default selama konfigurasi.

        Penting

        Jika skema database dan tabel dalam sumber data tidak identik, task sinkronisasi akan gagal.

  5. Buat node sinkronisasi offline.

  6. Konfigurasi task sinkronisasi database dan tabel yang di-shard.

    Di Antarmuka tanpa kode, atur parameter Data Source ke MySQL (Sharded) dan pilih sumber data sharded yang sudah ada. Untuk informasi selengkapnya tentang cara mengonfigurasi task, lihat Konfigurasi Antarmuka tanpa kode.

    Catatan

    Topik ini menggunakan MySQL (Sharded) sebagai contoh. Anda dapat memilih jenis sumber data sesuai kebutuhan.

    image

  7. Klik Next.

  8. Pilih tabel yang ingin Anda sinkronkan, klik Save dan Publish, lalu selesaikan langkah-langkah berikutnya.

    image

Sumber data standar + Antarmuka tanpa kode

  1. Buat setiap database yang di-shard sebagai sumber data standar. Topik ini menggunakan MySQL sebagai contoh. Untuk informasi selengkapnya, lihat Konfigurasi Sumber Data.

    image

  2. Buat node sinkronisasi offline.

  3. Konfigurasi task sinkronisasi database dan tabel yang di-shard.

    Di Antarmuka tanpa kode, konfigurasikan task sinkronisasi database dan tabel yang di-shard. Di bagian Data Source, klik + Edit Data Source untuk menambahkan beberapa sumber data. Untuk informasi selengkapnya tentang cara mengonfigurasi task, lihat Konfigurasi di Antarmuka tanpa kode.

    image

  4. Tambahkan sumber data standar ke daftar Selected Data Sources dan klik OK.

    image

  5. Klik Next.

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

    Penting

    Secara default, opsi Sharded Data Sources Use The Same Account And Password dipilih. Artinya, semua sumber data sharded menggunakan akun dan password yang dikonfigurasi untuk sumber data pertama untuk mengakses database. Jika database yang di-shard Anda menggunakan akun dan password yang berbeda, batalkan pilihan opsi ini. Jika Anda membatalkan pilihan opsi ini, akun dan password yang dikonfigurasi di masing-masing sumber data akan digunakan.

    image

Editor kode

  1. Buat node sinkronisasi offline.

  2. Konfigurasi task sinkronisasi database dan tabel yang di-shard.

    Skrip contoh berikut menunjukkan cara mengonfigurasi sharding dalam mode editor kode. Untuk informasi selengkapnya, lihat Konfigurasi editor kode.

    Penting

    Sebelum menjalankan kode, hapus komentar-komentarnya.

    {
        "type":"job",
        "version":"2.0",
        "steps":[
            {
                "stepType":"mysql",
                "parameter":{
                    "envType":0,
                    "column":[
                        "id",
                        "name"
                    ],
                    "socketTimeout":3600000,
                    "tableComment":"",
                    "connection":[    // Konfigurasikan koneksi berdasarkan jumlah database yang di-shard.
                        {
                            "datasource":"datasourceName1",  // Sumber data 1 untuk sharding
                            "table":[           // Daftar tabel 1 untuk sharding
                                "tb1"
                            ]
                        },
                        {
                            "datasource":"datasourceName2", // Sumber data 2 untuk sharding
                            "table":[          // Daftar tabel 2 untuk sharding
                                "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"
                    }
            ]
        }
    }