JindoTable は、テーブルとパーティションのアクセス頻度統計を収集し、階層型ストレージ管理を提供し、ストレージレイヤーでテーブル編成を最適化します。
前提条件
開始する前に、以下のものが揃っていることを確認してください:
-
ご利用のオンプレミスマシンに Java 開発キット (JDK) 8 がインストールされていること
-
V3.30.0 以降の E-MapReduce (EMR) クラスター
EMR クラスターの作成方法の詳細については、「クラスターの作成」をご参照ください。
コマンド
JindoTable は以下のコマンドを提供します。テーブルは database.table の形式で、パーティションは partitionCol1=1,partitionCol2=2,... の形式で指定します。
| コマンド | 説明 |
|---|---|
-accessStat |
タイムウィンドウ内で最もアクセス頻度の高いテーブルまたはパーティションをクエリします |
-leastUseStat |
最も長くアイドル状態にあるテーブルまたはパーティションをクエリします |
-cache |
テーブルまたはパーティションのデータをローカルディスクにキャッシュします |
-uncache |
キャッシュされたテーブルまたはパーティションのデータをローカルディスクから削除します |
-archive |
テーブルまたはパーティションデータのストレージクラスをアーカイブまたは低頻度アクセスに引き下げます |
-unarchive |
アーカイブされたデータを標準または低頻度アクセスストレージクラスに復元します |
-status |
テーブルまたはパーティションのストレージステータスを表示します |
-optimize |
ストレージレイヤーでテーブルデータ編成を最適化します |
-showTable |
パーティションテーブル内のすべてのパーティションをリスト表示するか、非パーティション化テーブルのストレージ詳細を表示します |
-showPartition |
特定のパーティションのストレージ詳細を表示します |
-listTables |
データベース内のすべてのテーブルをリスト表示します |
-dumpmc |
MaxCompute テーブルを EMR クラスターまたは Object Storage Service (OSS) にダンプします |
SDK モードのアーカイブ操作とデータ移行については、「-archiveTable and -unarchiveTable」および「-moveTo」をご参照ください。
-accessStat
指定された日数内に最も頻繁にアクセスされたテーブルまたはパーティションを、そのアクセス数とともにクエリします。
構文
jindo table -accessStat -d <days> [-n <topNums>]
パラメーター
| パラメーター | 必須 | デフォルト値 | 説明 |
|---|---|---|---|
-d <days> |
はい | — | クエリに含める過去の日数。正の整数である必要があります。1 に設定した場合、クエリは当日の 00:00 から現在時刻までを対象とします。 |
-n <topNums> |
いいえ | すべての結果 | 返す上位の結果の数。正の整数である必要があります。 |
例
過去 7 日間で最もアクセス数の多かった 20 のテーブルまたはパーティションをクエリします:
jindo table -accessStat -d 7 -n 20
-leastUseStat
最終アクセスからの経過時間でランク付けし、最も長くアイドル状態にあるテーブルまたはパーティションをクエリします。
構文
jindo table -leastUseStat -n <num> [-i | -ignoreNever]
パラメーター
| パラメーター | 必須 | デフォルト値 | 説明 |
|---|---|---|---|
-n <num> |
はい | — | 返す結果の数。正の整数である必要があります。 |
-i / -ignoreNever |
いいえ | すべてを含む | 指定すると、一度もアクセスされていないテーブルまたはパーティションを除外します。 |
例
最も長くアイドル状態にある 20 のテーブルまたはパーティションをクエリします:
jindo table -leastUseStat -n 20
-cache
OSS または JindoFS からテーブルまたはパーティションのデータをローカルディスクにキャッシュし、後続の読み取りを高速化します。
キャッシュデータを削除するには、-uncache を使用します。
構文
jindo table -cache -t <dbName.tableName> [-p <partitionSpec>] [-pin]
パラメーター
| パラメーター | 必須 | デフォルト値 | 説明 |
|---|---|---|---|
-t <dbName.tableName> |
はい | — | キャッシュするテーブル。データは OSS または JindoFS に保存されている必要があります。 |
-p <partitionSpec> |
いいえ | テーブル全体 | キャッシュするパーティション。フォーマット: partitionCol1=val1,partitionCol2=val2,... |
-pin |
いいえ | 固定しない | 指定すると、キャッシュ領域が不足したときにキャッシュデータが削除されるのを防ぎます。 |
例
db1.t1 の 2020 年 3 月 16 日のパーティションをローカルディスクにキャッシュします:
jindo table -cache -t db1.t1 -p date=2020-03-16
-uncache
キャッシュされたテーブルまたはパーティションのデータをローカルディスクから削除します。
データをキャッシュするには、-cache を使用します。
構文
jindo table -uncache -t <dbName.tableName> [-p <partitionSpec>]
パラメーター
| パラメーター | 必須 | デフォルト値 | 説明 |
|---|---|---|---|
-t <dbName.tableName> |
はい | — | キャッシュデータを削除するテーブル。データは OSS または JindoFS に保存されている必要があります。 |
-p <partitionSpec> |
いいえ | テーブル全体 | キャッシュデータを削除するパーティション。フォーマット: partitionCol1=val1,partitionCol2=val2,... |
例
db1.t2 テーブル全体のキャッシュデータを削除します:
jindo table -uncache -t db1.t2
db1.t1 の特定のパーティションのキャッシュデータを削除します:
jindo table -uncache -t db1.t1 -p date=2020-03-16,category=1
-archive
テーブルまたはパーティションデータのストレージクラスを引き下げます。デフォルトのターゲットはアーカイブストレージクラスです。代わりに低頻度アクセス (IA) を使用するには、-i を追加します。
アーカイブされたデータを復元するには、-unarchive を使用します。Jindo Namespace Service に依存しない SDK モードのアーカイブについては、「-archiveTable」をご参照ください。
構文
jindo table -archive [-a | -i] -t <dbName.tableName> [-p <partitionSpec>]
パラメーター
| パラメーター | 必須 | デフォルト値 | 説明 |
|---|---|---|---|
-t <dbName.tableName> |
はい | — | アーカイブするテーブル。 |
-a |
いいえ | アーカイブストレージクラス | 指定すると、データを明示的にアーカイブストレージクラスにアーカイブします (デフォルトの動作)。 |
-i |
いいえ | アーカイブストレージクラス | 指定すると、データをアーカイブではなく低頻度アクセス (IA) ストレージクラスにアーカイブします。 |
-p <partitionSpec> |
いいえ | テーブル全体 | アーカイブするパーティション。フォーマット: partitionCol1=val1,partitionCol2=val2,... |
例
db1.t1 の 2020 年 10 月 12 日のパーティションをアーカイブします:
jindo table -archive -t db1.t1 -p date=2020-10-12
-unarchive
アーカイブされたテーブルまたはパーティションのデータをより上位のストレージクラスに復元します。
-
フラグなし:アーカイブされたデータを標準ストレージクラスに変換します。
-
-o:アーカイブ済みオブジェクトを一時的に復元します。オブジェクトは解凍期間が終了した後もアーカイブストレージクラスに残ります。 -
-i:アーカイブ済みオブジェクトを低頻度アクセス (IA) ストレージクラスに変換します。
データをアーカイブするには、-archive を使用します。
構文
jindo table -unarchive [-o | -i] -t <dbName.tableName> [-p <partitionSpec>]
パラメーター
| パラメーター | 必須 | デフォルト値 | 説明 |
|---|---|---|---|
-t <dbName.tableName> |
はい | — | アーカイブ解除するテーブル。 |
-o |
いいえ | 標準 | ストレージクラスを永続的に変更することなく、アーカイブ済みオブジェクトを一時的に復元します。 |
-i |
いいえ | 標準 | アーカイブされたデータを低頻度アクセス (IA) ストレージクラスに変換します。 |
-p <partitionSpec> |
いいえ | テーブル全体 | アーカイブ解除するパーティション。フォーマット: partitionCol1=val1,partitionCol2=val2,... |
例
db1.t1 の特定のパーティションを一時的に復元します:
jindo table -unarchive -o -t db1.t1 -p date=2020-03-16,category=1
db1.t2 のすべてのパーティションをアーカイブから低頻度アクセスに変換します:
jindo table -unarchive -i -t db1.t2
-status
テーブルまたはパーティションのデータストレージステータスを表示します。
構文
jindo table -status -t <dbName.tableName> [-p <partitionSpec>]
パラメーター
| パラメーター | 必須 | デフォルト値 | 説明 |
|---|---|---|---|
-t <dbName.tableName> |
はい | — | 検査するテーブル。 |
-p <partitionSpec> |
いいえ | テーブル全体 | 検査するパーティション。フォーマット: partitionCol1=val1,partitionCol2=val2,... |
例
db1.t2 のストレージステータスを表示します:
jindo table -status -t db1.t2
db1.t1 の 2020 年 3 月 16 日のパーティションのストレージステータスを表示します:
jindo table -status -t db1.t1 -p date=2020-03-16
-optimize
ストレージレイヤーでテーブルのデータ編成を最適化し、後続のクエリの読み取り効率を向上させます。
構文
jindo table -optimize -t <dbName.tableName>
パラメーター
| パラメーター | 必須 | デフォルト値 | 説明 |
|---|---|---|---|
-t <dbName.tableName> |
はい | — | 最適化するテーブル。 |
例
db1.t1 のストレージレイアウトを最適化します:
jindo table -optimize -t db1.t1
-showTable
パーティションテーブルの場合、すべてのパーティションとそのストレージ詳細をリスト表示します。非パーティション化テーブルの場合、テーブル自体のストレージ詳細を表示します。
構文
jindo table -showTable -t <dbName.tableName>
パラメーター
| パラメーター | 必須 | デフォルト値 | 説明 |
|---|---|---|---|
-t <dbName.tableName> |
はい | — | 検査するテーブル。 |
例
db1.t1 内のすべてのパーティションをリスト表示します:
jindo table -showTable -t db1.t1
-showPartition
特定のパーティションのストレージ詳細を表示します。
構文
jindo table -showPartition -t <dbName.tableName> [-p <partitionSpec>]
パラメーター
| パラメーター | 必須 | デフォルト値 | 説明 |
|---|---|---|---|
-t <dbName.tableName> |
はい | — | 検査するパーティションテーブル。 |
-p <partitionSpec> |
いいえ | — | 検査するパーティション。フォーマット: partitionCol1=val1,partitionCol2=val2,... |
例
db1.t1 の 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 です。
コマンドに AccessKey ID と AccessKey Secret をハードコーディングしないでください。代わりに環境変数または安全な認証情報ストアを使用してください。
構文
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 プロジェクトが存在する Virtual Private Cloud (VPC) の Tunnel エンドポイント。 |
-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 パス (例: 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