JindoTable memungkinkan Anda menjalankan perintah MoveTo untuk memigrasi data dalam tabel atau partisi. Topik ini menjelaskan cara menggunakan perintah MoveTo.
Prasyarat
- Java Development Kit (JDK) 8 telah terinstal di komputer Anda.
- Sebuah kluster E-MapReduce (EMR) telah dibuat. Untuk informasi lebih lanjut, lihat Buat sebuah kluster.
Informasi latar belakang
Perintah MoveTo secara otomatis memperbarui metadata setelah menyalin data yang mendasarinya. Dengan cara ini, data dalam tabel atau partisi dapat sepenuhnya dipindahkan ke jalur tujuan. Anda dapat mengonfigurasi kondisi filter untuk perintah MoveTo guna memigrasi sejumlah besar partisi secara bersamaan. JindoTable juga menyediakan beberapa langkah perlindungan untuk memastikan integritas dan keamanan data selama proses migrasi.
Batasan
Perintah MoveTo hanya didukung di EMR V3.36.0 dan versi minor berikutnya, serta di EMR V5.2.0 dan versi minor berikutnya.
Gunakan perintah MoveTo
- Masuk ke kluster Anda dalam mode SSH. Untuk informasi lebih lanjut, lihat Masuk ke kluster.
- Jalankan perintah berikut untuk mendapatkan informasi bantuan:
jindo table -help moveToInformasi serupa dengan keluaran berikut dikembalikan:<dbName.tableName> Tabel yang akan dipindahkan. <jalur tujuan> Direktori dasar tujuan yang selalu berada pada tingkat yang sama dengan 'lokasi tabel', di mana partisi yang dipindahkan atau data non-partisi akan berada. <kondisi>/-fullTable Kondisi filter untuk menentukan partisi mana yang harus dipindahkan, mendukung operator umum (seperti '>') dan UDF bawaan (seperti to_date) (UDF belum didukung...), sementara -fullTable berarti bahwa semua partisi (atau seluruh tabel non-partisi) harus dipindahkan. Salah satu tetapi hanya satu opsi harus ditentukan di antara -c "<kondisi>" dan -fullTable. <sebelum hari-hari> Opsional, mengatakan bahwa tabel/partisi harus dipindahkan hanya jika mereka dibuat (bukan diperbarui atau dimodifikasi) lebih dari beberapa hari sebelum sekarang. <konkurensi maksimum> Konkurensi maksimum saat menyalin partisi, 1 secara default. <Kebijakan penyimpanan OSS>: Kebijakan penyimpanan untuk tujuan OSS, yang bisa Standard (secara default), IA, Archive, atau ColdArchive. Tidak berlaku untuk tujuan selain OSS. CATATAN: jika Anda ingin menggunakan kebijakan penyimpanan ColdArchive, pastikan Penyimpanan Arsip Dingin telah diaktifkan untuk Bucket OSS Anda. -o/-overWrite Menimpa jalur akhir tempat data akan dipindahkan. Untuk tabel partisi ini menimpa lokasi partisi yang merupakan subdirektori dari <jalur tujuan>; untuk tabel non-partisi ini menimpa <jalur tujuan> itu sendiri. -r/-removeSource Biarkan data sumber dihapus ketika tabel/partisi yang sesuai berhasil dipindahkan ke tujuan baru. Sebaliknya (secara default), data sumber akan dibiarkan seperti semula. -skipTrash Berlaku hanya jika [-r/-removeSource] diaktifkan. Jika ada, data sumber akan segera dihapus dari sistem file, melewati tempat sampah. -e/-explain Jika ada, perintah tidak benar-benar memindahkan data, tetapi hanya mencetak tabel/partisi yang akan dipindahkan untuk kondisi tertentu. <direktori log> Direktori untuk menemukan file log, '/tmp/<pengguna saat ini>/' secara default.Sintaksis MoveTo:jindo table -moveTo \ -t <dbName.tableName> \ -d <jalur tujuan> \ [-c "<kondisi>" | -fullTable] \ [-b/-before <sebelum hari-hari>] \ [-p/-parallel <konkurensi maksimum>] \ [-s/-storagePolicy <kebijakan penyimpanan OSS>] \ [-o/-overWrite] \ [-r/-removeSource] \ [-skipTrash] \ [-e/-explain] \ [-l/-logDir <direktori log>]Parameter Deskripsi Diperlukan -t <dbName.tableName> Nama tabel yang ingin Anda migrasikan. Anda harus menentukan parameter ini dalam format Nama basis data.Nama tabel.Pisahkan nama basis data dan nama tabel dengan titik (.). Tabel bisa berupa tabel partisi atau tabel non-partisi.
Ya -d <jalur tujuan> Jalur tujuan. Tidak peduli apakah Anda ingin memigrasi partisi tertentu atau seluruh tabel non-partisi, parameter ini menentukan jalur tingkat tabel. Jika Anda ingin memigrasi partisi, jalur lengkap partisi terdiri dari nilai parameter ini dan nama partisi, seperti <jalur tujuan>/p1=v1/p2=v2/.Ya -c "<kondisi>" | -fullTable Anda harus menentukan salah satu -c "<kondisi>"atau-fullTable.- Jika Anda menentukan
-fullTable, seluruh tabel partisi atau non-partisi diarsipkan. - Jika Anda menentukan
-c "<kondisi>", hanya partisi yang memenuhi kondisi filter yang diarsipkan. Operator umum, seperti tanda lebih besar (>), didukung.Sebagai contoh, jika kolom kunci partisi adalah kolom ds yang tipe datanya adalah String dan Anda ingin mengarsipkan partisi yang nama partisinya lebih besar dari 'd', gunakan
-c " ds > 'd' ".
Tidak -b/before <sebelum hari-hari> Hanya tabel atau partisi yang dibuat setidaknya jumlah hari yang ditentukan sebelumnya yang dapat dimigrasikan. Tidak -p/-parallel <konkurensi maksimum> Konkurensi di antara operasi migrasi. Tidak -s/-storagePolicy <kebijakan penyimpanan OSS> Kelas penyimpanan yang ingin Anda gunakan setelah data dimigrasikan ke Object Storage Service (OSS). Nilai valid: - Standard
- IA
- Archive
- ColdArchive Catatan Pastikan bahwa kelas penyimpanan yang ingin Anda gunakan telah diaktifkan pada Bucket OSS tujuan.
Tidak -o/-overWrite Jalur tujuan dipaksa dibersihkan. Untuk tabel partisi, hanya jalur tujuan partisi yang ingin Anda migrasikan yang dibersihkan. Tidak -r/-removeSource Setelah data dimigrasikan dan metadata diperbarui, jalur sumber dibersihkan. Untuk tabel partisi, hanya jalur sumber partisi yang dimigrasikan yang dibersihkan. Tidak -skipTrash Tempat sampah dilewati ketika jalur sumber dibersihkan. Catatan Anda dapat menentukan opsi ini hanya jika -r/-removeSource ditentukan.Tidak -e/-explain Mode penjelasan digunakan. Dalam mode penjelasan, daftar partisi yang akan dimigrasikan ditampilkan, tetapi tidak ada data yang dimigrasikan. Tidak -l/-logDir <direktori log> Direktori tempat file log disimpan. Tidak - Jika Anda menentukan
Konfigurasikan direktori kunci
- Pergi ke halaman layanan HDFS.
- Masuk ke Konsol Alibaba Cloud EMR.
- Di bilah navigasi atas, pilih wilayah tempat kluster Anda berada dan pilih grup sumber daya berdasarkan kebutuhan bisnis Anda.
- Klik tab Cluster Management.
- Di halaman Cluster Management, temukan kluster Anda dan klik Details di kolom Aksi.
- Di panel navigasi kiri halaman Gambaran Kluster, pilih .
- Masuk ke Konsol Alibaba Cloud EMR.
- Tambahkan item kustom.
- Klik tab Configure. Lalu, klik tab hdfs-site atau core-site di bagian Konfigurasi Layanan.
- Di sudut kanan atas bagian Konfigurasi Layanan, klik Custom Configuration.

- Di kotak dialog Add Configuration Item, tambahkan parameter jindotable.moveto.tablelock.base.dir dan atur ke jalur HDFS yang ada.Penting Saat Anda menyesuaikan direktori kunci, pastikan tidak ada proses MoveTo yang sedang berjalan pada node kluster. Jika tidak, proses MoveTo mungkin gagal, yang bahkan dapat menyebabkan pencemaran data.
- Simpan konfigurasi.
- Di sudut kanan atas bagian Konfigurasi Layanan, klik Save.
- Di kotak dialog Confirm Changes, tentukan Deskripsi dan klik OK.