JindoTable digunakan untuk menerapkan penyimpanan berjenjang (tiered storage), mengoptimalkan file tabel, dan mengumpulkan statistik data berdasarkan popularitas tabel atau partisi. Topik ini menjelaskan cara menggunakan JindoTable.
Prasyarat
Sebelum memulai, pastikan Anda telah:
-
Menginstal Java Development Kit (JDK) 8 di mesin lokal Anda.
-
Memiliki kluster E-MapReduce (EMR) versi 3.30.0 atau yang lebih baru (Buat kluster).
Cara kerja
Perintah JindoTable mengikuti alur kerja manajemen penyimpanan:
-
Jalankan
-accessStatuntuk mengidentifikasi tabel atau partisi yang paling sering diakses. -
Jalankan
-cacheuntuk menarik data panas ke disk lokal, atau-archiveuntuk memindahkan data dingin ke kelas penyimpanan berbiaya lebih rendah. -
Jalankan
-statusuntuk memverifikasi status penyimpanan saat ini dari suatu tabel atau partisi. -
Jalankan
-optimizeuntuk mengoptimalkan organisasi data tabel pada lapisan penyimpanan.
database.table. Tentukan partisi dalam format partitionCol1=val1,partitionCol2=val2,....Referensi perintah
JindoTable menyediakan 11 perintah. Dalam deskripsi sintaksis, {-flag} menunjukkan parameter yang diperlukan dan [-flag] menunjukkan parameter opsional.
| Perintah | Deskripsi |
|---|---|
-accessStat |
Kueri tabel atau partisi yang paling sering diakses dalam rentang waktu tertentu |
-cache |
Cache data tabel atau partisi ke disk lokal |
-uncache |
Hapus data cache dari disk lokal |
-archive |
Pindahkan data ke kelas penyimpanan Archive atau Infrequent Access (IA) |
-unarchive |
Pulihkan data yang diarsipkan ke kelas penyimpanan Standard |
-status |
Lihat status penyimpanan tabel atau partisi |
-optimize |
Optimalkan organisasi data tabel pada 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) |
-accessStat
Kueri tabel atau partisi dengan jumlah catatan akses terbanyak dalam rentang waktu tertentu.
Sintaksis
jindo table -accessStat {-d} <days> {-n} <topNums>
Parameter
| Parameter | Diperlukan | Deskripsi |
|---|---|---|
-d <days> |
Ya | Jumlah hari ke belakang yang akan diperiksa. Harus berupa bilangan bulat positif. Jika diatur ke 1, semua catatan akses dari pukul 00:00 waktu lokal hari ini hingga waktu saat ini akan dikembalikan. |
-n <topNums> |
Ya | Jumlah hasil teratas yang akan dikembalikan. Harus berupa bilangan bulat positif. |
Contoh
Kembalikan 20 tabel atau partisi yang paling sering diakses dalam 7 hari terakhir:
jindo table -accessStat -d 7 -n 20
-cache
Cache data tabel atau partisi dari OSS atau JindoFileSystem (JindoFS) ke disk lokal.
Sintaksis
jindo table -cache {-t} <dbName.tableName> [-p] <partitionSpec> [-pin]
Parameter
| Parameter | Diperlukan | Deskripsi |
|---|---|---|
-t <dbName.tableName> |
Ya | Tabel yang akan di-cache. Format: database.table. |
-p <partitionSpec> |
Tidak | Partisi yang akan di-cache. Format: partitionCol1=val1,partitionCol2=val2,.... Jika diabaikan, seluruh tabel akan di-cache. |
-pin |
Tidak | Jika ruang cache tidak mencukupi, jangan hapus data terkait jika memungkinkan. |
Contoh
Cache partisi date=2020-03-16 dari db1.t1:
jindo table -cache -t db1.t1 -p date=2020-03-16
-uncache
Hapus data cache tabel atau partisi dari disk lokal.
Sintaksis
jindo table -uncache {-t} <dbName.tableName> [-p] <partitionSpec>
Parameter
| Parameter | Diperlukan | Deskripsi |
|---|---|---|
-t <dbName.tableName> |
Ya | Tabel yang cachenya akan dihapus. Format: database.table. |
-p <partitionSpec> |
Tidak | Partisi yang cachenya akan dihapus. Format: partitionCol1=val1,partitionCol2=val2,.... Jika diabaikan, cache seluruh tabel akan dihapus. |
Contoh
Hapus data cache seluruh tabel db1.t2:
jindo table -uncache -t db1.t2
Hapus data cache partisi date=2020-03-16,category=1 dari db1.t1:
jindo table -uncache -t db1.t1 -p date=2020-03-16,category=1
-archive
Pindahkan data tabel atau partisi ke kelas penyimpanan berbiaya lebih rendah. Target default adalah kelas penyimpanan Archive. Tambahkan -i untuk menggunakan Infrequent Access (IA) sebagai gantinya.
Sintaksis
jindo table -archive [-a|-i] {-t} <dbName.tableName> [-p] <partitionSpec>
Parameter
| Parameter | Diperlukan | Deskripsi |
|---|---|---|
-a |
Tidak | Arsipkan ke kelas penyimpanan Archive (perilaku default). |
-i |
Tidak | Arsipkan ke kelas penyimpanan Infrequent Access (IA) alih-alih Archive. |
-t <dbName.tableName> |
Ya | Tabel yang akan diarsipkan. Format: database.table. |
-p <partitionSpec> |
Tidak | Partisi yang akan diarsipkan. Format: partitionCol1=val1,partitionCol2=val2,.... Jika diabaikan, seluruh tabel akan diarsipkan. |
Contoh
Arsipkan partisi date=2020-10-12 dari db1.t1:
jindo table -archive -t db1.t1 -p date=2020-10-12
-unarchive
Pulihkan data yang diarsipkan ke kelas penyimpanan Standard, atau ubah ke kelas penyimpanan IA.
Sintaksis
jindo table -unarchive [-o|-i] {-t} <dbName.tableName> [-p] <partitionSpec>
Parameter
| Parameter | Diperlukan | Deskripsi |
|---|---|---|
-o |
Tidak | Pulihkan sementara objek yang diarsipkan. |
-i |
Tidak | Ubah objek yang diarsipkan ke kelas penyimpanan IA. |
-t <dbName.tableName> |
Ya | Tabel yang akan dibatalkan arsipnya. Format: database.table. |
-p <partitionSpec> |
Tidak | Partisi yang akan dibatalkan arsipnya. Format: partitionCol1=val1,partitionCol2=val2,.... Jika diabaikan, seluruh tabel akan dibatalkan arsipnya. |
Contoh
Pulihkan sementara partisi date=2020-03-16,category=1 dari db1.t1 dari Archive:
jindo table -unarchive -o -t db1.t1 -p date=2020-03-16,category=1
Ubah seluruh tabel db1.t2 dari Archive ke IA:
jindo table -unarchive -i -t db1.t2
-status
Lihat status penyimpanan data tabel atau partisi.
Sintaksis
jindo table -status {-t} <dbName.tableName> [-p] <partitionSpec>
Parameter
| Parameter | Diperlukan | Deskripsi |
|---|---|---|
-t <dbName.tableName> |
Ya | Tabel yang akan diperiksa. Format: database.table. |
-p <partitionSpec> |
Tidak | Partisi yang akan diperiksa. Format: partitionCol1=val1,partitionCol2=val2,.... Jika diabaikan, status seluruh tabel akan dikembalikan. |
Contoh
Lihat status penyimpanan seluruh tabel db1.t2:
jindo table -status -t db1.t2
Lihat status penyimpanan partisi date=2020-03-16 dari db1.t1:
jindo table -status -t db1.t1 -p date=2020-03-16
-optimize
Optimalkan organisasi data tabel pada lapisan penyimpanan untuk meningkatkan performa kueri.
Sintaksis
jindo table -optimize {-t} <dbName.tableName>
Parameter
| Parameter | Diperlukan | Deskripsi |
|---|---|---|
-t <dbName.tableName> |
Ya | Tabel yang akan dioptimalkan. Format: database.table. |
Contoh
Optimalkan organisasi data db1.t1:
jindo table -optimize -t db1.t1
-showTable
Tampilkan semua partisi dalam tabel partisi, atau tampilkan detail penyimpanan data tabel non-partisi.
Sintaksis
jindo table -showTable {-t} <dbName.tableName>
Parameter
| Parameter | Diperlukan | Deskripsi |
|---|---|---|
-t <dbName.tableName> |
Ya | Tabel yang akan ditampilkan. Format: database.table. |
Contoh
Tampilkan semua partisi dalam db1.t1:
jindo table -showTable -t db1.t1
-showPartition
Tampilkan detail penyimpanan data partisi tertentu.
Sintaksis
jindo table -showPartition {-t} <dbName.tableName> [-p] <partitionSpec>
Parameter
| Parameter | Diperlukan | Deskripsi |
|---|---|---|
-t <dbName.tableName> |
Ya | Tabel yang berisi partisi tersebut. Format: database.table. |
-p <partitionSpec> |
Tidak | Partisi yang akan ditampilkan. Format: partitionCol1=val1,partitionCol2=val2,.... |
Contoh
Tampilkan detail penyimpanan partisi date=2020-10-12 dalam db1.t1:
jindo table -showPartition -t db1.t1 -p date=2020-10-12
-listTables
Daftar semua tabel dalam database.
Sintaksis
jindo table -listTables [-db] <dbName>
Parameter
| Parameter | Diperlukan | Deskripsi |
|---|---|---|
-db <dbName> |
Tidak | Database tempat tabel akan didaftarkan. Jika diabaikan, tabel dalam database default akan didaftarkan. |
Contoh
Daftar semua tabel dalam database default:
jindo table -listTables
Daftar semua tabel dalam db1:
jindo table -listTables -db db1
-dumpmc
Dump tabel MaxCompute ke kluster EMR atau OSS. Format output yang didukung adalah CSV dan TFRECORD.
Sintaksis
jindo table -dumpmc {-i} <accessId> {-k} <accessKey> {-m} <numMaps> {-t} <tunnelUrl> {-project} <projectName> {-table} <tableName> [-p] <partitionSpec> {-f} <csv|tfrecord> {-o} <outputPath>
Parameter
| Parameter | Diperlukan | 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 VPC Tunnel MaxCompute. |
-project <projectName> |
Ya | Nama proyek MaxCompute. |
-table <tableName> |
Ya | Nama tabel MaxCompute. |
-p <partitionSpec> |
Tidak | Partisi yang akan di-dump. 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 tujuan. Gunakan jalur EMR lokal (misalnya, /tmp/output) atau jalur OSS (misalnya, oss://bucket/path). |
Contoh
Dump tabel MaxCompute ke kluster EMR dalam format TFRECORD:
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
Dump tabel MaxCompute ke OSS dalam format CSV:
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