全部产品
Search
文档中心

E-MapReduce:Menyimpan dan membuka kembali data dalam mode SDK

更新时间:Jul 06, 2025

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.

Perintah archiveTable dan unarchiveTable memiliki keunggulan berikut dibandingkan dengan perintah arsip dan buka arsip:
  • 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.

  1. Masuk ke kluster Anda dalam mode SSH. Untuk informasi lebih lanjut, lihat Masuk ke kluster.
  2. Jalankan perintah berikut untuk mendapatkan informasi bantuan:
    jindo table -help archiveTable
    Informasi 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>]
    ParameterDeskripsiDiperlukan
    -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/-iKelas 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>" | -fullTableAnda harus menentukan -fullTable atau -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/-mapReduceHadoop MapReduce digunakan alih-alih multithreading lokal untuk mengarsipkan data.Tidak
    -e/-explainMode penjelasan digunakan. Dalam mode penjelasan, daftar partisi yang akan diarsipkan ditampilkan, tetapi tidak ada data yang diarsipkan.Tidak
    -w/-workingDirDirektori 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.

  1. Masuk ke kluster Anda dalam mode SSH. Untuk informasi lebih lanjut, lihat Masuk ke kluster.
  2. Jalankan perintah berikut untuk mendapatkan informasi bantuan:
    jindo table -help unarchiveTable
    Informasi 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.

Deskripsi -i/-o:
  • 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.