Topik ini menjelaskan cara memigrasikan data antar proyek MaxCompute dalam wilayah yang sama menggunakan pernyataan CLONE TABLE. Anda dapat mengeksekusi pernyataan CLONE TABLE untuk memigrasikan data antar proyek MaxCompute baik dalam akun Alibaba Cloud yang sama maupun akun berbeda, selama berada dalam wilayah yang sama.
Pernyataan CLONE TABLE
Pernyataan CLONE TABLE memungkinkan Anda menyalin data dari tabel sumber ke tabel tujuan secara efisien. Setelah data disalin, kami sarankan Anda memverifikasi data untuk memastikan akurasi. Sebagai contoh, Anda dapat mengeksekusi pernyataan SELECT untuk melihat data dalam tabel atau pernyataan DESC untuk melihat ukuran tabel.
Batasan
Skema tabel tujuan harus kompatibel dengan skema tabel sumber.
Anda dapat mengeksekusi pernyataan
CLONE TABLEuntuk tabel terpartisi, tabel non-partisi, dan tabel terkluster.Jika tabel tujuan telah dibuat sebelum pernyataan CLONE TABLE dieksekusi, Anda dapat mengkloning data dari maksimal 10.000 partisi secara bersamaan.
Jika tabel tujuan belum dibuat sebelum pernyataan CLONE TABLE dieksekusi, jumlah partisi tempat Anda dapat mengkloning data secara bersamaan tidak terbatas, sehingga atomicitas operasi pengklonan dijamin.
Pernyataan
CLONE TABLEtidak dapat digunakan untuk mereplikasi data tabel antar proyek MaxCompute lintas wilayah atau kluster (selama migrasi O&M proyek).Pernyataan
CLONE TABLEtidak dapat digunakan untuk mereplikasi data tabel untuk tabel eksternal.Operasi CLONE tidak didukung untuk tabel yang telah mengalami evolusi skema seperti penambahan atau penghapusan kolom.
Sintaksis
clone table <[<src_project_name>.]<src_table_name>> [partition(<pt_spec>), ...] to <[<dest_project_name>.]<dest_table_name>> [if exists [overwrite | ignore]] ;Untuk informasi lebih lanjut tentang parameter dan contoh, lihat CLONE TABLE.
Migrasikan data di antara proyek MaxCompute dalam akun Alibaba Cloud yang sama di wilayah yang sama
Jika Anda memigrasikan data menggunakan akun Alibaba Cloud, Anda dapat langsung mengeksekusi pernyataan CLONE TABLE di proyek sumber.
set odps.namespace.schema=false; -- Kloning tabel dari projectA ke projectB. clone TABLE projectA.<tablename> to projectB.<tablename> IF EXISTS OVERWRITE;Jika Anda memigrasikan data sebagai pengguna RAM, pastikan pengguna RAM memiliki izin
SELECTpada tabel sumber di proyek sumber serta izinCreateTabledanCreateInstancepada proyek tujuan. Pengguna RAM dengan izin yang diperlukan dapat mengeksekusi pernyataan CLONE TABLE.
Migrasikan data di antara proyek MaxCompute dalam akun Alibaba Cloud yang berbeda di wilayah yang sama
Untuk menyinkronkan data antar proyek MaxCompute dalam akun Alibaba Cloud berbeda, tambahkan akun Alibaba Cloud pemilik proyek tujuan ke proyek sumber dan berikan izin CreateTable dan CreateInstance pada proyek sumber kepada akun tersebut. Kemudian, Anda dapat mengeksekusi pernyataan CLONE TABLE menggunakan akun Alibaba Cloud untuk memigrasikan data antar proyek.
Tambahkan akun Alibaba Cloud pemilik proyek tujuan ke proyek sumber dan berikan izin kepada akun tersebut.
-- Pergi ke proyek sumber bernama projectA. use projectA; -- Tambahkan akun Alibaba Cloud projectB_owner@aliyunid.com, yang merupakan pemilik proyek tujuan bernama projectB, ke projectA. add user ALIYUN$projectB_owner@aliyunid.com; -- Berikan izin CreateTable dan CreateInstance pada proyek sumber kepada akun Alibaba Cloud. grant CreateTable,CreateInstance on project projectA to user ALIYUN$projectB_owner@aliyunid.com; -- Berikan izin Select pada tabel sumber kepada akun Alibaba Cloud. grant Select on table <tablename> to user ALIYUN$projectB_owner@aliyunid.com;Untuk informasi lebih lanjut tentang cara menambahkan akun Alibaba Cloud ke proyek, lihat Tambahkan Akun Alibaba Cloud (Tingkat Proyek). Untuk informasi lebih lanjut tentang cara memberikan izin kepada akun, lihat Berikan Izin pada Proyek Tertentu kepada Pengguna.
Eksekusi pernyataan CLONE TABLE di proyek tujuan.
Hanya akun Alibaba Cloud yang dapat melakukan operasi lintas akun. Akun Alibaba Cloud pemilik proyek tujuan memiliki semua izin pada data di proyek tujuan, sehingga Anda tidak perlu memberikan izin tambahan kepada akun tersebut.
use projectB; -- Kloning tabel dari projectA ke projectB. clone TABLE projectA.<tablename> to projectB.<tablename> IF EXISTS OVERWRITE;Periksa apakah data tabel telah dimigrasikan ke proyek tujuan.
select * from <tablename> limit 2;PentingUntuk memastikan keamanan data, kami sarankan Anda menghapus akun Alibaba Cloud pemilik proyek tujuan dari proyek sumber setelah migrasi data selesai. Untuk informasi lebih lanjut, lihat Hapus Akun Alibaba Cloud (Tingkat Proyek).