AnalyticDB for MySQL memungkinkan Anda menggunakan tabel eksternal untuk mengimpor dan mengekspor data. Topik ini menjelaskan cara menggunakan tabel eksternal AnalyticDB for MySQL Data Warehouse Edition (V3.0) untuk mengekspor data ke database MySQL yang dikelola sendiri.
Prasyarat
Sebuah instance Elastic Compute Service (ECS) telah dibuat di dalam virtual private cloud (VPC) yang sama di wilayah yang sama dengan kluster AnalyticDB for MySQL.
Database MySQL yang dikelola sendiri di-hosting pada instance ECS tersebut.
Nomor port tempat database MySQL yang dikelola sendiri berjalan telah diberi otorisasi untuk mengakses instance ECS. Untuk informasi lebih lanjut, lihat Tambahkan Aturan Grup Keamanan.
Data uji telah disiapkan.
Dalam contoh ini, database MySQL yang dikelola sendiri yang di-hosting pada ECS bernama
test_adbdigunakan sebagai database tujuan. Sebuah tabel tujuan bernamacoursesdibuat di dalam database tersebut. Tabel ini digunakan untuk menyimpan data yang diekspor dari kluster AnalyticDB for MySQL. Pernyataan berikut dapat 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 halaman Cluster Information.
PentingSaat mengaktifkan atau menonaktifkan ENI, koneksi database mungkin terputus selama sekitar 2 menit. Selama periode ini, operasi baca atau tulis tidak dapat dilakukan. 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 di dalam kluster AnalyticDB for MySQL.Buat tabel sumber dan masukkan data ke dalam tabel sumber.
Eksekusi pernyataan berikut untuk membuat tabel sumber bernama
coursesdi dalam database sumberadb_demo. Kemudian, ekspor data di dalam tabel sumber ke tabelcoursesdi dalam database MySQL yang dikelola sendiri bernamatest_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_tabledi dalam 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 di dalam database MySQL yang dikelola sendiri pada ECS.
urlprimary private IP address atau titik akhir VPC dari instance ECS, dan nama database tujuan. Dalam contoh ini, nama database tujuan adalah
test_adb. Lakukan langkah-langkah berikut untuk melihat titik akhir VPC dari instance ECS:Masuk ke Konsol ECS dan temukan instance ECS.
Di bagian Network Information pada tab Instance Details, lihat nilai Primary Private IP Address dari instance ECS.
Format:
"jdbc:mysql://mysql-vpc-address:3306/ecs-database-name".Contoh:
jdbc:mysql://192.168.128.***:3306/test_adb.tablenameNama tabel tujuan di dalam database MySQL yang dikelola sendiri pada ECS. Dalam contoh ini,
coursesdigunakan.usernameNama pengguna akun database yang digunakan untuk terhubung ke database MySQL yang dikelola sendiri pada ECS.
passwordKata sandi akun database.
charsetSet karakter yang digunakan oleh database sumber. Nilai valid:
gbk
utf8 (default)
utf8mb4
Ekspor data dari kluster AnalyticDB for MySQL ke database MySQL yang dikelola sendiri pada ECS.
Eksekusi pernyataan berikut:
REPLACE INTO courses_external_table SELECT * FROM courses;
Apa yang harus dilakukan selanjutnya
Setelah data diekspor, Anda dapat terhubung ke database MySQL yang dikelola sendiri bernama test_adb. Kemudian, eksekusi pernyataan berikut untuk memeriksa apakah data telah diimpor dari tabel sumber ke tabel tujuan courses:
SELECT * FROM courses LIMIT 100;