JindoTable propose les commandes archiveTable et unarchiveTable en mode SDK. Utilisez ces commandes pour archiver et restaurer des données sans dépendre du service Jindo Namespace Service. Cette rubrique explique comment utiliser les commandes archiveTable et unarchiveTable.
Prérequis
Java Development Kit (JDK) 8 est installé localement.
Un cluster a été créé. Pour plus d'informations, consultez la section Créer un cluster.
Les données à archiver doivent se trouver dans une table (partitionnée ou non) et être stockées dans Alibaba Cloud Object Storage Service (OSS).
Contexte
Les commandes d'archivage et de restauration originales de JindoTable permettent d'archiver ou de restaurer des tables ou des partitions sur OSS. Toutefois, ces commandes dépendent du service Jindo Namespace Service du composant SmartData. Les nouvelles commandes archiveTable et unarchiveTable vous permettent d'effectuer des opérations d'archivage et de restauration sans cette dépendance.
Les principales différences entre les nouvelles commandes archiveTable et unarchiveTable et les commandes originales d'archivage et de restauration sont les suivantes :
Exécutez les commandes sur un cluster où le service SmartData n'est pas déployé, par exemple un cluster autogéré qui n'est pas un cluster EMR.
Transmettez des paramètres de filtre pour appliquer l'opération à plusieurs partitions et l'exécuter de manière multithread. Si le multithreading local est insuffisant, démarrez un job MapReduce pour l'exécuter sur l'ensemble du cluster.
Pour plus d'informations sur les commandes originales d'archivage et de restauration, consultez le Guide d'utilisation de JindoTable.
Limites
Les nouvelles commandes archiveTable et unarchiveTable sont prises en charge sur les clusters EMR V3.36.0 et versions ultérieures, ou EMR V5.2.0 et versions ultérieures.
La commande archiveTable
La commande archiveTable archive des tables ou des partitions sur OSS.
Connectez-vous au cluster via le protocole Secure Shell (SSH). Pour plus d'informations, consultez la section Se connecter à un cluster.
-
Exécutez la commande suivante pour obtenir de l'aide.
jindo table -help archiveTableLes informations suivantes s'affichent.
<dbName.tableName> The table to archive. -a/-i storage policy, -a for Archive and -i for IA (Infrequent Access). <condition>/-fullTable A filter condition to determine which partitions should be archived, supporting common operators (like '>'), while -fullTable means that all partitions (or a whole un-partitioned table) should be archived. One but only one option must be specified among -c "<condition>" and -fullTable. <before days> Optional, saying that table/partitions should be archived only when they are created (not updated or modified) more than some days before from now. <parallelism> The maximum concurrency when archiving partitions, 1 by default. -mr/-mapReduce Archive table/partitions using cluster-level MapReduce job instead of local-level multi-thread. -e/-explain If present, the command would not really archive data, but only prints the table/partitions that would be archived for given conditions. <working directory>: A directory to locate map-reduce temp files. Must not be a local file system directory. 'hdfs:///tmp/<current user>/jindotable-policy/' by default. <log directory> A directory to locate log files, '/tmp/<current user>/' by default.La syntaxe de la commande
archiveTableest la suivante.-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>]Paramètre Description Obligatoire -t <dbName.tableName> Nom de la table à archiver. Le format est database_name.table_name.Utilisez un point (.) pour séparer le nom de la base de données et le nom de la table. La table peut être partitionnée ou non.
Oui -a/-i Classe de stockage de destination. Les options suivantes sont prises en charge : -a: Stockage Archive.-i: Stockage Infrequent Access (IA).
Si vous spécifiez -i pour le stockage IA, les fichiers déjà en stockage Archive sont ignorés.
Oui -c "<condition>" | -fullTable -fullTableou-c "<condition>".- Si vous spécifiez
-fullTable, la table entière est déplacée. La table peut être partitionnée ou non. - Si vous spécifiez
-c "<condition>", une condition de filtre est fournie pour sélectionner les partitions à déplacer. Les opérateurs courants, tels que le signe supérieur à (>), sont pris en charge.Par exemple, pour une colonne de clé de partition
dsde type String, si vous souhaitez sélectionner les partitions dont le nom est supérieur à 'd', utilisez-c " ds > 'd' ".
Non -b/before <before days> Seules les tables ou partitions créées il y a plus du nombre de jours spécifié sont archivées. Non -p/-parallel <parallelism> Degré de parallélisme pour l'opération d'archivage. Non -mr/-mapReduce Utilise Hadoop MapReduce au lieu du multithreading local pour archiver les données. Non -e/-explain Si cette option est présente, la commande s'exécute en mode explication. Elle affiche uniquement la liste des partitions à déplacer et ne déplace aucune donnée. Non -w/-workingDir Utilisé uniquement pour les jobs MapReduce. Spécifie le répertoire de travail pour le job MapReduce. Vous devez disposer des autorisations de lecture et d'écriture sur ce répertoire. Le répertoire de travail peut contenir des fichiers. Des fichiers temporaires sont créés pendant l'exécution du job et supprimés une fois le job terminé. Non -l/-logDir <log directory> Spécifie le répertoire pour les fichiers journaux. Non
La commande unarchiveTable
La commande unarchiveTable possède un format similaire à celui de la commande archiveTable et effectue l'opération inverse. Elle restaure des tables ou des partitions sur OSS.
Connectez-vous au cluster via le protocole SSH. Pour plus d'informations, consultez la section Se connecter à un cluster.
-
Exécutez la commande suivante pour obtenir de l'aide.
jindo table -help unarchiveTableLes informations suivantes s'affichent.
<dbName.tableName> The table to unarchive. -i unarchive to IA (Infrequent Access). -o restore to make archived data accessible temporarily. <condition>/-fullTable A filter condition to determine which partitions should be unarchived, supporting common operators (like '>'), while -fullTable means that all partitions (or a whole un-partitioned table) should be unarchived. One but only one option must be specified among -c "<condition>" and -fullTable. <before days> Optional, saying that table/partitions should be unarchived only when they are created (not updated or modified) more than some days before from now. <parallelism> The maximum concurrency when unarchiving partitions, 1 by default. -mr/-mapReduce Unarchive table/partitions using cluster-level MapReduce job instead of local-level multi-thread. -e/-explain If present, the command would not really unarchive data, but only prints the table/partitions that would be unarchived for given conditions. <working directory>: A directory to locate map-reduce temp files. Must not be a local file system directory. 'hdfs:///tmp/<current user>/jindotable-policy/' by default. <log directory> A directory to locate log files, '/tmp/<current user>/' by default.La syntaxe de la commande
unarchiveTableest la suivante.-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>]
Les paramètres de la commande unarchiveTable sont presque identiques à ceux de la commande archiveTable. La principale différence réside dans le fait que le paramètre obligatoire -a/-i est remplacé par le paramètre facultatif -i/-o.
Le paramètre facultatif
-i/-o
est décrit ci-dessous :
Si vous ne spécifiez pas le paramètre -i/-o, la classe de stockage est convertie en Standard.
Si vous spécifiez le paramètre -i, la classe de stockage est convertie en Infrequent Access (IA). Les fichiers déjà en classe de stockage Standard sont ignorés.
Si vous spécifiez le paramètre -o, seule une opération de restauration est effectuée. Les fichiers déjà en classe de stockage Standard ou IA sont ignorés. Les fichiers déjà dans un état restauré sont également ignorés pour éviter les restaurations répétées.