All Products
Search
Document Center

AnalyticDB:Ekspor data ke database MySQL yang dikelola sendiri

Last Updated:Mar 29, 2026

AnalyticDB for MySQL Data Warehouse Edition (V3.0) memungkinkan Anda mengekspor data ke database MySQL yang dikelola sendiri yang dihosting pada instance Elastic Compute Service (ECS). Proses ekspor ini menggunakan tabel eksternal sebagai jembatan: Anda membuat tabel eksternal yang mengarah ke database MySQL tujuan, lalu menulis data ke dalamnya dengan satu pernyataan SQL.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Memiliki instance ECS di virtual private cloud (VPC) dan wilayah yang sama dengan kluster AnalyticDB for MySQL.

  • Memiliki database MySQL yang dikelola sendiri yang dihosting pada instance ECS tersebut.

  • Mengizinkan Port MySQL (biasanya 3306) untuk menerima lalu lintas masuk dalam aturan security group instance ECS. Untuk detailnya, lihat Add a security group rule.

  • Data uji siap diekspor.

  • (Diperlukan untuk mode elastic) ENI diaktifkan di bagian Network Information pada halaman Cluster Information.

Contoh konfigurasi yang digunakan dalam panduan ini:

Tujuannya adalah database MySQL yang dihosting di ECS bernama test_adb, dengan tabel courses yang dibuat sebagai berikut:

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)
);

Ekspor data menggunakan tabel eksternal

Prosedur ini mencakup pembuatan tabel sumber di AnalyticDB for MySQL, pembuatan tabel eksternal yang dipetakan ke database MySQL tujuan, lalu penulisan data ke tabel eksternal tersebut.

Langkah 1: Hubungkan ke kluster AnalyticDB for MySQL

Hubungkan ke kluster Anda. Untuk detailnya, lihat Connect to an AnalyticDB for MySQL cluster.

Langkah 2: Buat database sumber

Buat database di kluster untuk menyimpan data yang ingin Anda ekspor. Untuk detailnya, lihat Create a database.

Panduan ini menggunakan database bernama adb_demo.

Langkah 3: Buat tabel sumber dan masukkan data

Jalankan pernyataan berikut untuk membuat tabel courses di 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

Tabel eksternal ini dipetakan ke database MySQL tujuan. Jalankan pernyataan berikut untuk membuat tabel eksternal bernama courses_external_table di adb_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 wajib:

ParameterDeskripsi
ENGINE='mysql'Mesin penyimpanan untuk tabel eksternal. Atur ke mysql untuk terhubung ke database MySQL.
TABLE_PROPERTIESInformasi koneksi yang digunakan oleh kluster AnalyticDB for MySQL untuk mengakses data di database MySQL yang dikelola sendiri dan dihosting di ECS.
urlURL JDBC dari database MySQL tujuan, menggunakan primary private IP address atau titik akhir VPC dari instance ECS. Format: jdbc:mysql://<primary-private-ip>:3306/<database-name>. Contoh: jdbc:mysql://192.168.128.***:3306/test_adb. Untuk menemukan alamat IP pribadi utama instance ECS Anda, buka ECS console, pilih instance tersebut, lalu periksa Primary Private IP Address di bagian Network Information pada tab Instance Details.
tablenameNama tabel tujuan di database MySQL.
usernameUsername akun database yang digunakan untuk terhubung ke database MySQL.
passwordPassword akun database tersebut.

Parameter opsional:

ParameterDefaultDeskripsi
charsetutf8Set karakter dari database sumber. Nilai yang valid: gbk, utf8, utf8mb4.

Langkah 5: Ekspor data

Jalankan pernyataan berikut untuk menulis data dari tabel sumber ke database MySQL tujuan melalui tabel eksternal:

REPLACE INTO courses_external_table
SELECT * FROM courses;

Verifikasi hasil ekspor

Hubungkan ke database MySQL test_adb dan jalankan:

SELECT * FROM courses LIMIT 100;

Konfirmasi bahwa baris data yang diekspor muncul di tabel tujuan courses.

Pemecahan Masalah

Tidak dapat terhubung ke database MySQL

Penyebab paling umum adalah aturan security group pada instance ECS yang tidak ada atau salah. Pastikan Port 3306 diizinkan untuk menerima lalu lintas masuk dari kluster AnalyticDB for MySQL Anda. Lihat Add a security group rule.

Jika port sudah terbuka tetapi koneksi tetap gagal:

  • Verifikasi bahwa url dalam TABLE_PROPERTIES menggunakan Primary Private IP Address dari instance ECS, bukan IP publik.

  • Verifikasi bahwa username dan password benar.

  • Verifikasi bahwa format URL JDBC adalah jdbc:mysql://<ip>:3306/<database-name> tanpa garis miring tambahan atau karakter ekstra di akhir.

Tidak ada data yang muncul di tabel tujuan setelah ekspor

Jalankan SELECT * FROM courses LIMIT 10; di kluster AnalyticDB for MySQL untuk memastikan tabel sumber berisi data sebelum menjalankan REPLACE INTO.

Verifikasi juga bahwa skema courses_external_table sesuai dengan tabel tujuan di test_adb. Ketidaksesuaian tipe kolom atau nama dapat menyebabkan proses penulisan gagal atau memicu error.

Langkah Berikutnya

Untuk mengimpor data dari database MySQL yang dikelola sendiri ke AnalyticDB for MySQL, buat tabel eksternal dengan sintaksis ENGINE='mysql' yang sama dan gunakan INSERT INTO ... SELECT * untuk membacanya.