JindoTable memungkinkan Anda menjalankan perintah archiveTable dan unarchiveTable dalam mode SDK untuk menyimpan dan membuka kembali data di Object Storage Service (OSS). Perintah ini tidak bergantung pada komponen Jindo Namespace Service dari SmartData. Topik ini menjelaskan cara menggunakan perintah archiveTable dan unarchiveTable.
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.
- Tabel partisi atau tabel non-partisi yang ingin disimpan tersimpan di OSS. Hanya data tabel yang dapat disimpan.
Informasi latar belakang
Anda dapat menggunakan perintah arsip dan buka arsip asli dari JindoTable untuk mengarsipkan atau membuka kembali tabel atau partisi di OSS. Namun, perintah tersebut bergantung pada komponen Jindo Namespace Service dari SmartData. Perintah baru archiveTable dan unarchiveTable tidak bergantung pada komponen Jindo Namespace Service.
- Anda dapat menjalankan perintah archiveTable dan unarchiveTable meskipun layanan SmartData tidak diterapkan di kluster Anda. Sebagai contoh, Anda dapat menjalankan perintah tersebut di kluster yang dikelola sendiri.
- Anda dapat mengonfigurasi parameter filter dalam perintah archiveTable atau unarchiveTable untuk mengarsipkan atau membuka kembali sejumlah besar partisi di beberapa thread secara bersamaan. Jika multithreading lokal tidak memenuhi persyaratan bisnis Anda, Anda dapat menjalankan tugas MapReduce di seluruh kluster untuk mengarsipkan atau membuka kembali data.
Untuk informasi lebih lanjut tentang perintah arsip dan buka arsip asli, lihat Gunakan JindoTable.
Batasan
Perintah archiveTable dan unarchiveTable hanya didukung di EMR V3.36.0 dan versi minor terbaru, serta EMR V5.2.0 dan versi minor terbaru.
archiveTable
Anda dapat menggunakan perintah archiveTable untuk mengarsipkan tabel atau partisi di OSS.
- 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 archiveTableInformasi berikut dikembalikan:<dbName.tableName> Tabel untuk diarsipkan. -a/-i kebijakan penyimpanan, -a untuk Arsip dan -i untuk IA (Akses Jarang). <kondisi>/-fullTable Kondisi filter untuk menentukan partisi mana yang harus diarsipkan, mendukung operator umum (seperti '>'), sedangkan -fullTable berarti bahwa semua partisi (atau seluruh tabel non-partisi) harus diarsipkan. Salah satu tetapi hanya satu opsi harus ditentukan di antara -c "<kondisi>" dan -fullTable. <sebelum hari-hari> Opsional, mengatakan bahwa tabel/partisi harus diarsipkan hanya ketika mereka dibuat (tidak diperbarui atau dimodifikasi) lebih dari beberapa hari sebelum dari sekarang. <paralelisme> Konkurensi maksimum saat mengarsipkan partisi, 1 secara default. -mr/-mapReduce Arsipkan tabel/partisi menggunakan pekerjaan MapReduce tingkat kluster alih-alih multi-thread tingkat lokal. -e/-explain Jika ada, perintah tidak akan benar-benar mengarsipkan data, tetapi hanya mencetak tabel/partisi yang akan diarsipkan untuk kondisi tertentu. <direktori kerja>: Direktori untuk menempatkan file temp map-reduce. Harus bukan direktori sistem file lokal. 'hdfs:///tmp/<pengguna saat ini>/jindotable-policy/' secara default. <direktori log> Direktori untuk menempatkan file log, '/tmp/<pengguna saat ini>/' secara default.Sintaksis archiveTable:-archiveTable -t <dbName.tableName> \ -a/-i \ [-c "<kondisi>" | -fullTable] \ [-b/-before <sebelum hari-hari>] \ [-p/-parallel <paralelisme>] \ [-mr/-mapReduce] \ [-e/-explain] \ [-w/-workingDir <direktori kerja>] \ [-l/-logDir <direktori log>]Parameter Deskripsi Diperlukan -t <dbName.tableName> Nama tabel yang ingin Anda arsipkan. 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 -a/-i Kelas penyimpanan di mana Anda ingin mengarsipkan data. Anda dapat menggunakan salah satu opsi berikut untuk menentukan kelas penyimpanan: -a: Arsip-i: Akses Jarang (IA)
Jika Anda menggunakan opsi -i dalam perintah, file yang kelas penyimpanannya adalah Arsip dilewati.
Ya -c "<condition>" | -fullTable Anda harus menentukan -fullTableatau-c "<kondisi>".- 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 bertipe data String dan Anda ingin mengarsipkan partisi yang namanya lebih besar dari 'd', gunakan
-c " ds > 'd' ".
Tidak -b/before <before days> Hanya tabel atau partisi yang dibuat setidaknya jumlah hari yang ditentukan yang lalu yang dapat diarsipkan. Tidak -p/-parallel <parallelism> Paralelisme operasi pengarsipan. Tidak -mr/-mapReduce Hadoop MapReduce digunakan alih-alih multithreading lokal untuk mengarsipkan data. Tidak -e/-explain Mode penjelasan digunakan. Dalam mode penjelasan, daftar partisi yang akan diarsipkan ditampilkan, tetapi tidak ada data yang diarsipkan. Tidak -w/-workingDir Direktori kerja pekerjaan MapReduce. Opsi ini hanya digunakan ketika Anda menggunakan pekerjaan MapReduce untuk mengarsipkan data. Anda harus memiliki izin baca dan tulis pada direktori. Direktori tersebut bisa kosong atau tidak. File sementara dibuat saat Anda menjalankan pekerjaan MapReduce dan dihapus secara otomatis setelah pekerjaan selesai. Tidak -l/-logDir <log directory> Direktori tempat file log disimpan. Tidak
unarchiveTable
Sintaksis perintah unarchiveTable serupa dengan sintaksis perintah archiveTable. Anda dapat menggunakan perintah unarchiveTable untuk membuka kembali tabel atau partisi di OSS.
- 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 unarchiveTableInformasi berikut dikembalikan:<dbName.tableName> Tabel untuk dibuka kembali. -i buka kembali ke IA (Akses Jarang). -o pulihkan untuk membuat data arsip dapat diakses sementara. <kondisi>/-fullTable Kondisi filter untuk menentukan partisi mana yang harus dibuka kembali, mendukung operator umum (seperti '>'), sedangkan -fullTable berarti bahwa semua partisi (atau seluruh tabel non-partisi) harus dibuka kembali. Salah satu tetapi hanya satu opsi harus ditentukan di antara -c "<kondisi>" dan -fullTable. <sebelum hari-hari> Opsional, mengatakan bahwa tabel/partisi harus dibuka kembali hanya ketika mereka dibuat (tidak diperbarui atau dimodifikasi) lebih dari beberapa hari sebelum dari sekarang. <paralelisme> Konkurensi maksimum saat membuka kembali partisi, 1 secara default. -mr/-mapReduce Buka kembali tabel/partisi menggunakan pekerjaan MapReduce tingkat kluster alih-alih multi-thread tingkat lokal. -e/-explain Jika ada, perintah tidak akan benar-benar membuka kembali data, tetapi hanya mencetak tabel/partisi yang akan dibuka kembali untuk kondisi tertentu. <direktori kerja>: Direktori untuk menempatkan file temp map-reduce. Harus bukan direktori sistem file lokal. 'hdfs:///tmp/<pengguna saat ini>/jindotable-policy/' secara default. <direktori log> Direktori untuk menempatkan file log, '/tmp/<pengguna saat ini>/' secara default.Sintaksis unarchiveTable:-unarchiveTable -t <dbName.tableName> \ [-i/-o] \ [-c "<kondisi>" | -fullTable] \ [-b/-before <sebelum hari-hari>] \ [-p/-parallel <paralelisme>] \ [-mr/-mapReduce] \ [-e/-explain] \ [-w/-workingDir <direktori kerja>] \ [-l/-logDir <direktori log>]
Dalam perintah unarchiveTable, parameter opsional -i/-o digunakan alih-alih parameter wajib -a/-i. Ini adalah satu-satunya perbedaan antara parameter perintah unarchiveTable dan perintah archiveTable.
- Jika Anda tidak menentukan -i/-o, kelas penyimpanan data yang ingin dibuka kembali diubah menjadi Standar.
- Jika Anda menentukan opsi -i, kelas penyimpanan data yang ingin dibuka kembali diubah menjadi IA. File yang kelas penyimpanannya adalah Standar dilewati.
- Jika Anda menentukan opsi -o, data hanya dibuka kembali sementara dan kelas penyimpanannya dipertahankan. File yang kelas penyimpanannya adalah Standar dan file yang kelas penyimpanannya adalah IA dilewati. File yang sebelumnya dibuka kembali juga dilewati. Dengan cara ini, file-file tersebut tidak dibuka kembali berulang kali.