JindoTable は、テーブルやパーティションの人気度に基づいて、データ階層化、テーブルファイルの最適化、データ統計の収集を実装するために使用されます。本トピックでは、JindoTable の使用方法について説明します。
前提条件
開始する前に、以下のものが準備されていることを確認してください。
-
オンプレミスマシンに Java 開発キット (JDK) 8 がインストールされていること
-
バージョン 3.30.0 以降の E-MapReduce (EMR) クラスター (クラスターの作成)
仕組み
JindoTable コマンドは、ストレージ管理ワークフローに従います。
-
-accessStatを実行して、最も頻繁にアクセスされるテーブルまたはパーティションを特定します。 -
-cacheを実行してホットデータをローカルディスクにプルするか、-archiveを実行してコールドデータを低コストのストレージクラスに移動します。 -
-statusを実行して、テーブルまたはパーティションの現在のストレージ状態を確認します。 -
-optimizeを実行して、ストレージレイヤーでテーブルのデータ編成を最適化します。
database.table のフォーマットで指定します。パーティションは partitionCol1=val1,partitionCol2=val2,... のフォーマットで指定します。コマンドリファレンス
JindoTable は 11 個のコマンドを提供します。構文の説明では、{-flag} は必須パラメーターを示し、[-flag] はオプションパラメーターを示します。
| コマンド | 説明 |
|---|---|
-accessStat |
指定された時間範囲内で最もアクセス数の多いテーブルまたはパーティションを照会します |
-cache |
テーブルまたはパーティションのデータをローカルディスクにキャッシュします |
-uncache |
キャッシュデータをローカルディスクから削除します |
-archive |
データをアーカイブまたは低頻度アクセス (IA) ストレージクラスに移動します |
-unarchive |
アーカイブされたデータを標準ストレージクラスに復元します |
-status |
テーブルまたはパーティションのストレージステータスを表示します |
-optimize |
ストレージレイヤーでテーブルデータの編成を最適化します |
-showTable |
パーティションテーブル内のすべてのパーティションを一覧表示するか、非パーティション化テーブルのストレージ詳細を表示します |
-showPartition |
特定のパーティションのストレージ詳細を表示します |
-listTables |
データベース内のすべてのテーブルを一覧表示します |
-dumpmc |
MaxCompute テーブルを EMR クラスターまたは Object Storage Service (OSS) にダンプします |
-accessStat
指定された時間範囲内で最もアクセス数の多いテーブルまたはパーティションを照会します。
構文
jindo table -accessStat {-d} <days> {-n} <topNums>
パラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
-d <days> |
はい | 遡る日数。正の整数である必要があります。1 に設定すると、現在日の 00:00 (ローカル時間) から現在時刻までのすべてのアクセスレコードが返されます。 |
-n <topNums> |
はい | 返す上位結果の数。正の整数である必要があります。 |
例
過去 7 日間で最もアクセス数の多い上位 20 のテーブルまたはパーティションを返します。
jindo table -accessStat -d 7 -n 20
-cache
OSS または JindoFileSystem (JindoFS) からテーブルまたはパーティションのデータをローカルディスクにキャッシュします。
構文
jindo table -cache {-t} <dbName.tableName> [-p] <partitionSpec> [-pin]
パラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
-t <dbName.tableName> |
はい | キャッシュするテーブル。フォーマット:database.table。 |
-p <partitionSpec> |
いいえ | キャッシュするパーティション。フォーマット:partitionCol1=val1,partitionCol2=val2,...。省略した場合、テーブル全体がキャッシュされます。 |
-pin |
いいえ | キャッシュ領域が不足している場合、可能な限り関連データを削除しません。 |
例
db1.t1 の date=2020-03-16 パーティションをキャッシュします。
jindo table -cache -t db1.t1 -p date=2020-03-16
-uncache
テーブルまたはパーティションのキャッシュデータをローカルディスクから削除します。
構文
jindo table -uncache {-t} <dbName.tableName> [-p] <partitionSpec>
パラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
-t <dbName.tableName> |
はい | キャッシュを削除するテーブル。フォーマット:database.table。 |
-p <partitionSpec> |
いいえ | キャッシュを削除するパーティション。フォーマット:partitionCol1=val1,partitionCol2=val2,...。省略した場合、テーブル全体のキャッシュが削除されます。 |
例
db1.t2 テーブル全体のキャッシュデータを削除します。
jindo table -uncache -t db1.t2
db1.t1 の date=2020-03-16,category=1 パーティションのキャッシュデータを削除します。
jindo table -uncache -t db1.t1 -p date=2020-03-16,category=1
-archive
テーブルまたはパーティションのデータを低コストのストレージクラスに移動します。デフォルトのターゲットはアーカイブストレージクラスです。-i を追加して、代わりに低頻度アクセス (IA) を使用します。
構文
jindo table -archive [-a|-i] {-t} <dbName.tableName> [-p] <partitionSpec>
パラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
-a |
いいえ | アーカイブストレージクラスにアーカイブします (デフォルトの動作)。 |
-i |
いいえ | アーカイブの代わりに低頻度アクセス (IA) ストレージクラスにアーカイブします。 |
-t <dbName.tableName> |
はい | アーカイブするテーブル。フォーマット:database.table。 |
-p <partitionSpec> |
いいえ | アーカイブするパーティション。フォーマット:partitionCol1=val1,partitionCol2=val2,...。省略した場合、テーブル全体がアーカイブされます。 |
例
db1.t1 の date=2020-10-12 パーティションをアーカイブします。
jindo table -archive -t db1.t1 -p date=2020-10-12
-unarchive
アーカイブされたデータを標準ストレージクラスに復元するか、IA ストレージクラスに変更します。
構文
jindo table -unarchive [-o|-i] {-t} <dbName.tableName> [-p] <partitionSpec>
パラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
-o |
いいえ | アーカイブ済みオブジェクトを一時的に復元します。 |
-i |
いいえ | アーカイブ済みオブジェクトを IA ストレージクラスに変更します。 |
-t <dbName.tableName> |
はい | アーカイブ解除するテーブル。フォーマット:database.table。 |
-p <partitionSpec> |
いいえ | アーカイブ解除するパーティション。フォーマット:partitionCol1=val1,partitionCol2=val2,...。省略した場合、テーブル全体がアーカイブ解除されます。 |
例
db1.t1 の date=2020-03-16,category=1 パーティションをアーカイブから一時的に復元します。
jindo table -unarchive -o -t db1.t1 -p date=2020-03-16,category=1
db1.t2 テーブル全体をアーカイブから IA に変更します。
jindo table -unarchive -i -t db1.t2
-status
テーブルまたはパーティションのデータストレージステータスを表示します。
構文
jindo table -status {-t} <dbName.tableName> [-p] <partitionSpec>
パラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
-t <dbName.tableName> |
はい | 検査するテーブル。フォーマット:database.table。 |
-p <partitionSpec> |
いいえ | 検査するパーティション。フォーマット:partitionCol1=val1,partitionCol2=val2,...。省略した場合、テーブル全体のステータスが返されます。 |
例
db1.t2 テーブル全体のストレージステータスを表示します。
jindo table -status -t db1.t2
db1.t1 の date=2020-03-16 パーティションのストレージステータスを表示します。
jindo table -status -t db1.t1 -p date=2020-03-16
-optimize
ストレージレイヤーでテーブルのデータ編成を最適化し、クエリのパフォーマンスを向上させます。
構文
jindo table -optimize {-t} <dbName.tableName>
パラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
-t <dbName.tableName> |
はい | 最適化するテーブル。フォーマット:database.table。 |
例
db1.t1 のデータ編成を最適化します。
jindo table -optimize -t db1.t1
-showTable
パーティションテーブル内のすべてのパーティションを表示するか、非パーティション化テーブルのデータストレージ詳細を表示します。
構文
jindo table -showTable {-t} <dbName.tableName>
パラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
-t <dbName.tableName> |
はい | 表示するテーブル。フォーマット:database.table。 |
例
db1.t1 内のすべてのパーティションを表示します。
jindo table -showTable -t db1.t1
-showPartition
特定のパーティションのデータストレージ詳細を表示します。
構文
jindo table -showPartition {-t} <dbName.tableName> [-p] <partitionSpec>
パラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
-t <dbName.tableName> |
はい | パーティションを含むテーブル。フォーマット:database.table。 |
-p <partitionSpec> |
いいえ | 表示するパーティション。フォーマット:partitionCol1=val1,partitionCol2=val2,...。 |
例
db1.t1 の date=2020-10-12 パーティションのストレージ詳細を表示します。
jindo table -showPartition -t db1.t1 -p date=2020-10-12
-listTables
データベース内のすべてのテーブルを一覧表示します。
構文
jindo table -listTables [-db] <dbName>
パラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
-db <dbName> |
いいえ | テーブルを一覧表示するデータベース。省略した場合、デフォルトのデータベース内のテーブルが一覧表示されます。 |
例
デフォルトのデータベース内のすべてのテーブルを一覧表示します。
jindo table -listTables
db1 内のすべてのテーブルを一覧表示します。
jindo table -listTables -db db1
-dumpmc
MaxCompute テーブルを EMR クラスターまたは OSS にダンプします。サポートされている出力フォーマットは CSV と TFRECORD です。
構文
jindo table -dumpmc {-i} <accessId> {-k} <accessKey> {-m} <numMaps> {-t} <tunnelUrl> {-project} <projectName> {-table} <tableName> [-p] <partitionSpec> {-f} <csv|tfrecord> {-o} <outputPath>
パラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
-i <accessId> |
はい | Alibaba Cloud アカウントの AccessKey ID。 |
-k <accessKey> |
はい | Alibaba Cloud アカウントの AccessKey Secret。 |
-m <numMaps> |
はい | マップタスクの数。 |
-t <tunnelUrl> |
はい | MaxCompute の VPC トンネルエンドポイント。 |
-project <projectName> |
はい | MaxCompute プロジェクトの名前。 |
-table <tableName> |
はい | MaxCompute テーブルの名前。 |
-p <partitionSpec> |
いいえ | ダンプするパーティション。例:pt=xxx。複数のパーティションはカンマで区切ります:pt=xxx,dt=xxx。 |
-f <csv|tfrecord> |
はい | 出力ファイルフォーマット。有効な値:csv、tfrecord。 |
-o <outputPath> |
はい | 宛先パス。ローカルの EMR パス (例:/tmp/output) または OSS パス (例:oss://bucket/path) を使用します。 |
例
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