全部產品
Search
文件中心

E-MapReduce:JindoTable使用說明

更新時間:Jul 01, 2024

JindoTable提供表或分區層級的熱度統計、儲存分層和表檔案最佳化的功能。本文為您介紹JindoTable的使用方法。

前提條件

  • 本地安裝了Java JDK 8。
  • 已建立EMR-3.30.0或後續版本的叢集,詳情請參見建立叢集

使用JindoTable

常見命令如下:
重要 指定表時使用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

-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

-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

-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。
    -mmap任務數。
    -tMaxCompute的VPC網路Tunnel Endpoint。
    -projectMaxcompute的專案空間名。
    -tableMaxcompute的表名。
    -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

-leastUseStat

  • 文法

    jindo table -leastUseStat -n <num> [-i/-ignoreNever]

  • 功能

    展示最久未被訪問的表或分區。

    num是顯示的條目數量,應為正整數。-i/-ignoreNever為選擇性參數,如果設定該參數,則會過濾掉從未被訪問過的表或分區。

  • 樣本:查詢最久未被訪問的表或分區的20條記錄。
    jindo table -leastUseStat -n 20