Pernyataan CLONE TABLE menyalin data dari tabel sumber ke tabel tujuan dalam wilayah yang sama. Gunakan pernyataan ini untuk melakukan migrasi data antar-Proyek MaxCompute di bawah Akun Alibaba Cloud yang sama atau lintas akun berbeda.
Setelah proses kloning selesai, verifikasi data di tabel tujuan dengan menjalankan perintah SELECT untuk memeriksa data atau DESC untuk memeriksa skema tabel dan ukurannya.
Sintaksis
CLONE TABLE <[<src_project_name>.]<src_table_name>> [PARTITION(<pt_spec>), ...]
TO <[<dest_project_name>.]<dest_table_name>> [IF EXISTS [OVERWRITE | IGNORE]];Untuk referensi sintaksis lengkap dan contoh tambahan, lihat CLONE TABLE.
Batasan
| Batasan | Deskripsi |
|---|---|
| Kompatibilitas skema | Skema tabel tujuan harus kompatibel dengan skema tabel sumber. |
| Jenis tabel yang didukung | Tabel partisi, tabel non-partisi, dan Tabel terkluster. |
| Batas partisi (tabel yang sudah ada) | Maksimal 10.000 partisi dapat dikloning sekaligus jika tabel tujuan sudah ada. |
| Batas partisi (tabel baru) | Tanpa Batas. Hal ini menjamin atomisitas operasi kloning. |
| Cross-region | Tidak didukung. |
| Tabel eksternal | Tidak didukung. |
Migrasi data dalam satu Akun Alibaba Cloud
Gunakan Akun Alibaba Cloud
Jalankan pernyataan CLONE TABLE secara langsung di proyek sumber.
-- Jalankan di proyek sumber
SET odps.namespace.schema=false;
-- Kloning tabel sales_data dari project_analytics ke project_reporting
CLONE TABLE project_analytics.sales_data TO project_reporting.sales_data IF EXISTS OVERWRITE;Gunakan RAM user
Sebelum menjalankan pernyataan CLONE TABLE sebagai RAM user, pastikan RAM user tersebut memiliki izin berikut:
| Izin | Lingkup |
|---|---|
SELECT | Tabel sumber di proyek sumber |
CreateTable | Proyek tujuan |
CreateInstance | Proyek tujuan |
RAM user dengan izin tersebut dapat menjalankan pernyataan CLONE TABLE dengan cara yang sama seperti Akun Alibaba Cloud. Untuk informasi lebih lanjut mengenai otorisasi, lihat .
Migrasi data lintas Akun Alibaba Cloud berbeda
Untuk mengkloning data antara proyek yang dimiliki oleh Akun Alibaba Cloud berbeda, tambahkan pemilik proyek tujuan ke proyek sumber dan berikan izin yang diperlukan. Hanya Akun Alibaba Cloud (bukan RAM user) yang dapat melakukan operasi cross-account.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Proyek sumber dan tujuan berada dalam wilayah yang sama
Kredensial Akun Alibaba Cloud untuk pemilik proyek sumber dan tujuan
Prosedur
Berikan izin di proyek sumber. Masuk menggunakan akun pemilik proyek sumber dan jalankan perintah berikut. Untuk informasi lebih lanjut tentang penambahan akun, lihat Add an Alibaba Cloud account (project-level). Untuk informasi lebih lanjut tentang pemberian izin, lihat Grant permissions on a specified project to a user.
-- Jalankan di proyek sumber (project_analytics) USE project_analytics; -- Tambahkan pemilik proyek tujuan ke proyek sumber ADD USER ALIYUN$destination_owner@aliyunid.com; -- Berikan izin tingkat proyek GRANT CreateTable, CreateInstance ON PROJECT project_analytics TO USER ALIYUN$destination_owner@aliyunid.com; -- Berikan akses baca ke tabel sumber GRANT Select ON TABLE sales_data TO USER ALIYUN$destination_owner@aliyunid.com;Jalankan CLONE TABLE di proyek tujuan. Masuk menggunakan akun pemilik proyek tujuan. Pemilik proyek tujuan sudah memiliki izin penuh pada proyek tujuan, sehingga tidak diperlukan pemberian izin tambahan.
-- Jalankan di proyek tujuan (project_reporting) USE project_reporting; -- Kloning tabel dari project_analytics ke project_reporting CLONE TABLE project_analytics.sales_data TO project_reporting.sales_data IF EXISTS OVERWRITE;Verifikasi data yang telah dikloning. Jalankan
SELECTuntuk memeriksa data atauDESCuntuk memeriksa skema tabel dan ukurannya. Output yang diharapkan (contoh): Anda juga dapat memverifikasi skema dan ukuran tabel:-- Periksa sampel beberapa baris SELECT * FROM sales_data LIMIT 2;+----+------------+--------+ | id | order_date | amount | +----+------------+--------+ | 1 | 2024-01-15 | 299.00 | | 2 | 2024-01-16 | 450.50 | +----+------------+--------+-- Periksa struktur dan ukuran tabel DESC sales_data;
Bersihkan akses cross-account
Setelah migrasi selesai, hapus pemilik proyek tujuan dari proyek sumber untuk menjaga keamanan data. Untuk informasi lebih lanjut, lihat Remove an Alibaba Cloud account (project-level).