JindoTable提供表或分区级别的热度统计、存储分层和表文件优化的功能。本文为您介绍JindoTable的使用方法。
前提条件
- 本地安装了Java JDK 8。
 - 已创建EMR-3.30.0或后续版本的集群,详情请参见创建集群。
 
使用JindoTable
- -accessStat
 - -cache
 - -archive
 - -unarchive
 - -uncache
 - -status
 - -optimize
 - -showTable
 - -showPartition
 - -listTables
 - -dumpmc
 
database.table的格式,指定分区时使用partitionCol1=1,partitionCol2=2,...的格式。
                        -accessStat
- 语法
                        
jindo table -accessStat {-d} <days> {-n} <topNums>
 - 功能
                        
查询在指定时间范围内,访问最多的N条表或分区的记录。
<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>
 - 功能
                        
表示降低表或者分区的存储策略级别,默认改为归档存储。
加上-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=1jindo 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集群。