JindoTable は、テーブルとパーティションのアクセス頻度の高い統計を収集し、階層型ストレージ管理を提供し、OSS および JindoFS 上のテーブルデータ編成を最適化します。
前提条件
開始する前に、次のものが揃っていることを確認してください:
-
オンプレミスマシンに Java Development Kit (JDK) 8 がインストールされていること
-
V3.30.0 以降の E-MapReduce (EMR) クラスター。「クラスターの作成」をご参照ください。
コマンド
すべてのコマンドは、次の書式に従います:
-
テーブル:
database.table -
パーティション:
partitionCol1=1,partitionCol2=2,...
次の表に、使用可能なすべての jindo table コマンドをリストします。
| コマンド | 説明 |
|---|---|
-accessStat |
指定した期間内に最も頻繁にアクセスされるテーブルまたはパーティションを照会します |
-cache |
テーブルまたはパーティションのデータをローカルディスクにキャッシュします |
-uncache |
キャッシュされたテーブルまたはパーティションのデータをローカルディスクから削除します |
-archive |
テーブルまたはパーティションのデータを低コストの OSS ストレージクラスに移動します |
-unarchive |
アーカイブされたテーブルまたはパーティションのデータを標準ストレージに復元します |
-status |
テーブルまたはパーティションのストレージステータスを表示します |
-optimize |
ストレージレイヤーでデータ編成を最適化します |
-showTable |
パーティションテーブル内のすべてのパーティションをリストするか、非パーティションテーブルのストレージ詳細を表示します |
-showPartition |
特定のパーティションのストレージ詳細を表示します |
-listTables |
データベース内のすべてのテーブルをリストします |
-dumpmc |
MaxCompute テーブルを EMR クラスターまたは OSS にダンプします |
-leastUseStat |
最も長期間アクセスされていないテーブルまたはパーティションを照会します |
-archiveTable |
SDK モードでテーブルまたはパーティションのデータをアーカイブします (Jindo Namespace Service には依存しません) |
-unarchiveTable |
SDK モードでテーブルまたはパーティションのデータをアンアーカイブします |
-moveTo |
テーブルまたはパーティションのデータを別の場所に移行します |
-accessStat
指定された日数内で最もアクセス頻度の高いテーブルまたはパーティションを、アクセス数とともに照会します。
構文
jindo table -accessStat {-d} <days> {-n} <topNums>
パラメーター
| パラメーター | 説明 | 必須 |
|---|---|---|
-d <days> |
期間を日数で指定します。正の整数である必要があります。 | はい |
-n <topNums> |
表示する上位結果の数。正の整数である必要があります。省略した場合、すべての結果が返されます。 | いいえ |
-dを1に設定し、-nを省略した場合、コマンドは当日の 00:00 から現在時刻までのアクセス統計を返します。
例
過去 7 日間で最も頻繁にアクセスされた 20 のテーブルまたはパーティションを照会します:
jindo table -accessStat -d 7 -n 20
-cache
指定されたテーブルまたはパーティションのデータをローカルディスクにキャッシュします。
構文
jindo table -cache {-t} <dbName.tableName> [-p] <partitionSpec> [-pin]
パラメーター
| パラメーター | 説明 | 必須 |
|---|---|---|
-t <dbName.tableName> |
キャッシュするテーブル。形式: database.table。 |
はい |
-p <partitionSpec> |
キャッシュするパーティション。形式: col1=val1,col2=val2,...。省略した場合、テーブルのすべてのパーティションをキャッシュします。 |
いいえ |
-pin |
キャッシュ領域が不足したときに、キャッシュされたデータが削除されるのを防ぎます。 | いいえ |
テーブルまたはパーティションのデータは、Object Storage Service (OSS) または JindoFS に存在する必要があります。
例
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> |
アンキャッシュするパーティション。形式: col1=val1,col2=val2,...。省略した場合、テーブルのすべてのキャッシュされたデータを削除します。 |
いいえ |
テーブルまたはパーティションのデータは、OSS または JindoFS に配置する必要があります。
例
db1.t2 のキャッシュされたすべてのデータを削除します:
jindo table -uncache -t db1.t2
db1.t1 の特定のパーティションのキャッシュされたデータを削除します:
jindo table -uncache -t db1.t1 -p date=2020-03-16,category=1
-archive
テーブルまたはパーティションのデータを、より低コストの OSS ストレージクラスに移動します。デフォルトのターゲットクラスはアーカイブストレージクラスです。
構文
jindo table -archive {-a|-i} {-t} <dbName.tableName> [-p] <partitionSpec>
パラメーター
| パラメーター | 説明 | 必須 |
|---|---|---|
-a |
アーカイブストレージクラスにアーカイブします (デフォルト)。 | いいえ |
-i |
アーカイブの代わりに、低頻度アクセス (IA) ストレージクラスにアーカイブします。 | いいえ |
-t <dbName.tableName> |
アーカイブするテーブル。形式: database.table。 |
はい |
-p <partitionSpec> |
アーカイブするパーティション。形式: col1=val1,col2=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> |
アンアーカイブするパーティション。形式: col1=val1,col2=val2,...。省略した場合、テーブルのすべてのアーカイブされたデータを復元します。 |
いいえ |
例
db1.t1 の特定のパーティションを標準ストレージに一時的に復元します:
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> |
検査するパーティション。形式: col1=val1,col2=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> |
検査するパーティション。形式: col1=val1,col2=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 シークレット。 | はい |
-m <numMaps> |
マップタスクの数。 | はい |
-t <tunnelUrl> |
MaxCompute プロジェクトが存在する仮想プライベートクラウド (VPC) の Tunnel エンドポイント。 | はい |
-project <projectName> |
MaxCompute プロジェクトの名前。 | はい |
-table <tableName> |
MaxCompute テーブルの名前。 | はい |
-p <partitionSpec> |
パーティション情報。例: pt=xxx。複数のパーティションの場合: pt=xxx,dt=xxx。 |
いいえ |
-f <csv|tfrecord> |
出力ファイル形式。有効な値: csv、tfrecord。 |
はい |
-o <outputPath> |
宛先パス。EMR クラスター出力にはローカルパスを、OSS 出力には oss:// パスを使用します。 |
はい |
例
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
-leastUseStat
最も長い間アクセスされていないテーブルまたはパーティションを照会します。
構文
jindo table -leastUseStat -n <num> [-i|-ignoreNever]
パラメーター
| パラメーター | 説明 | 必須 |
|---|---|---|
-n <num> |
表示する結果の数。正の整数である必要があります。 | はい |
-i / -ignoreNever |
一度もアクセスされていないテーブルまたはパーティションを除外します。 | いいえ |
例
最も長い期間アクティブでない 20 のテーブルまたはパーティションを照会します:
jindo table -leastUseStat -n 20
次のステップ
-
SDK モードで
-archiveTableおよび-unarchiveTableを使用して、Jindo Namespace Service コンポーネントなしで OSS データをアーカイブおよびアンアーカイブします。詳細については、「archiveTable と unarchiveTable」をご参照ください。 -
-moveToを使用して、テーブルまたはパーティションのデータを新しい場所に移行します。詳細については、「moveTo」をご参照ください。