JindoTable は、階層型ストレージの実装、テーブルファイルの最適化、テーブルまたはパーティションの人気度に基づくデータ統計の収集に使用されます。このトピックでは、JindoTable の使用方法について説明します。
前提条件
- オンプレミス マシンに Java Development Kit(JDK) 8 がインストールされていること。
- バージョン 3.30.0 以降の EMR クラスタが作成されていること。クラスタの作成方法の詳細については、クラスタの作成をご参照ください。
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>
- 説明
このコマンドは、指定された期間内に最もアクセスされたテーブルまたはパーティションのアクセスレコードをクエリするために使用されます。
<days> と <topNums> は正の整数である必要があります。 <days> が 1 の場合、現在の日の 00:00(現地時間)から現在時刻までに生成されたすべてのアクセスレコードがクエリされます。
- 例:過去 7 日間で最もアクセス頻度の高いテーブルまたはパーティションのアクセスレコード上位 20 件をクエリします。
jindo table -accessStat -d 7 -n 20
-cache
- 構文
jindo table -cache {-t} <dbName.tableName> [-p] <partitionSpec> [-pin]
- 説明
このコマンドは、指定されたテーブルまたはパーティションのデータをローカル ディスクにキャッシュするために使用されます。
テーブルまたはパーティションのデータは、Object Storage Service(OSS)または JindoFileSystem(JindoFS)に保存されている必要があります。テーブルは
database.table
の形式で指定します。パーティションはpartitionCol1=1,partitionCol2=2,...
の形式で指定します。-pin
を指定した場合、キャッシュ スペースが不足している場合は、可能な限り関連データを削除しないでください。 - 例: 2020 年 3 月 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>
- 説明
このコマンドは、指定されたテーブルまたはパーティションのデータを保存するために使用されるポリシーのレベルを下げるために使用されます。デフォルトでは、アーカイブ ストレージ クラスが使用されます。
低頻度アクセス(IA)ストレージ クラスを使用するには、コマンドに -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
がコマンドに追加された場合、アーカイブされたオブジェクトは IA オブジェクトに変更されます。 - 例:
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
- 2020 年 3 月 16 日の db1.t1 テーブルのデータ ストレージ状態を表示します。
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>
- 説明
このコマンドは、パーティションのデータ ストレージを表示するために使用されます。
- 例: 2020 年 10 月 12 日の db1.t1 パーティション テーブル内のすべてのパーティションのデータ ストレージを表示します。
jindo table -showPartition -t db1.t1 -p date=2020-10-12
-listTables
- 構文
jindo table -listTables [-db] <dbName>
- 説明
このコマンドは、指定されたデータベース内のすべてのテーブルを表示するために使用されます。
[-db]
を指定しない場合、デフォルト データベース内のテーブルが表示されます。 - 例:
- デフォルト データベース内のテーブルを表示します。
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 Alibaba Cloud アカウントの AccessKey ID。 はい -k Alibaba Cloud アカウントの AccessKey シークレット。 はい -m マップ タスクの数。 はい -t MaxCompute の VPC トンネル エンドポイント。 はい -project MaxCompute プロジェクトの名前。 はい -table MaxCompute テーブルの名前。 はい -p パーティション情報。例: pt=xxx
。複数のパーティションはカンマ(,)で区切ります。例:pt=xxx,dt=xxx
。いいえ -f ファイル形式。有効な値: - tfrecord
- csv
はい -o 出力先パス。 はい - 説明
このコマンドは、MaxCompute テーブルを EMR クラスタまたは OSS にダンプするために使用されます。CSV および TFRECORD 形式がサポートされています。
- 例:
- 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
- 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
- MaxCompute テーブルを TFRECORD 形式で EMR クラスタにダンプします。