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) | ||
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 |
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
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 tarik-turun 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-sharding 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-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.
PentingJika skema database dan tabel dalam sumber data tidak identik, tugas sinkronisasi akan gagal.
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.
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-sharding sebagai sumber data Standar. Topik ini menggunakan MySQL sebagai contoh. Untuk informasi selengkapnya, lihat Konfigurasi Sumber Data.

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.

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 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.

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