JindoTable は、SDK モードで archiveTable コマンドおよび unarchiveTable コマンドを提供します。これらのコマンドを使用すると、Jindo Namespace Service に依存せずにデータのアーカイブおよび復元を実行できます。このトピックでは、archiveTable コマンドおよび unarchiveTable コマンドの使用方法について説明します。
前提条件
- ローカル環境に Java Development Kit (JDK) 8 がインストールされていること。
- クラスターが作成されていること。詳細については、「クラスターの作成」をご参照ください。
- アーカイブ対象のデータはテーブルに格納されている必要があります。テーブルはパーティションテーブルまたは非パーティション化テーブルのいずれかであり、Alibaba Cloud Object Storage Service (OSS) に保存されている必要があります。
背景情報
従来の JindoTable の archive コマンドおよび unarchive コマンドは、OSS 上のテーブルまたはパーティションをアーカイブまたは復元できます。ただし、これらのコマンドは SmartData コンポーネントの Jindo Namespace Service に依存していました。新しい archiveTable コマンドおよび unarchiveTable コマンドを使用すると、この依存関係なしでアーカイブおよび復元操作を実行できます。
- SmartData サービスがデプロイされていないクラスター (EMR クラスターではないセルフマネージドクラスターなど) でコマンドを実行できます。
- フィルターパラメーターを渡して、複数のパーティションに操作を適用し、マルチスレッドで実行できます。ローカルのマルチスレッドでは不十分な場合は、MapReduce ジョブを起動してクラスター全体で実行することもできます。
従来の archive コマンドおよび unarchive コマンドの詳細については、「JindoTableユーザーガイド」をご参照ください。
制限事項
新しい archiveTable コマンドおよび unarchiveTable コマンドは、EMR V3.36.0 以降、または EMR V5.2.0 以降のクラスターでサポートされています。
archiveTable コマンド
archiveTable コマンドは、OSS 上のテーブルまたはパーティションをアーカイブします。
- Secure Shell (SSH) プロトコルを使用してクラスターにログインします。詳細については、「クラスターへのログイン」をご参照ください。
- 次のコマンドを実行してヘルプ情報を取得します。
jindo table -help archiveTable次の情報が返されます:<dbName.tableName> アーカイブするテーブル。 -a/-i ストレージポリシー。-a はアーカイブストレージ、-i は低頻度アクセス (IA) ストレージを指定します。 <condition>/-fullTable アーカイブするパーティションを決定するフィルター条件。一般的な演算子 ('>' など) をサポートします。 -fullTable は、すべてのパーティション (または非パーティションテーブル全体) をアーカイブすることを意味します。 -c "<condition>" と -fullTable のいずれか 1 つのオプションを指定する必要があります。 <before days> オプション。現在から指定した日数以上前に作成された (更新または変更されていない) テーブル/パーティションのみをアーカイブします。 <parallelism> パーティションをアーカイブする際の最大並列度。デフォルトは 1 です。 -mr/-mapReduce ローカルレベルのマルチスレッドではなく、クラスターレベルの MapReduce ジョブを使用してテーブル/パーティションをアーカイブします。 -e/-explain このオプションが存在する場合、コマンドは実際にデータをアーカイブせず、指定された条件でアーカイブされるテーブル/パーティションのみを出力します。 <working directory>: MapReduce の一時ファイルを配置するディレクトリ。ローカルファイルシステムのディレクトリは指定できません。 デフォルトは 'hdfs:///tmp/<current user>/jindotable-policy/' です。 <log directory> ログファイルを配置するディレクトリ。デフォルトは '/tmp/<current user>/' です。archiveTable コマンドの構文は次のとおりです:-archiveTable -t <dbName.tableName> \ -a/-i \ [-c "<condition>" | -fullTable] \ [-b/-before <before days>] \ [-p/-parallel <parallelism>] \ [-mr/-mapReduce] \ [-e/-explain] \ [-w/-workingDir <working directory>] \ [-l/-logDir <log directory>]パラメーター 説明 必須 [-t <dbName.tableName>] アーカイブするテーブルの名前。形式は データベース名.テーブル名です。データベース名とテーブル名はピリオド (.) で区切ります。テーブルはパーティションテーブルまたは非パーティション化テーブルのいずれかです。
はい [-a/-i] 移行先のストレージクラス。次のオプションがサポートされています。 -a: アーカイブストレージ。-i: 低頻度アクセス (IA) ストレージ。
IA ストレージに
-iを指定した場合、すでにアーカイブストレージにあるファイルはスキップされます。はい [-c "<condition>" | -fullTable] -fullTableまたは-c "<condition>"を指定します。-fullTableを指定すると、テーブル全体が移行されます。テーブルはパーティションテーブルまたは非パーティション化テーブルのいずれかです。-c "<condition>"を指定すると、この条件に一致するパーティションが移行されます。大なり記号 (>) などの一般的な演算子がサポートされています。例えば、String データ型のパーティションキー列
dsで、パーティション名が 'd' より大きいパーティションを選択する場合は、-c " ds > 'd' "を使用します。
はい [-b/before <before days>] 指定した日数以上前に作成されたテーブルまたはパーティションのみをアーカイブします。 いいえ [-p/-parallel <parallelism>] アーカイブ操作の並列度を指定します。 いいえ [-mr/-mapReduce] ローカルマルチスレッドではなく、Hadoop MapReduce を使用してデータをアーカイブします。 いいえ [-e/-explain] このオプションが存在する場合、コマンドは EXPLAIN モードで実行されます。移行対象のパーティションのリストのみを表示し、実際にデータを移行しません。 いいえ [-w/-workingDir] MapReduce ジョブでのみ使用されます。MapReduce ジョブの作業ディレクトリを指定します。このディレクトリに対する読み取りおよび書き込み権限が必要です。作業ディレクトリは空でなくても構いません。ジョブの実行中に一時ファイルが作成され、ジョブの完了後にクリーンアップされます。 いいえ [-l/-logDir <log directory>] ログファイルのディレクトリを指定します。 いいえ
unarchiveTable コマンド
unarchiveTable コマンドは archiveTable コマンドと同様の形式であり、逆の操作を実行します。OSS 上のテーブルまたはパーティションを復元します。
- SSH プロトコルを使用してクラスターにログインします。詳細については、「クラスターへのログイン」をご参照ください。
- 次のコマンドを実行してヘルプ情報を取得します。
jindo table -help unarchiveTable次の情報が返されます:<dbName.tableName> 復元するテーブル。 -i 低頻度アクセス (IA) ストレージに復元します。 -o アーカイブされたデータを一時的にアクセス可能にするための復元を実行します。 <condition>/-fullTable 復元するパーティションを決定するフィルター条件。一般的な演算子 ('>' など) をサポートします。 -fullTable は、すべてのパーティション (または非パーティションテーブル全体) を復元することを意味します。 -c "<condition>" と -fullTable のいずれか 1 つのオプションを指定する必要があります。 <before days> オプション。現在から指定した日数以上前に作成された (更新または変更されていない) テーブル/パーティションのみを復元します。 <parallelism> パーティションを復元する際の最大並列度。デフォルトは 1 です。 -mr/-mapReduce ローカルレベルのマルチスレッドではなく、クラスターレベルの MapReduce ジョブを使用してテーブル/パーティションを復元します。 -e/-explain このオプションが存在する場合、コマンドは実際にデータを復元せず、指定された条件で復元されるテーブル/パーティションのみを出力します。 <working directory>: MapReduce の一時ファイルを配置するディレクトリ。ローカルファイルシステムのディレクトリは指定できません。 デフォルトは 'hdfs:///tmp/<current user>/jindotable-policy/' です。 <log directory> ログファイルを配置するディレクトリ。デフォルトは '/tmp/<current user>/' です。unarchiveTable コマンドの構文は次のとおりです:-unarchiveTable -t <dbName.tableName> \ [-i/-o] \ [-c "<condition>" | -fullTable] \ [-b/-before <before days>] \ [-p/-parallel <parallelism>] \ [-mr/-mapReduce] \ [-e/-explain] \ [-w/-workingDir <working directory>] \ [-l/-logDir <log directory>]
unarchiveTable コマンドのパラメーターは、archiveTable コマンドとほぼ同じです。主な違いは、必須パラメーター -a/-i がオプションパラメーター -i/-o に置き換えられている点です。
-i/-o の説明は次のとおりです:-i/-oパラメーターを指定しない場合、ストレージクラスは標準に変更されます。-iパラメーターを指定すると、ストレージクラスは低頻度アクセス (IA) ストレージに変更されます。すでに標準ストレージクラスにあるファイルはスキップされます。-oパラメーターを指定すると、復元操作のみが実行されます。すでに標準または IA ストレージクラスにあるファイルはスキップされます。すでに復元済み状態にあるファイルも、重複した復元を防ぐためにスキップされます。