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) | ||
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 |
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
Buka halaman Data Integration.
Masuk ke Konsol DataWorks. Di bilah navigasi atas, pilih Wilayah yang diinginkan. Di panel navigasi kiri, pilih . Pada halaman yang muncul, pilih ruang kerja yang diinginkan dari daftar drop-down dan klik Go to Data Integration.
Di panel navigasi kiri, klik Data Source, lalu klik Add Data Source. Pilih jenis sumber data. Metode ini mendukung MySQL, PolarDB, dan PolarDB-O.
Buat setiap database yang di-shard sebagai sumber data standar. Topik ini menggunakan MySQL sebagai contoh. Untuk informasi selengkapnya, lihat Konfigurasi Sumber Data.

Buat sumber data Sharded. Gabungkan sumber data standar menjadi satu sumber untuk sinkronisasi data.
Klik Add Data Source dan pilih Sharded.

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

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.
PentingJika skema database dan tabel dalam sumber data tidak identik, task sinkronisasi akan gagal.
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.
CatatanTopik ini menggunakan MySQL (Sharded) sebagai contoh. Anda dapat memilih jenis sumber data sesuai kebutuhan.

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

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

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.

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

Klik Next.
Untuk setiap sumber data, pilih tabel yang ingin Anda sinkronkan. Klik Save dan Publish, lalu selesaikan langkah-langkah berikutnya.
PentingSecara 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.

Editor kode
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.
PentingSebelum 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" } ] } }