全部产品
Search
文档中心

DataWorks:Mengonfigurasi tugas sinkronisasi offline untuk database dan tabel yang di-sharding

更新时间:Nov 10, 2025

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

Prasyarat

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

Latar Belakang

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

Item

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, tugas akan mencari dan menyinkronkan tabel yang cocok berdasarkan ekspresi reguler tersebut.

Tidak didukung.

Anda dapat mengonfigurasi nama tabel dengan rentang angka, seperti tb_[1-10]. Rentang tersebut harus berurutan, 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 tugas untuk menambahkan sumber data dan mengonfigurasi nama tabelnya.

Jenis sumber data yang didukung

MySQL, PolarDB, PolarDB-O

MySQL, PolarDB, AnalyticDB

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

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 tarik-turun 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-sharding 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-sharding.

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

        Penting

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

  5. Buat node sinkronisasi offline.

  6. Konfigurasi tugas sinkronisasi database dan tabel yang di-sharding.

    Di Antarmuka tanpa kode, atur parameter Data Source menjadi MySQL (Sharded) dan pilih sumber data sharded yang sudah ada. Untuk informasi lebih lanjut tentang cara mengonfigurasi tugas, 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-sharding 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 tugas sinkronisasi database dan tabel yang di-sharding.

    Di Antarmuka tanpa kode, konfigurasikan tugas sinkronisasi database dan tabel yang di-sharding. Di bagian Data Source, klik + Edit Data Source untuk menambahkan beberapa sumber data. Untuk informasi lebih lanjut tentang cara mengonfigurasi tugas, 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 kata sandi yang dikonfigurasi untuk sumber data pertama untuk mengakses database. Jika database sharded Anda menggunakan akun dan kata sandi yang berbeda, batalkan pilihan opsi ini. Jika Anda membatalkan pilihan opsi ini, akun dan kata sandi yang dikonfigurasi di masing-masing sumber data akan digunakan.

    image

Editor kode

  1. Buat node sinkronisasi offline.

  2. Konfigurasi tugas sinkronisasi database dan tabel yang di-sharding.

    Di editor kode, konfigurasikan tugas sinkronisasi database dan tabel yang di-sharding. Kode berikut menunjukkan contoh skrip. Untuk informasi lebih lanjut tentang cara mengonfigurasi tugas, lihat Konfigurasi di 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-sharding.
                        {
                            "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 kata sandinya 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"
                    }
            ]
        }
    }