Gunakan IMPORT FOREIGN SCHEMA untuk membuat tabel eksternal MaxCompute secara batch di kluster AnalyticDB for MySQL.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki kluster AnalyticDB for MySQL yang menjalankan versi V3.2.2.0 atau lebih baru.
Untuk melihat dan memperbarui versi minor, masuk ke Konsol AnalyticDB for MySQL, lalu buka bagian Configuration Information pada halaman Cluster Information.
Mengaktifkan Elastic Network Interface (ENI) pada kluster.
PentingUntuk mengaktifkan ENI, masuk ke Konsol AnalyticDB for MySQL, buka halaman detail kluster, lalu pilih Cluster Management > Cluster Information di panel navigasi sebelah kiri. Di bagian Network Information, aktifkan ENI. Mengaktifkan atau menonaktifkan ENI akan mengganggu koneksi database selama sekitar 2 menit. Tidak ada operasi baca atau tulis yang dapat dilakukan selama periode ini.
Memiliki proyek MaxCompute di wilayah yang sama dengan kluster AnalyticDB for MySQL Anda.
Menambahkan blok CIDR dari virtual private cloud (VPC) tempat kluster Anda berada ke daftar putih alamat IP proyek MaxCompute.
Untuk menemukan blok CIDR, lihat ID VPC pada halaman Cluster Information di Konsol AnalyticDB for MySQL, lalu cari VPC tersebut di Konsol VPC. Untuk cara mengonfigurasi daftar putih di MaxCompute, lihat Mengelola daftar putih alamat IP.
Membuat server eksternal untuk kluster — lihat Buat server eksternal dalam topik ini.
Panduan cepat
Contoh end-to-end berikut menunjukkan alur kerja lengkap: buat server eksternal, lalu impor tabel eksternal.
Langkah 1: Buat server eksternal.
CREATE SERVER maxcompute_server
TYPE = 'ODPS'
SERVER_PROPERTIES = '{
"endpoint":"http://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api",
"accessid":"STS.****************",
"accesskey":"yourAccessKeySecret"
}';Langkah 2: Impor semua tabel dari proyek MaxCompute.
IMPORT FOREIGN SCHEMA my_project
FROM maxcompute_server
INTO my_adb_schema;Perintah ini membuat satu tabel eksternal di AnalyticDB for MySQL untuk setiap tabel di my_project.
Sintaksis
IMPORT FOREIGN SCHEMA odps_project
[LIMIT TO (table_name[, ...])]
FROM server_name
INTO adb_schema
[OPTIONS (
if_table_exist 'error|ignore|update',
if_type_unsupport 'error|ignore',
table_prefix 'table_prefix',
table_suffix 'table_suffix')]Parameter
| Parameter | Wajib | Deskripsi |
|---|---|---|
odps_project | Ya | Nama proyek MaxCompute. |
table_name[,...] | Tidak | Tabel MaxCompute yang akan diimpor. Jika dihilangkan, semua tabel dalam proyek akan diimpor. |
server_name | Ya | Nama server eksternal. |
adb_schema | Ya | Nama database di kluster AnalyticDB for MySQL. |
if_table_exist | Tidak | Cara menangani konflik nama dengan tabel yang sudah ada. Nilai default: error. Lihat opsi di bawah. |
if_type_unsupport | Tidak | Cara menangani tipe data yang tidak didukung. Nilai default: error. Lihat opsi di bawah. |
table_prefix | Tidak | Awalan yang ditambahkan ke setiap nama tabel eksternal. Secara default, tabel eksternal menggunakan nama yang sama dengan tabel MaxCompute yang sesuai. |
table_suffix | Tidak | Akhiran yang ditambahkan ke setiap nama tabel eksternal. Secara default, tabel eksternal menggunakan nama yang sama dengan tabel MaxCompute yang sesuai. |
Opsi if_table_exist
| Nilai | Perilaku | Gunakan saat |
|---|---|---|
error (default) | Melaporkan error dan mencantumkan tabel yang bentrok. Tidak ada tabel yang dibuat. | Anda menginginkan kontrol ketat dan harus meninjau konflik sebelum melanjutkan. |
ignore | Melewatkan tabel dengan nama yang bentrok; membuat semua tabel lainnya. | Menjalankan skrip idempoten — impor dapat dijalankan ulang dengan aman tanpa menimpa tabel yang sudah ada. |
update | Menimpa tabel dengan nama yang bentrok; membuat semua tabel lainnya. | Menyinkronkan perubahan skema dari MaxCompute — tabel eksternal yang ada diperbarui agar sesuai dengan skema MaxCompute terbaru. |
Opsi if_type_unsupport
| Nilai | Perilaku |
|---|---|
error (default) | Melaporkan error dan mencantumkan tipe data yang tidak didukung serta tabel yang memuatnya. |
ignore | Melewatkan tabel yang memuat tipe data yang tidak didukung; membuat semua tabel lainnya. |
Contoh
Impor semua tabel dari proyek
Impor semua tabel dari my_project ke database my_adb_schema:
IMPORT FOREIGN SCHEMA my_project
FROM maxcompute_server
INTO my_adb_schema;Impor tabel tertentu dengan opsi penamaan
Impor hanya tabel customer dan order, tambahkan awalan pre_ dan akhiran _suf pada nama tabel eksternal. Timpa tabel yang sudah ada dengan nama yang sama, dan lewati tabel yang memiliki tipe data yang tidak didukung:
IMPORT FOREIGN SCHEMA my_project
LIMIT TO (customer, order)
FROM maxcompute_server
INTO my_adb_schema
OPTIONS (
if_table_exist 'update',
if_type_unsupport 'ignore',
table_prefix 'pre_',
table_suffix '_suf'
);Perintah ini membuat tabel eksternal bernama pre_customer_suf dan pre_order_suf di AnalyticDB for MySQL.
Mengelola server eksternal
Server eksternal menyimpan konfigurasi koneksi untuk proyek MaxCompute. Buat satu server sebelum menjalankan IMPORT FOREIGN SCHEMA.
Buat server eksternal
Sintaksis
CREATE SERVER <server_name>
TYPE = 'ODPS'
SERVER_PROPERTIES = '{
"endpoint":"<endpoint>",
"accessid":"<accesskey_id>",
"accesskey":"<accesskey_secret>"
}'Parameter
| Parameter | Wajib | Deskripsi |
|---|---|---|
server_name | Ya | Nama server eksternal. Maksimal 64 karakter; dapat berisi huruf, angka, dan garis bawah (_); harus dimulai dengan huruf atau garis bawah. |
TYPE='ODPS' | Ya | Jenis server eksternal. Tetapkan ke ODPS. |
endpoint | Ya | Titik akhir VPC MaxCompute. Hanya titik akhir VPC yang didukung. Untuk nilai titik akhir, lihat Titik akhir. |
accessid | Ya | ID AccessKey dari Akun Alibaba Cloud atau Pengguna Resource Access Management (RAM) yang memiliki akses ke MaxCompute. Untuk cara mendapatkan ID AccessKey dan Rahasia AccessKey, lihat Akun dan izin. |
accesskey | Ya | Rahasia AccessKey dari Akun Alibaba Cloud atau Pengguna RAM yang memiliki izin untuk mengakses MaxCompute. Untuk cara mendapatkan ID AccessKey dan Rahasia AccessKey, lihat Akun dan izin. |
Contoh
CREATE SERVER maxcompute_server
TYPE = 'ODPS'
SERVER_PROPERTIES = '{
"endpoint":"http://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api",
"accessid":"STS.****************",
"accesskey":"yourAccessKeySecret"
}';Kueri server eksternal
Tampilkan semua server eksternal:
SHOW SERVERKueri server eksternal tertentu berdasarkan nama:
SHOW SERVER WHERE SERVER_NAME='<server_name>';Contoh:
SHOW SERVER WHERE SERVER_NAME='maxcompute_server';Kueri server eksternal berdasarkan jenis:
SHOW SERVER WHERE SERVER_TYPE='<server_type>';Untuk server MaxCompute, tetapkan server_type ke ODPS:
SHOW SERVER WHERE SERVER_TYPE='ODPS';Ubah nama server eksternal
Sintaksis
ALTER SERVER <server_name> RENAME <new_server_name>Parameter
| Parameter | Wajib | Deskripsi |
|---|---|---|
server_name | Ya | Nama saat ini dari server eksternal. |
new_server_name | Ya | Nama baru dari server eksternal. |
Contoh
ALTER SERVER maxcompute_server RENAME mc_server;Hapus server eksternal
Menghapus server eksternal akan memutus koneksi antara AnalyticDB for MySQL dan MaxCompute yang dibuat melalui server tersebut.
Sintaksis
DROP SERVER <server_name>Parameter
| Parameter | Wajib | Deskripsi |
|---|---|---|
server_name | Ya | Nama server eksternal yang akan dihapus. |
Contoh
DROP SERVER maxcompute_server;