Topik ini menjelaskan cara memigrasikan data historis yang dihasilkan enam bulan lalu dari tabel sumber ke tabel tujuan menggunakan node SQL Instance Tunggal yang disediakan oleh fitur orkestrasi tugas Data Management (DMS). Setelah migrasi, data dihapus dari tabel sumber dan diarsipkan ke tabel tujuan.
Prasyarat
Instansi tempat Anda ingin menggunakan fitur orkestrasi tugas harus terdaftar dengan DMS. Untuk informasi lebih lanjut tentang cara mendaftarkan instansi ApsaraDB, lihat Daftarkan instansi basis data Alibaba Cloud.
Status instansi harus normal. Untuk memeriksa status instansi, buka halaman Beranda konsol DMS. Di panel navigasi sebelah kiri, arahkan pointer ke instansi yang ingin diperiksa, lalu lihat status instansi dari tip yang muncul.
Jenis basis data berikut didukung:
Catatan Penggunaan
Jika mode kontrol instansi adalah Manajemen Fleksibel atau Perubahan Stabil, pastikan Anda adalah pemilik alur tugas yang ingin Anda edit. Jika tidak, alur tugas mungkin gagal setelah Anda mengedit konfigurasi node alur tugas tersebut. Jika mode kontrol instansi adalah Kolaborasi Keamanan, persyaratan ini tidak diperlukan. Untuk informasi lebih lanjut tentang cara menentukan pemilik alur tugas, lihat Ikhtisar.
Persiapan
Dalam contoh ini, tabel sumber bernama test digunakan. Anda dapat mengeksekusi pernyataan berikut untuk membuat tabel test dan menyisipkan data ke dalam tabel test:
-- Buat tabel.
CREATE TABLE test (
`id` bigint(20) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT 'Kunci utama',
`gmt_create` DATETIME NOT NULL COMMENT 'Waktu pembuatan',
`gmt_modified` DATETIME NOT NULL COMMENT 'Waktu modifikasi',
`content` TEXT COMMENT 'Data uji'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Tabel untuk pengujian orkestrasi tugas';
-- Masukkan data ke dalam tabel.
INSERT INTO test( `gmt_create`, `gmt_modified`, `content`) VALUES ('2020-01-01 01:00:00', '2020-01-01 01:00:00', 'value1');
INSERT INTO test( `gmt_create`, `gmt_modified`, `content`) VALUES ('2020-02-01 01:00:00', '2020-02-01 01:00:00', 'value2');
INSERT INTO test( `gmt_create`, `gmt_modified`, `content`) VALUES ('2020-03-01 01:00:00', '2020-03-01 01:00:00', 'value3');
INSERT INTO test( `gmt_create`, `gmt_modified`, `content`) VALUES ('2020-04-01 01:00:00', '2020-04-01 01:00:00', 'value4');
INSERT INTO test( `gmt_create`, `gmt_modified`, `content`) VALUES ('2020-05-01 01:00:00', '2020-05-01 01:00:00', 'value5');
INSERT INTO test( `gmt_create`, `gmt_modified`, `content`) VALUES ('2020-06-01 01:00:00', '2020-06-01 01:00:00', 'value6');
INSERT INTO test( `gmt_create`, `gmt_modified`, `content`) VALUES ('2020-07-01 01:00:00', '2020-07-01 01:00:00', 'value7');
INSERT INTO test( `gmt_create`, `gmt_modified`, `content`) VALUES ('2020-08-01 01:00:00', '2020-08-01 01:00:00', 'value8');
INSERT INTO test( `gmt_create`, `gmt_modified`, `content`) VALUES ('2020-09-01 01:00:00', '2020-09-01 01:00:00', 'value9');
INSERT INTO test( `gmt_create`, `gmt_modified`, `content`) VALUES ('2020-10-01 01:00:00', '2020-10-01 01:00:00', 'value10');Anda juga dapat membuat tabel test pada tab SQLConsole DMS atau dengan mengirimkan tiket perubahan data. Untuk informasi lebih lanjut, lihat bagian "Buat tabel" dari topik Kelola basis data pada tab SQLConsole dan topik Modifikasi Data Normal.
Prosedur
Langkah 1: Buat alur tugas
- Masuk ke Konsol DMS V5.0.
Di bilah navigasi atas, pilih All Fteatures > Data + AI > Data Development > Task Orchestration.
CatatanJika Anda menggunakan konsol DMS dalam mode normal, arahkan pointer ke ikon
di sudut kiri atas dan pilih Data + AI > Data Development > Task Orchestration.Di halaman yang muncul, klik Create Task Flow.
Di kotak dialog New Task Flow, tentukan parameter Task Flow Name dan Description. Lalu, klik OK.
Langkah 2: Konfigurasikan variabel alur tugas
Variabel alur tugas adalah variabel waktu. Anda dapat menggunakan variabel dalam semua node dalam format ${Nama Variabel}. Contoh ini menjelaskan cara mengonfigurasi variabel waktu sebagai kondisi filter dalam pernyataan SQL untuk secara berkala memigrasikan data historis yang dihasilkan enam bulan lalu di tabel test.
Dalam contoh ini, variabel yearmonth6_name dan yearmonth6_date dibuat.
Di bagian bawah halaman, klik tab Variable Configuration. Di panel sebelah kiri, klik Task Flow Variable.
Buat variabel
yearmonth6_name. Atur parameter Format Waktu menjadiyyyy-MM. Tentukan-, 6, and Monthdi bidang di bawah parameter Format Waktu.Ini menentukan bulan yang enam bulan sebelum bulan saat ini. Nilainya akurat hingga bulan. Jika tanggal saat ini adalah 27 Juni 2023, nilai variabelnya adalah 2022-12.
Buat variabel
yearmonth6_date. Atur parameter Format Waktu menjadiyyyy-MM-01. Tentukan-, 6, and Monthdi bidang di bawah parameter Format Waktu.Ini menentukan hari pertama bulan yang enam bulan sebelum bulan saat ini. Nilainya akurat hingga hari. Jika tanggal saat ini adalah 27 Juni 2023, nilai variabelnya adalah 2022-12-01.
Untuk informasi tentang aturan dan penggunaan variabel, lihat Variabel.
Langkah 3: Buat dan konfigurasikan node dalam alur tugas
Buat Node untuk Memigrasi Data
Dari daftar jenis node di sebelah kiri bagian Jenis Tugas pada halaman Task Orchestration, seret node Single Instance SQL ke area kosong di kanvas.
Klik kanan node. Di menu pintasan yang muncul, klik Rename untuk mengganti nama node menjadi Migrasi Data.
Klik dua kali node untuk masuk ke halaman penulisan pernyataan SQL.
Cari basis data yang diinginkan di kotak pencarian basis data dan masukkan pernyataan SQL berikut di editor SQL:
CREATE TABLE IF NOT EXISTS `test_${yearmonth6_name}` LIKE test; INSERT INTO `test_${yearmonth6_name}` SELECT * FROM `test` WHERE gmt_create < '${yearmonth6_date}';Pernyataan di atas digunakan untuk membuat tabel bernama test_${yearmonth6_name} untuk mengarsipkan data historis di basis data saat ini dan memigrasikan data historis yang memenuhi persyaratan tanggal dari tabel test ke tabel test_${yearmonth6_name}.
Klik Preview untuk memeriksa validitas pernyataan SQL.
Buat Node untuk Membersihkan Data Historis
Dari daftar jenis node di sebelah kiri bagian Jenis Tugas pada halaman Task Orchestration, seret node Single Instance SQL ke area kosong di kanvas.
Klik kanan node. Di menu pintasan yang muncul, klik Rename untuk mengganti nama node menjadi Hapus Data Historis.
Klik dua kali node untuk masuk ke halaman penulisan pernyataan SQL.
Cari basis data yang diinginkan di kotak pencarian basis data dan masukkan pernyataan SQL berikut di editor SQL:
PeringatanUntuk menghapus sejumlah besar data, kami sarankan Anda menggunakan node Single Instance SQL untuk mengeksekusi pernyataan DELETE selama jam non-puncak. Ini membantu mencegah gangguan bisnis yang disebabkan oleh penguncian tabel jangka panjang.
DELETE FROM `test` WHERE gmt_create < '${yearmonth6_date}';Pernyataan di atas digunakan untuk menghapus data yang telah dimigrasi dari tabel test.
Klik Preview untuk memeriksa validitas pernyataan SQL.
Langkah 4: Hubungkan node dan konfigurasikan informasi penjadwalan
Di kanvas, arahkan pointer ke node Migrasi Data, klik lingkaran kosong di sebelah kanan, lalu tarik garis koneksi ke node Hapus Data Historis.
CatatanAnda dapat menentukan urutan eksekusi node dengan menyeret garis koneksi. Dalam contoh ini, node Migrasi Data dijalankan sebelum node Hapus Data Historis.
Di bagian bawah halaman, klik tab Task Flow Information. Di bagian Scheduling Settings, konfigurasikan parameter berikut.
Parameter
Contoh
Enable Scheduling
Menentukan apakah akan mengaktifkan fitur penjadwalan. Nyalakan Enable Scheduling.
Scheduling Type
Jenis penjadwalan. Pilih Timed Scheduling/Cyclic scheduling.
Effective Time
Periode selama properti penjadwalan berlaku. Nilai default adalah 1970-01-01 - 9999-01-01, yang menunjukkan bahwa properti penjadwalan berlaku secara permanen.
Scheduling Cycle
Siklus penjadwalan: Pilih Month.
Specified Time
Waktu ketika properti penjadwalan berlaku. Pilih 1st of each month.
Specific Point in Time
Titik waktu spesifik ketika properti penjadwalan berlaku. Atur parameter ini ke 01:00.
Time Zone
Zona waktu berdasarkan sistem menjadwalkan tugas.
Cron Expression
Ekspresi CRON, yang dihasilkan secara otomatis berdasarkan siklus penjadwalan dan pengaturan waktu yang ditentukan.
CatatanDalam contoh ini, alur tugas dijadwalkan berjalan pada 01:00 di hari pertama setiap bulan. Anda dapat menjadwalkan alur tugas untuk berjalan sesuai kebutuhan. Untuk informasi lebih lanjut, lihat Ikhtisar.
Langkah 5: Jalankan alur tugas dan verifikasi hasilnya
Klik Try Run di pojok kiri atas kanvas.
Jika
status SUCCEEDEDmuncul di baris terakhir log, uji coba berhasil.Jika
status FAILEDmuncul di baris terakhir log, uji coba gagal.CatatanJika uji coba gagal, lihat node tempat kegagalan terjadi dan alasan kegagalannya di log. Lalu, ubah konfigurasi node dan coba lagi.
Pergi ke tab SQLConsole untuk memeriksa apakah data historis di tabel test dimigrasikan ke tabel tuakan dan apakah data yang dimigrasikan dihapus dari tabel test. Untuk informasi lebih lanjut, lihat bagian "Kueri data" dari topik Kelola basis data pada tab SQLConsole.