Gunakan tabel eksternal untuk mengekspor data dari kluster AnalyticDB for MySQL ke instans ApsaraDB RDS for MySQL. Tabel eksternal tersebut memetakan ke tabel tujuan di instans RDS, dan data dipindahkan menggunakan satu pernyataan REPLACE INTO ... SELECT.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kluster AnalyticDB for MySQL dan instans ApsaraDB RDS for MySQL di virtual private cloud (VPC) yang sama. Untuk memverifikasi, bandingkan ID VPC-nya:
Instans RDS: Di Konsol ApsaraDB RDS, klik ID instans, lalu lihat ID VPC pada bidang Network Type di halaman Database Connection.
Kluster AnalyticDB: Di Konsol AnalyticDB for MySQL, buka tab Data Warehouse Edition (V3.0), klik ID kluster, lalu lihat ID VPC pada bagian Network Information di halaman Cluster Information.
Database dan data uji di instans RDS. Lihat Buat akun dan database serta Hubungkan ke instans ApsaraDB RDS for MySQL.
(Hanya untuk mode Elastic) ENI diaktifkan pada bagian Network Information di halaman Cluster Information.
Ekspor data ke RDS for MySQL
Contoh ini mengekspor data dari tabel sumber bernama courses di kluster AnalyticDB for MySQL ke tabel tujuan dengan nama yang sama di instans RDS. Database sumber adalah adb_demo dan database tujuan adalah test_adb.
Langkah 1: Buat tabel tujuan di RDS
Hubungkan ke database test_adb di instans RDS Anda, lalu buat tabel tujuan:
CREATE TABLE courses (
id bigint NOT NULL,
name varchar(32) NOT NULL,
grade varchar(32) NOT NULL,
submission_date timestamp NOT NULL,
PRIMARY KEY (id)
);Langkah 2: Hubungkan ke kluster AnalyticDB for MySQL
Hubungkan ke kluster, lalu buat database sumber. Contoh ini menggunakan database bernama adb_demo.
Langkah 3: Buat tabel sumber dan masukkan data uji
Buat tabel sumber bernama courses di database adb_demo:
CREATE TABLE courses (
id bigint AUTO_INCREMENT,
name varchar NOT NULL,
grade varchar DEFAULT '1st Grade',
submission_date timestamp
) DISTRIBUTED BY HASH(id);Masukkan satu baris data uji:
INSERT INTO courses (name, submission_date) VALUES ("Jams", NOW());Langkah 4: Buat tabel eksternal
Buat tabel eksternal bernama courses_external_table di database adb_demo. Tabel ini memetakan ke tabel courses di instans RDS dan berfungsi sebagai target penulisan:
CREATE TABLE IF NOT EXISTS courses_external_table (
id bigint NOT NULL,
name varchar(32) NOT NULL,
grade varchar(32) NOT NULL,
submission_date timestamp NOT NULL,
PRIMARY KEY (id)
)
ENGINE='mysql'
TABLE_PROPERTIES='{
"url": "jdbc:mysql://mysql-vpc-address:3306/test_adb",
"tablename": "courses",
"username": "mysql-user-name",
"password": "mysql-user-password",
"charset": "utf8"
}';Ganti nilai placeholder di TABLE_PROPERTIES dengan detail koneksi aktual Anda:
| Parameter | Deskripsi |
|---|---|
ENGINE='mysql' | Menentukan MySQL sebagai mesin penyimpanan untuk tabel eksternal. |
url | Titik akhir VPC dari instans RDS dan nama database tujuan. Format: jdbc:mysql://<vpc-endpoint>:3306/<database-name>. Contoh: jdbc:mysql://192.168.128.***:3306/test_adb. Untuk menemukan titik akhir VPC Anda, lihat Lihat dan kelola titik akhir serta port instans. |
tablename | Nama tabel tujuan di database RDS. |
username | Nama akun yang digunakan untuk menghubungkan ke database RDS. |
password | Kata sandi untuk akun tersebut. |
charset | Set karakter dari database sumber. Nilai default: utf8. Nilai yang valid: gbk, utf8, utf8mb4. |
Langkah 5: Ekspor data
Jalankan pernyataan berikut untuk menyalin data dari tabel sumber AnalyticDB ke tabel tujuan RDS:
REPLACE INTO courses_external_table
SELECT * FROM courses;Verifikasi ekspor
Login ke database test_adb di instans RDS dan kueri tabel tujuan:
SELECT * FROM courses LIMIT 100;Pastikan baris yang diekspor sesuai dengan data sumber.
Apa yang selanjutnya
Setelah data diekspor, Anda dapat login ke database tujuan test_adb di instans ApsaraDB RDS for MySQL untuk memverifikasi bahwa data telah diimpor dari tabel sumber ke tabel tujuan courses.