全部产品
Search
文档中心

E-MapReduce:Gunakan Perintah MoveTo dari JindoTable

更新时间:Jul 06, 2025

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

Penting Hanya satu proses MoveTo yang dapat dijalankan pada satu waktu dalam kluster EMR. Jika Anda mencoba memulai proses MoveTo pada kluster EMR tempat proses MoveTo lain sedang berjalan, permintaan Anda akan ditolak karena kunci konfigurasi tidak tersedia. Pesan yang berisi informasi tentang proses MoveTo yang sedang berjalan juga akan ditampilkan. Dalam hal ini, Anda dapat menghentikan proses MoveTo yang sedang berjalan dan memulai proses baru, atau menunggu proses MoveTo yang sedang berjalan selesai.
  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 moveTo
    Informasi 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>]
    ParameterDeskripsiDiperlukan
    -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>" | -fullTableAnda 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/-overWriteJalur tujuan dipaksa dibersihkan. Untuk tabel partisi, hanya jalur tujuan partisi yang ingin Anda migrasikan yang dibersihkan. Tidak
    -r/-removeSourceSetelah data dimigrasikan dan metadata diperbarui, jalur sumber dibersihkan. Untuk tabel partisi, hanya jalur sumber partisi yang dimigrasikan yang dibersihkan. Tidak
    -skipTrashTempat sampah dilewati ketika jalur sumber dibersihkan.
    Catatan Anda dapat menentukan opsi ini hanya jika -r/-removeSource ditentukan.
    Tidak
    -e/-explainMode 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

Konfigurasikan direktori kunci

Perintah MoveTo mendukung kunci proses. Anda harus menggunakan jalur HDFS untuk menyimpan file kunci. Jalur default adalah hdfs:///tmp/jindotable-lock/.
Penting Jalur tersebut harus berupa jalur HDFS. Jika Anda tidak memiliki izin pada jalur default, Anda dapat melakukan langkah-langkah berikut untuk menyesuaikan jalur.
  1. Pergi ke halaman layanan HDFS.
    1. Masuk ke Konsol Alibaba Cloud EMR.
    2. Di bilah navigasi atas, pilih wilayah tempat kluster Anda berada dan pilih grup sumber daya berdasarkan kebutuhan bisnis Anda.
    3. Klik tab Cluster Management.
    4. Di halaman Cluster Management, temukan kluster Anda dan klik Details di kolom Aksi.
    5. Di panel navigasi kiri halaman Gambaran Kluster, pilih Cluster Service > HDFS.
  2. Tambahkan item kustom.
    1. Klik tab Configure. Lalu, klik tab hdfs-site atau core-site di bagian Konfigurasi Layanan.
    2. Di sudut kanan atas bagian Konfigurasi Layanan, klik Custom Configuration.
      hdfs-site
    3. 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.
  3. Simpan konfigurasi.
    1. Di sudut kanan atas bagian Konfigurasi Layanan, klik Save.
    2. Di kotak dialog Confirm Changes, tentukan Deskripsi dan klik OK.