AnalyticDB for MySQL memungkinkan Anda menggunakan tabel eksternal untuk mengimpor dan mengekspor data. Topik ini menjelaskan cara menggunakan tabel eksternal AnalyticDB for MySQL untuk mengekspor data dari kluster AnalyticDB for MySQL ke instance ApsaraDB RDS for MySQL.
Prasyarat
Instance ApsaraDB RDS for MySQL dan kluster AnalyticDB for MySQL harus berada dalam virtual private cloud (VPC) yang sama, artinya ID VPC dari instance tersebut harus sama dengan ID VPC dari kluster.
CatatanUntuk mendapatkan ID VPC dari instance, masuk ke Konsol ApsaraDB RDS dan klik ID instance. Pada halaman Database Connection, Anda dapat melihat ID VPC di bidang Network Type.
Untuk mendapatkan ID VPC dari kluster, masuk ke Konsol AnalyticDB for MySQL, klik tab edisi, lalu klik ID kluster. Di bagian Network Information pada halaman Cluster Information, Anda dapat melihat ID VPC dari kluster AnalyticDB for MySQL.
Sebuah database telah dibuat pada instance ApsaraDB RDS for MySQL, dan Anda telah masuk ke database tersebut. Data uji telah disiapkan. Untuk informasi lebih lanjut, lihat Buat Akun dan Database dan Hubungkan ke Instance ApsaraDB RDS for MySQL.
Dalam contoh ini, sebuah database bernama
test_adbdigunakan sebagai database tujuan pada instance ApsaraDB RDS for MySQL. Sebuah tabel bernamacoursesdibuat dalam database tersebut. Tabel ini digunakan untuk menyimpan data yang diekspor dari kluster AnalyticDB for MySQL. Pernyataan berikut digunakan untuk membuat 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) );Jika kluster AnalyticDB for MySQL berada dalam mode elastis, Anda harus mengaktifkan ENI di bagian Network Information pada halaman Cluster Information.
PentingSaat Anda mengaktifkan atau menonaktifkan ENI, koneksi database mungkin terputus selama sekitar 2 menit. Selama periode ini, Anda tidak dapat melakukan operasi baca atau tulis. Berhati-hatilah saat mengaktifkan atau menonaktifkan ENI.
Prosedur
Hubungkan ke kluster AnalyticDB for MySQL. Untuk informasi lebih lanjut, lihat Hubungkan ke Kluster AnalyticDB for MySQL.
Buat database sumber. Untuk informasi lebih lanjut, lihat Buat Database.
Dalam contoh ini, sebuah database bernama
adb_demodigunakan sebagai database sumber dalam kluster AnalyticDB for MySQL.Buat tabel sumber dan sisipkan data ke dalam tabel sumber.
Eksekusi pernyataan berikut untuk membuat tabel sumber bernama
coursesdalam database sumberadb_demo. Kemudian, ekspor data dalam tabel sumber ke tabelcoursesdalam database tujuantest_adb.CREATE TABLE courses ( id bigint AUTO_INCREMENT, name varchar NOT NULL, grade varchar DEFAULT '1st Grade', submission_date timestamp ) DISTRIBUTED BY HASH(id);Eksekusi pernyataan berikut untuk menyisipkan satu baris data ke dalam tabel sumber
courses:INSERT INTO courses (name,submission_date) VALUES("Jams",NOW());Buat tabel eksternal.
Eksekusi pernyataan berikut untuk membuat tabel eksternal bernama
courses_external_tabledalam databaseadb_demo: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" }';Parameter
Deskripsi
ENGINE='mysql'Mesin penyimpanan yang digunakan untuk tabel eksternal. Dalam contoh ini, MySQL digunakan.
TABLE_PROPERTIESInformasi koneksi yang digunakan oleh kluster AnalyticDB for MySQL untuk mengakses data dalam instance ApsaraDB RDS for MySQL.
urlTitik akhir VPC dari instance ApsaraDB RDS for MySQL dan nama database tujuan. Dalam contoh ini, nama database tujuan adalah
test_adb. Untuk informasi lebih lanjut tentang cara melihat titik akhir VPC dari instance ApsaraDB RDS for MySQL, lihat Lihat dan kelola titik akhir dan port instance.Format:
"jdbc:mysql://mysql-vpc-address:3306/ecs-database-name".Contoh:
jdbc:mysql://192.168.128.***:3306/test_adb.tablenameNama tabel tujuan dalam database ApsaraDB RDS for MySQL tujuan. Dalam contoh ini,
coursesdigunakan.usernameNama akun yang digunakan untuk menghubungkan ke database tujuan dalam instance ApsaraDB RDS for MySQL.
passwordKata sandi dari akun tersebut.
charsetSet karakter yang digunakan oleh database sumber. Nilai default: utf8. Nilai valid:
gbk
utf8
utf8mb4
Impor data dari kluster AnalyticDB for MySQL ke instance ApsaraDB RDS for MySQL.
Eksekusi pernyataan berikut:
REPLACE INTO courses_external_table SELECT * FROM courses;
Apa yang harus dilakukan selanjutnya
Setelah data diimpor, Anda dapat masuk ke database tujuan test_adb dalam instance ApsaraDB RDS for MySQL. Kemudian, eksekusi pernyataan berikut untuk memeriksa apakah data telah diimpor dari tabel sumber ke tabel tujuan courses:
SELECT * FROM courses LIMIT 100;