JindoTable提供表或分區層級的熱度統計、儲存分層和表檔案最佳化的功能。本文為您介紹JindoTable的使用方法。
前提條件
- 本地安裝了Java JDK 8。
- 已建立EMR-3.30.0或後續版本的叢集,詳情請參見建立叢集。
使用JindoTable
- -accessStat
- -cache
- -uncache
- -archive
- -unarchive
- -status
- -optimize
- -showTable
- -showPartition
- -listTables
- -dumpmc
- -leastUseStat
- -archiveTable
- -unarchiveTable
- -moveTo
database.table
的格式,指定分區時使用partitionCol1=1,partitionCol2=2,...
的格式。-accessStat
- 文法
jindo table -accessStat {-d} <days> {-n} <topNums>
- 功能
查詢在指定時間範圍內訪問最多的表或分區的條數。
<days>和<topNums>應為正整數。天數為1時,表示查詢從本地時間當天0:00開始到現在的所有訪問記錄。
- 樣本:查詢近七天訪問最多的表和分區的20條訪問記錄。
jindo table -accessStat -d 7 -n 20
-cache
- 文法
jindo table -cache {-t} <dbName.tableName> [-p] <partitionSpec> [-pin]
- 功能
表示緩衝指定表或分區的資料至叢集本地磁碟上。
表或分區的路徑需要位於OSS或JindoFS。指定表時使用
database.table
的格式;指定分區時使用partitionCol1=1,partitionCol2=2,...
的格式;指定-pin
時,在緩衝空間不足時盡量不刪除相關資料。 - 樣本:緩衝2020-03-16日db1.t1表的資料至本地磁碟上。
jindo table -cache -t db1.t1 -p date=2020-03-16
-uncache
- 文法
jindo table -uncache {-t} <dbName.tableName> [-p] <partitionSpec>
- 功能
表示刪除叢集本地磁碟上指定表或分區的快取資料。
對應的路徑需要位於OSS或JindoFS。指定表時使用
database.table
的格式,指定分區時使用partitionCol1=1,partitionCol2=2,...
的格式。 - 樣本:
- 刪除叢集本地磁碟上表db1.t2的快取資料。
jindo table -uncache -t db1.t2
- 刪除叢集本地磁碟上表db1.t1中指定分區的快取資料。
jindo table -uncache -t db1.t1 -p date=2020-03-16,category=1
- 刪除叢集本地磁碟上表db1.t2的快取資料。
-archive
- 文法
jindo table -archive {-a|i} {-t} <dbName.tableName> [-p] <partitionSpec>
- 功能
表示降低表或者分區的儲存策略層級,預設為Archive Storage。
加上-i使用低頻儲存。指定表時使用database.table的格式,指定分區時使用`partitionCol1=1,partitionCol2=2,...`的格式。
- 樣本:指定表db1.t1緩衝至本地磁碟上。
jindo table -archive -t db1.t1 -p date=2020-10-12
-unarchive
- 文法
jindo table -unarchive [-o|-i] {-t} <dbName.tableName> [-p] <partitionSpec>
- 功能
表示將歸檔資料轉為標準儲存。
-o
將歸檔資料轉為解凍,-i
將歸檔資料轉為低頻。 - 樣本
jindo table -unarchive -o -t db1.t1 -p date=2020-03-16,category=1
jindo table -unarchive -i -t db1.t2
-status
- 文法
jindo table -status {-t} <dbName.tableName> [-p] <partitionSpec>
- 功能
表示查看指定表或者分區的儲存狀態。
- 樣本:
- 查看錶db1.t2的狀態。
jindo table -status -t db1.t2
- 查看錶db1.t1在2020-03-16日的狀態。
jindo table -status -t db1.t1 -p date=2020-03-16
- 查看錶db1.t2的狀態。
-optimize
- 文法
jindo table -optimize {-t} <dbName.tableName>
- 功能
最佳化表在儲存層的資料群組織。
- 樣本:最佳化表db1.t1在儲存層的資料群組織。
jindo table -optimize -t db1.t1
-showTable
- 文法
jindo table -showTable {-t} <dbName.tableName>
- 功能
如果是分區表,則展示所有分區;如果是非分區表,則返回表的儲存情況。
- 樣本:展示db1.t1分區表的所有分區。
jindo table -showTable -t db1.t1
-showPartition
- 文法
jindo table -showPartition {-t} <dbName.tableName> [-p] <partitionSpec>
- 功能
表示返回分區的儲存情況。
- 樣本:返回分區表db1.t1在2020-10-12日的儲存情況。
jindo table -showPartition -t db1.t1 -p date=2020-10-12
-listTables
- 文法
jindo table -listTables [-db] <dbName>
- 功能
展示指定資料庫中的所有表。不指定
[-db]
時預設展示default庫中的表。 - 樣本:
- 展示default庫中的表。
jindo table -listTables
- 列出資料庫db1中的表。
jindo table -listTables -db db1
- 展示default庫中的表。
-dumpmc
- 文法jindo table -dumpmc {-i} <accessId> {-k} <accessKey> {-m} <numMaps> {-t} <tunnelUrl> {-project} <projectName> {-table} <tablename> {-p} <partitionSpec> {-f} <csv|tfrecord> {-o} <outputPath>
參數 描述 是否必選 -i 阿里雲的AccessKey ID。 是 -k 阿里雲的AccessKey Secret。 是 -m map任務數。 是 -t MaxCompute的VPC網路Tunnel Endpoint。 是 -project Maxcompute的專案空間名。 是 -table Maxcompute的表名。 是 -p 分區資訊 。例如 pt=xxx
,多個分區時用英文逗號(,)分開pt=xxx,dt=xxx
。否 -f 檔案格式。包括: - tfrecord
- csv
是 -o 目的路徑。 是 - 功能
表示Dumpmc Maxcompute表至EMR叢集或OSS儲存。支援CSV格式和TFRECORD格式。
- 樣本:
- Dumpmc Maxcompute表(TFRECORD格式)至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
- Dumpmc Maxcompute表(CSV格式)至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
- Dumpmc Maxcompute表(TFRECORD格式)至EMR叢集。
-leastUseStat
- 文法
jindo table -leastUseStat -n <num> [-i/-ignoreNever]
- 功能
展示最久未被訪問的表或分區。
num是顯示的條目數量,應為正整數。-i/-ignoreNever為選擇性參數,如果設定該參數,則會過濾掉從未被訪問過的表或分區。
- 樣本:查詢最久未被訪問的表或分區的20條記錄。
jindo table -leastUseStat -n 20