JindoTable mengumpulkan statistik frekuensi akses pada tabel dan partisi, menyediakan manajemen penyimpanan berjenjang, serta mengoptimalkan organisasi tabel di lapisan penyimpanan.
Prasyarat
Sebelum memulai, pastikan Anda telah:
-
Menginstal Java Development Kit (JDK) 8 di mesin on-premises Anda
-
Memiliki kluster E-MapReduce (EMR) versi V3.30.0 atau yang lebih baru
Untuk detail tentang pembuatan kluster EMR, lihat Create a cluster.
Perintah
JindoTable menyediakan perintah-perintah berikut. Tentukan tabel dalam format database.table dan partisi dalam format partitionCol1=1,partitionCol2=2,....
| Command | Description |
|---|---|
-accessStat |
Kueri tabel atau partisi yang paling sering diakses dalam jendela waktu tertentu |
-leastUseStat |
Kueri tabel atau partisi yang paling lama tidak aktif |
-cache |
Cache data tabel atau partisi ke disk lokal |
-uncache |
Hapus data tabel atau partisi yang di-cache dari disk lokal |
-archive |
Turunkan kelas penyimpanan data tabel atau partisi ke Archive atau Infrequent Access |
-unarchive |
Pulihkan data yang diarsipkan ke kelas penyimpanan Standard atau Infrequent Access |
-status |
Lihat status penyimpanan tabel atau partisi |
-optimize |
Optimalkan organisasi data tabel di lapisan penyimpanan |
-showTable |
Daftar semua partisi dalam tabel partisi, atau tampilkan detail penyimpanan tabel non-partisi |
-showPartition |
Tampilkan detail penyimpanan partisi tertentu |
-listTables |
Daftar semua tabel dalam database |
-dumpmc |
Dump tabel MaxCompute ke kluster EMR atau Object Storage Service (OSS) |
Untuk operasi arsip dan migrasi data dalam mode SDK, lihat -archiveTable and -unarchiveTable dan -moveTo.
-accessStat
Menampilkan tabel atau partisi yang paling sering diakses dalam jumlah hari tertentu, beserta jumlah aksesnya.
Sintaks
jindo table -accessStat -d <days> [-n <topNums>]
Parameter
| Parameter | Wajib | Bawaan | Deskripsi |
|---|---|---|---|
-d <days> |
Ya | — | Jumlah hari terakhir yang dimasukkan dalam kueri. Harus berupa bilangan bulat positif. Jika diatur ke 1, kueri mencakup dari pukul 00:00 hingga waktu saat ini pada hari tersebut. |
-n <topNums> |
Tidak | Semua hasil | Jumlah hasil teratas yang dikembalikan. Harus berupa bilangan bulat positif. |
Contoh
Menampilkan 20 tabel atau partisi yang paling sering diakses selama tujuh hari terakhir:
jindo table -accessStat -d 7 -n 20
-leastUseStat
Menampilkan tabel atau partisi yang paling lama tidak aktif, diurutkan berdasarkan waktu sejak akses terakhir.
Sintaks
jindo table -leastUseStat -n <num> [-i | -ignoreNever]
Parameter
| Parameter | Wajib | Bawaan | Deskripsi |
|---|---|---|---|
-n <num> |
Ya | — | Jumlah hasil yang dikembalikan. Harus berupa bilangan bulat positif. |
-i / -ignoreNever |
Tidak | Sertakan semua | Jika ditentukan, mengecualikan tabel atau partisi yang belum pernah diakses. |
Contoh
Menampilkan 20 tabel atau partisi yang paling lama tidak aktif:
jindo table -leastUseStat -n 20
-cache
Menyimpan cache data tabel atau partisi dari OSS atau JindoFS ke disk lokal untuk mempercepat pembacaan berikutnya.
Untuk menghapus data yang di-cache, gunakan -uncache.
Sintaks
jindo table -cache -t <dbName.tableName> [-p <partitionSpec>] [-pin]
Parameter
| Parameter | Wajib | Bawaan | Deskripsi |
|---|---|---|---|
-t <dbName.tableName> |
Ya | — | Tabel yang akan di-cache. Data harus disimpan di OSS atau JindoFS. |
-p <partitionSpec> |
Tidak | Seluruh tabel | Partisi yang akan di-cache. Format: partitionCol1=val1,partitionCol2=val2,... |
-pin |
Tidak | Tidak dipin | Jika ditentukan, mencegah data yang di-cache dihapus saat ruang cache hampir penuh. |
Contoh
Menyimpan cache partisi 16 Maret 2020 dari db1.t1 ke disk lokal:
jindo table -cache -t db1.t1 -p date=2020-03-16
-uncache
Menghapus data yang di-cache dari tabel atau partisi dari disk lokal.
Untuk melakukan cache data, gunakan -cache.
Sintaks
jindo table -uncache -t <dbName.tableName> [-p <partitionSpec>]
Parameter
| Parameter | Wajib | Bawaan | Deskripsi |
|---|---|---|---|
-t <dbName.tableName> |
Ya | — | Tabel yang datanya akan dihapus dari cache. Data harus disimpan di OSS atau JindoFS. |
-p <partitionSpec> |
Tidak | Seluruh tabel | Partisi yang datanya akan dihapus dari cache. Format: partitionCol1=val1,partitionCol2=val2,... |
Contoh
Menghapus data yang di-cache untuk seluruh tabel db1.t2:
jindo table -uncache -t db1.t2
Menghapus data yang di-cache untuk partisi tertentu dari db1.t1:
jindo table -uncache -t db1.t1 -p date=2020-03-16,category=1
-archive
Menurunkan kelas penyimpanan data tabel atau partisi. Target bawaan adalah kelas penyimpanan Archive. Untuk menggunakan Infrequent Access (IA) sebagai gantinya, tambahkan -i.
Untuk memulihkan data yang diarsipkan, gunakan -unarchive. Untuk pengarsipan dalam mode SDK yang tidak bergantung pada Jindo Namespace Service, lihat -archiveTable.
Sintaks
jindo table -archive [-a | -i] -t <dbName.tableName> [-p <partitionSpec>]
Parameter
| Parameter | Wajib | Bawaan | Deskripsi |
|---|---|---|---|
-t <dbName.tableName> |
Ya | — | Tabel yang akan diarsipkan. |
-a |
Tidak | Kelas penyimpanan Archive | Jika ditentukan, secara eksplisit mengarsipkan data ke kelas penyimpanan Archive (perilaku bawaan). |
-i |
Tidak | Kelas penyimpanan Archive | Jika ditentukan, mengarsipkan data ke kelas penyimpanan Infrequent Access (IA) alih-alih Archive. |
-p <partitionSpec> |
Tidak | Seluruh tabel | Partisi yang akan diarsipkan. Format: partitionCol1=val1,partitionCol2=val2,... |
Contoh
Mengarsipkan partisi 12 Oktober 2020 dari db1.t1:
jindo table -archive -t db1.t1 -p date=2020-10-12
-unarchive
Memulihkan data tabel atau partisi yang diarsipkan ke kelas penyimpanan yang lebih tinggi.
-
Tanpa flag: Mengonversi data yang diarsipkan ke kelas penyimpanan Standard.
-
-o: Memulihkan sementara objek yang diarsipkan. Objek tetap berada di kelas penyimpanan Archive setelah jendela pemulihan berakhir. -
-i: Mengonversi objek yang diarsipkan ke kelas penyimpanan Infrequent Access (IA).
Untuk mengarsipkan data, gunakan -archive.
Sintaks
jindo table -unarchive [-o | -i] -t <dbName.tableName> [-p <partitionSpec>]
Parameter
| Parameter | Wajib | Bawaan | Deskripsi |
|---|---|---|---|
-t <dbName.tableName> |
Ya | — | Tabel yang akan dipulihkan. |
-o |
Tidak | Standard | Memulihkan sementara objek yang diarsipkan tanpa mengubah kelas penyimpanannya secara permanen. |
-i |
Tidak | Standard | Mengonversi data yang diarsipkan ke kelas penyimpanan Infrequent Access (IA). |
-p <partitionSpec> |
Tidak | Seluruh tabel | Partisi yang akan dipulihkan. Format: partitionCol1=val1,partitionCol2=val2,... |
Contoh
Memulihkan sementara partisi tertentu dari db1.t1:
jindo table -unarchive -o -t db1.t1 -p date=2020-03-16,category=1
Mengonversi semua partisi db1.t2 dari Archive ke Infrequent Access:
jindo table -unarchive -i -t db1.t2
-status
Menampilkan status penyimpanan data tabel atau partisi.
Sintaks
jindo table -status -t <dbName.tableName> [-p <partitionSpec>]
Parameter
| Parameter | Wajib | Bawaan | Deskripsi |
|---|---|---|---|
-t <dbName.tableName> |
Ya | — | Tabel yang akan diperiksa. |
-p <partitionSpec> |
Tidak | Seluruh tabel | Partisi yang akan diperiksa. Format: partitionCol1=val1,partitionCol2=val2,... |
Contoh
Menampilkan status penyimpanan db1.t2:
jindo table -status -t db1.t2
Menampilkan status penyimpanan partisi 16 Maret 2020 dari db1.t1:
jindo table -status -t db1.t1 -p date=2020-03-16
-optimize
Mengoptimalkan organisasi data tabel di lapisan penyimpanan untuk meningkatkan efisiensi pembacaan pada kueri downstream.
Sintaks
jindo table -optimize -t <dbName.tableName>
Parameter
| Parameter | Wajib | Bawaan | Deskripsi |
|---|---|---|---|
-t <dbName.tableName> |
Ya | — | Tabel yang akan dioptimalkan. |
Contoh
Mengoptimalkan tata letak penyimpanan db1.t1:
jindo table -optimize -t db1.t1
-showTable
Untuk tabel partisi, menampilkan daftar semua partisi beserta detail penyimpanannya. Untuk tabel non-partisi, menampilkan detail penyimpanan tabel itu sendiri.
Sintaks
jindo table -showTable -t <dbName.tableName>
Parameter
| Parameter | Wajib | Bawaan | Deskripsi |
|---|---|---|---|
-t <dbName.tableName> |
Ya | — | Tabel yang akan diperiksa. |
Contoh
Menampilkan daftar semua partisi dalam db1.t1:
jindo table -showTable -t db1.t1
-showPartition
Menampilkan detail penyimpanan partisi tertentu.
Sintaks
jindo table -showPartition -t <dbName.tableName> [-p <partitionSpec>]
Parameter
| Parameter | Wajib | Bawaan | Deskripsi |
|---|---|---|---|
-t <dbName.tableName> |
Ya | — | Tabel partisi yang akan diperiksa. |
-p <partitionSpec> |
Tidak | — | Partisi yang akan diperiksa. Format: partitionCol1=val1,partitionCol2=val2,... |
Contoh
Menampilkan detail penyimpanan partisi 12 Oktober 2020 dari db1.t1:
jindo table -showPartition -t db1.t1 -p date=2020-10-12
-listTables
Menampilkan daftar semua tabel dalam database. Jika tidak ada database yang ditentukan, tabel dalam database bawaan akan ditampilkan.
Sintaks
jindo table -listTables [-db <dbName>]
Parameter
| Parameter | Wajib | Bawaan | Deskripsi |
|---|---|---|---|
-db <dbName> |
Tidak | Database bawaan | Database tempat tabel akan didaftar. |
Contoh
Menampilkan daftar tabel dalam database bawaan:
jindo table -listTables
Menampilkan daftar tabel dalam db1:
jindo table -listTables -db db1
-dumpmc
Mendump tabel MaxCompute ke kluster EMR atau OSS. Format output yang didukung adalah CSV dan TFRECORD.
Jangan hardcode ID AccessKey dan Rahasia AccessKey Anda dalam perintah. Gunakan variabel lingkungan atau penyimpanan kredensial aman sebagai gantinya.
Sintaks
jindo table -dumpmc -i <accessId> -k <accessKey> -m <numMaps> -t <tunnelUrl> -project <projectName> -table <tableName> [-p <partitionSpec>] -f <csv|tfrecord> -o <outputPath>
Parameter
| Parameter | Wajib | Bawaan | Deskripsi |
|---|---|---|---|
-i <accessId> |
Ya | — | ID AccessKey Akun Alibaba Cloud Anda. |
-k <accessKey> |
Ya | — | Rahasia AccessKey Akun Alibaba Cloud Anda. |
-m <numMaps> |
Ya | — | Jumlah tugas map. |
-t <tunnelUrl> |
Ya | — | Titik akhir Tunnel dari virtual private cloud (VPC) tempat proyek MaxCompute berada. |
-project <projectName> |
Ya | — | Nama proyek MaxCompute. |
-table <tableName> |
Ya | — | Nama tabel MaxCompute. |
-p <partitionSpec> |
Tidak | Semua partisi | Filter partisi. Contoh: pt=xxx. Pisahkan beberapa partisi dengan koma: pt=xxx,dt=xxx. |
-f <csv|tfrecord> |
Ya | — | Format file output. Nilai yang valid: csv, tfrecord. |
-o <outputPath> |
Ya | — | Jalur output. Gunakan jalur lokal (misalnya, /tmp/output) untuk kluster EMR, atau jalur OSS (misalnya, oss://bucket/path) untuk OSS. |
Contoh
Mendump tabel MaxCompute dalam format TFRECORD ke kluster EMR:
jindo table -dumpmc -m 10 -project mctest_project -table t1 \
-t http://dt.xxx.maxcompute.aliyun-inc.com \
-k xxxxxxxxx -i XXXXXX \
-o /tmp/outputtf1 -f tfrecord
Mendump tabel MaxCompute dalam format CSV ke OSS:
jindo table -dumpmc -m 10 -project mctest_project -table t1 \
-t http://dt.xxx.maxcompute.aliyun-inc.com \
-k xxxxxxxxx -i XXXXXX \
-o oss://bucket1/tmp/outputcsv -f csv