JindoTable は、テーブルとパーティションの頻繁なアクセス統計を収集し、階層型ストレージ管理を提供し、Object Storage Service (OSS) および JindoFS 上のテーブルデータ編成を最適化します。
前提条件
開始する前に、以下を確認してください。
-
オンプレミス環境に Java Development Kit (JDK) 8 がインストールされていること
-
E-MapReduce (EMR) クラスターのバージョンが V3.30.0 以降であること。「クラスターの作成」をご参照ください。
コマンド
すべてのコマンドで、以下の形式規則を使用します。
-
テーブル:
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 |
キャッシュスペースが不足した場合に、キャッシュされたデータが削除されるのを防ぎます。 | いいえ |
テーブルまたはパーティションデータは、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 ストレージクラスに移動します。デフォルトのターゲットクラスは Archive です。
構文
jindo table -archive {-a|-i} {-t} <dbName.tableName> [-p] <partitionSpec>
パラメーター
| パラメーター | 説明 | 必須 |
|---|---|---|
-a |
Archive ストレージクラスにアーカイブします (デフォルト)。 | いいえ |
-i |
Archive ではなく、低頻度アクセス (IA) ストレージクラスにアーカイブします。 | いいえ |
-t <dbName.tableName> |
アーカイブするテーブル。形式: database.table。 |
はい |
-p <partitionSpec> |
アーカイブするパーティション。形式: col1=val1,col2=val2,...。省略した場合、すべてのパーティションがアーカイブされます。 |
いいえ |
例
db1.t1 の date=2020-10-12 パーティションを Archive ストレージクラスにアーカイブします。
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> |
データベース名。省略した場合、デフォルトデータベース内のテーブルが一覧表示されます。 | いいえ |
例
デフォルトデータベース内のテーブルを一覧表示します。
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) の 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」をご参照ください。