JindoTableでは、SDKモードでarchiveTableコマンドとunarchiveTableコマンドを実行して、オブジェクトストレージサービス(OSS)のデータをアーカイブおよびアーカイブ解除できます。 これらのコマンドは、SmartDataのJindo Namespace Serviceコンポーネントに依存しません。 このトピックでは、archiveTableコマンドとunarchiveTableコマンドの使用方法について説明します。
前提条件
- Java Development Kit(JDK)8がコンピューターにインストールされていること。
- E-MapReduce(EMR)クラスターが作成されていること。 詳細については、「クラスターの作成」をご参照ください。
- アーカイブするパーティションテーブルまたは非パーティションテーブルがOSSに格納されていること。 アーカイブできるのはテーブルデータのみです。
背景情報
JindoTableの元のarchiveコマンドとunarchiveコマンドを使用して、OSSのテーブルまたはパーティションをアーカイブまたはアーカイブ解除できます。 ただし、これらのコマンドはSmartDataのJindo Namespace Serviceコンポーネントに依存します。 新しいコマンドarchiveTableとunarchiveTableは、Jindo Namespace Serviceコンポーネントに依存しません。
- SmartDataサービスがクラスターにデプロイされていない場合でも、archiveTableコマンドとunarchiveTableコマンドを実行できます。 たとえば、セルフマネージドクラスターでコマンドを実行できます。
- archiveTableコマンドまたはunarchiveTableコマンドでフィルターパラメーターを設定して、複数のスレッドで多数のパーティションを同時にアーカイブまたはアーカイブ解除できます。 ローカルのマルチスレッドがビジネス要件を満たせない場合は、クラスター全体でMapReduceタスクを実行して、データをアーカイブまたはアーカイブ解除できます。
元のarchiveコマンドとunarchiveコマンドの詳細については、「JindoTableの使用」をご参照ください。
制限事項
archiveTableコマンドとunarchiveTableコマンドは、EMR V3.36.0以降のマイナーバージョン、およびEMR V5.2.0以降のマイナーバージョンでのみサポートされています。
archiveTable
archiveTableコマンドを使用して、OSSのテーブルまたはパーティションをアーカイブできます。
- 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)
コマンドで -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 説明モードを使用します。 説明モードでは、アーカイブされるパーティションのリストが表示されますが、データはアーカイブされません。 いいえ -w/-workingDir MapReduceジョブの作業ディレクトリ。 このオプションは、MapReduceジョブを使用してデータをアーカイブする場合にのみ使用されます。 ディレクトリに対する読み取りおよび書き込み権限が必要です。 ディレクトリは空でも空でなくてもかまいません。 MapReduceジョブの実行時に一時ファイルが作成され、ジョブの完了後に自動的に削除されます。 いいえ -l/-logDir <log directory> ログファイルが格納されるディレクトリ。 いいえ
unarchiveTable
unarchiveTableコマンドの構文は、archiveTableコマンドの構文に似ています。 unarchiveTableコマンドを使用して、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コマンドでは、必須パラメーター -a/-i の代わりに、オプションパラメーター -i/-o が使用されます。 これが、unarchiveTableコマンドのパラメーターとarchiveTableコマンドのパラメーターの唯一の違いです。
- -i/-o を指定しない場合、アーカイブ解除するデータのストレージクラスはStandardに変更されます。
- -i オプションを指定すると、アーカイブ解除するデータのストレージクラスはIAに変更されます。 ストレージクラスがStandardのファイルはスキップされます。
- -o オプションを指定すると、データは一時的にアーカイブ解除されるだけで、ストレージクラスは保持されます。 ストレージクラスがStandardのファイルとストレージクラスがIAのファイルはスキップされます。 以前にアーカイブ解除されたファイルもスキップされます。 これにより、これらのファイルが繰り返しアーカイブ解除されることはありません。