DataWorks memungkinkan Anda mengonfigurasi tugas sinkronisasi batch dalam mode wizard atau mode skrip 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) | ||
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, |
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. | Ditulis secara manual dalam mode skrip. |
Jumlah sumber data yang didukung | Satu sumber data ter-shard mendukung hingga 5.000 sumber data yang direferensikan. | Kami menyarankan agar Anda mengonfigurasi tidak lebih dari 50 sumber data per node. | |
Apakah penambahan sumber data memerlukan modifikasi dan penerapan ulang node | Tidak diperlukan modifikasi node. Setelah Anda mengubah sumber data, perubahan tersebut berlaku pada instans yang baru dijalankan. | Anda harus memodifikasi tugas untuk menambahkan sumber data dan mengonfigurasi nama tabel untuk sumber data tersebut. | |
Jenis sumber data yang didukung | MySQL, PolarDB, PolarDB-O, OceanBase | MySQL, PolarDB, AnalyticDB, OceanBase | MySQL, PolarDB, AnalyticDB, SQL Server, Oracle, PostgreSQL, DM, DB2, Oracle, OceanBase |
Sumber data ter-shard dan Antarmuka tanpa kode
-
Masuk ke Konsol DataWorks. Di wilayah target, klik di panel navigasi sebelah kiri. Pilih ruang kerja dari daftar drop-down dan klik Go to Data Integration.
Di panel navigasi sebelah kiri, klik Data Source, klik Add Data Source, lalu pilih jenis sumber data. Metode ini mendukung MySQL, PolarDB, dan PolarDB-O.
Buat sumber data standar untuk setiap database ter-shard. Topik ini menggunakan MySQL sebagai contoh. Untuk langkah-langkah detail, lihat Konfigurasikan sumber data MySQL.
Setelah pembuatan selesai, Anda dapat melihat sumber data MySQL untuk setiap database ter-shard di halaman Data Source List. Misalnya, nama sumber data adalah MySQL_20241114, yang sesuai dengan database
user_info_20241114.Buat Sharded Data Source untuk menggabungkan beberapa sumber data standar menjadi satu sumber data sebagai sumber untuk sinkronisasi data.
Klik Add Data Source dan pilih Sharded Data Source. Di dialog Add Data Source, klik tab Sharded Data Source. Jenis sumber data yang tersedia mencakup MySQL (sharded), PolarDB-O (sharded), dan PolarDB (sharded).
Pilih jenis sumber data ter-shard sesuai kebutuhan dan konfigurasikan parameter terkait. Topik ini menggunakan MySQL (sharded) sebagai contoh.
Di bidang Data Source Name, masukkan nama seperti
Database_and_Table_Sharding_of_MySQL. Setelah konfigurasi selesai, klik OK untuk membuat sumber data ter-shard.Penjelasan parameter utama:
Kustomisasi Data Source Name.
Select Data Sources: Pilih sumber data standar yang telah Anda buat untuk setiap database ter-shard.
Meta Data Source: Untuk sinkronisasi sharding, semua sumber data harus memiliki skema tabel yang identik. Pilih salah satu sumber data sebagai templat metadata default untuk mengambil skema tabel default saat Anda mengonfigurasi tugas sinkronisasi.
PentingJika skema tabel di berbagai sumber data tidak konsisten, tugas sinkronisasi selanjutnya akan gagal.
Konfigurasikan tugas sinkronisasi sharding.
Konfigurasikan sharding dalam mode wizard: Untuk Data Source, pilih MySQL (sharded), lalu pilih sumber data sharded yang telah Anda buat. Untuk langkah-langkah konfigurasi tugas yang lengkap, lihat Konfigurasikan tugas sinkronisasi batch dalam mode wizard.
CatatanTopik ini menggunakan MySQL (sharded) sebagai contoh. Pilih jenis yang sesuai berdasarkan kebutuhan Anda.
Di halaman uji konektivitas jaringan, nama sumber data sumber adalah Database_and_Table_Sharding_of_MySQL, kelompok resource adalah Serveless_Resource (China (Shanghai), pay-as-you-go, 0,5 CU), dan tujuan adalah MaxCompute(ODPS) dengan nama sumber data doc_test_project. Hasil uji konektivitas jaringan menunjukkan bahwa ketiganya terhubung.
Klik Next.
Pilih tabel yang akan disinkronkan, klik Save dan Publish, lalu selesaikan langkah-langkah yang tersisa.
Di halaman Configure Source and Destination, pada Langkah 2 Configure Task, bagian kiri Source dikonfigurasi sebagai berikut: sumber data adalah MySQL (sharded), metode pemilihan tabel adalah Fixed Table, tabel adalah user_info, dan kunci pemisahan adalah id. (Sharding mengharuskan semua tabel memiliki skema yang identik; jika tidak, akan terjadi error eksekusi.) Bagian kanan Destination dikonfigurasi sebagai berikut: sumber data adalah MaxCompute(ODPS), tabel adalah user_info, informasi partisi adalah
pt=${bizdate}, mode penulisan adalah Clear existing data before writing (Insert Overwrite), dan konversi string kosong ke NULL diatur ke No.
Sumber data standar dan Antarmuka tanpa kode
Buat sumber data standar untuk setiap database ter-shard. Topik ini menggunakan MySQL sebagai contoh. Untuk langkah-langkah detail, lihat Konfigurasikan sumber data MySQL.
Konfigurasikan tugas sinkronisasi sharding.
Konfigurasikan sharding dalam mode wizard: Di bagian Data Source, klik + Edit Source. Di panel pemilihan sumber data yang muncul, pilih dan tambahkan sumber data yang sesuai dengan beberapa database ter-shard. Untuk langkah-langkah konfigurasi tugas lengkap, lihat Konfigurasikan tugas sinkronisasi batch dalam mode wizard.
Tambahkan beberapa sumber data standar ke Selected Data Sources dan klik Confirm.
Klik Next.
Pilih tabel yang akan disinkronkan dari setiap sumber data, klik Save dan Publish, lalu selesaikan langkah-langkah yang tersisa.
PentingDalam konfigurasi ini, opsi Data Sources for Sharded Databases Use Same Account and Password dipilih secara default. Artinya, semua sumber data ter-shard akan menggunakan akun dan password yang dikonfigurasi di sumber data pertama untuk mengakses database. Jika database ter-shard Anda menggunakan akun dan password yang berbeda, kosongkan opsi ini agar setiap sumber data menggunakan akun dan password-nya sendiri.
Di halaman Configure Source and Destination, bagian kiri Source memiliki tiga sumber data MySQL ter-shard yang dikonfigurasi (misalnya MySQL_20241112, MySQL_20241114, dan MySQL_20241113), dan setiap sumber data memilih tabel user_info. Halaman tersebut menampilkan peringatan: "Sharding mengharuskan semua tabel memiliki skema yang identik; jika tidak, akan terjadi error eksekusi." Bagian kanan Destination memilih sumber data MaxCompute(ODPS), tabel adalah user_info, informasi partisi diatur ke
pt=${bizdate}, dan mode penulisan adalah Clear existing data before writing (Insert Overwrite).
Editor kode
Konfigurasikan tugas sinkronisasi sharding.
Konfigurasikan sharding dalam mode skrip: Berikut adalah contoh skrip. Untuk langkah-langkah konfigurasi tugas lengkap, lihat Konfigurasikan tugas sinkronisasi batch dalam mode skrip.
PentingSebelum menjalankan tugas, hapus komentar dari kode berikut.
{ "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 1 untuk database dan tabel ter-shard "table":[ //Daftar tabel 1 untuk database dan tabel ter-shard "tb1" ] }, { "datasource":"datasourceName2", //Sumber data 2 untuk database dan tabel ter-shard "table":[ //Daftar tabel 2 untuk database dan tabel ter-shard "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" } ] } }