Utilisez les commandes archiveTable et unarchiveTable de JindoTable pour déplacer des tables et partitions Hive entre les classes de stockage OSS, sans avoir besoin du composant Jindo Namespace Service de SmartData.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Un cluster E-MapReduce (EMR) exécutant EMR V3.36.0 ou version ultérieure, ou EMR V5.2.0 ou version ultérieure
Une table partitionnée ou non partitionnée stockée dans OSS (seules les données de la table peuvent être archivées)
Un accès SSH au cluster
Contexte
Les commandes originales archive et unarchive de JindoTable dépendent du composant Jindo Namespace Service de SmartData. Les commandes archiveTable et unarchiveTable suppriment cette dépendance, ce qui signifie que :
Elles fonctionnent sur des clusters où SmartData n'est pas déployé, y compris les clusters gérés par l'utilisateur.
Elles prennent en charge des paramètres de filtre pour l'archivage multithread sur de grands ensembles de partitions. Si le multithreading local ne suffit pas, utilisez MapReduce pour distribuer la charge de travail sur l'ensemble du cluster.
Pour la documentation sur les commandes originales, consultez Utiliser JindoTable.
Transitions entre classes de stockage
Le tableau suivant indique les classes de stockage cibles pour chaque commande et les fichiers ignorés lors de l'opération.
archiveTable
| Indicateur | Classe de stockage cible | Fichiers ignorés |
|---|---|---|
-i |
Infrequent Access (IA) | Archive, Cold Archive |
-a |
Archive | Cold Archive |
-ca |
Cold Archive | Aucun |
unarchiveTable
| Indicateur | Classe de stockage résultante | Fichiers ignorés |
|---|---|---|
| (aucun) | Standard | Aucun |
-i |
Infrequent Access (IA) | Standard |
-a |
Archive | Standard, IA |
-o |
Inchangée (restauration temporaire uniquement) | Standard, IA, fichiers précédemment restaurés |
-cr |
Aucune modification (vérification du statut de restauration uniquement) | N/A |
La classe de stockage des données Cold Archive ne peut passer à Standard, IA ou Archive qu'après le désarchivage complet des données.
Archiver des tables ou des partitions
Utilisez archiveTable pour déplacer les données de table OSS vers une classe de stockage moins coûteuse.
Connectez-vous à votre cluster via SSH. Consultez Se connecter à un cluster.
-
Exécutez la commande suivante pour afficher l'aide complète :
jindo table -help archiveTable -
Archivez des tables ou des partitions avec la syntaxe suivante :
-archiveTable -t <dbName.tableName> \ -i/-a/-ca \ [-c "<condition>" | -fullTable] \ [-b/-before <before days>] \ [-p/-parallel <parallelism>] \ [-mr/-mapReduce] \ [-e/-explain] \ [-w/-workingDir <working directory>] \ [-l/-logDir <log directory>]
Paramètres
| Paramètre | Description | Obligatoire |
|---|---|---|
-t <dbName.tableName> |
Table à archiver, au format database_name.table_name . Prend en charge les tables partitionnées et non partitionnées. |
Oui |
-i / -a / -ca |
Classe de stockage cible : -i pour Infrequent Access (IA), -a pour Archive, -ca pour Cold Archive. Consultez la section Transitions entre classes de stockage pour les règles d'exclusion. |
Oui |
-c "<condition>" / -fullTable |
Étendue de l'archivage : utilisez -fullTable pour l'ensemble de la table, ou -c "<condition>" pour archiver uniquement les partitions correspondantes. Prend en charge les opérateurs de comparaison standard. |
Oui |
-b / -before <before days> |
Archive uniquement les tables ou partitions créées il y a au moins N jours. | Non |
-p / -parallel <parallelism> |
Nombre de threads d'archivage parallèles. | Non |
-mr / -mapReduce |
Utilise Hadoop MapReduce au lieu du multithreading local. | Non |
-e / -explain |
Simulation : liste les partitions qui seraient archivées sans effectuer de modifications. | Non |
-w / -workingDir <directory> |
Répertoire de travail pour le job MapReduce. Doit disposer des permissions de lecture et d'écriture. Des fichiers temporaires sont créés pendant le job et supprimés automatiquement à la fin. | Non |
-l / -logDir <directory> |
Répertoire pour les fichiers journaux. | Non |
Exemples
Aperçu des partitions qui seront archivées (simulation) :
-archiveTable -t mydb.mytable -a -c " ds > 'd' " -e
Archiver toutes les partitions d'une table vers Cold Archive :
-archiveTable -t mydb.mytable -ca -fullTable
Archiver les partitions où la colonne ds est supérieure à 'd', créées il y a plus de 30 jours :
-archiveTable -t mydb.mytable -a -c " ds > 'd' " -b 30
Désarchiver des tables ou des partitions
Utilisez unarchiveTable pour restaurer les données de table OSS depuis un stockage archivé. Sa syntaxe est similaire à celle de archiveTable, avec deux différences : l'indicateur de classe de stockage (-i/-a/-o/-cr) est facultatif, et l'indicateur -notWait est disponible pour les restaurations Cold Archive.
Connectez-vous à votre cluster via SSH. Consultez Se connecter à un cluster.
-
Exécutez la commande suivante pour afficher l'aide complète :
jindo table -help unarchiveTable -
Désarchivez des tables ou des partitions avec la syntaxe suivante :
-archiveTable -t <dbName.tableName> \ [-i/-a/-o/-cr] \ [-notWait] \ [-c "<condition>" | -fullTable] \ [-b/-before <before days>] \ [-p/-parallel <parallelism>] \ [-mr/-mapReduce] \ [-e/-explain] \ [-w/-workingDir <working directory>] \ [-l/-logDir <log directory>]
Paramètres spécifiques à unarchiveTable
Tous les paramètres de archiveTable s'appliquent. Les paramètres suivants diffèrent ou sont nouveaux :
| Paramètre | Description | Obligatoire |
|---|---|---|
-i / -a / -o / -cr |
Classe de stockage cible après désarchivage. Si omis, les données sont restaurées vers Standard. Consultez la section Transitions entre classes de stockage pour plus de détails. | Non |
-notWait |
Valide uniquement lors du désarchivage des données. Soumet la demande de désarchivage pour les données Cold Archive et retourne immédiatement sans attendre la fin de l'opération. | Non |
Exemples
Aperçu des partitions qui seront restaurées (simulation) :
-archiveTable -t mydb.mytable -a -c " ds > 'd' " -e
Restaurer toutes les partitions vers le stockage Standard :
-archiveTable -t mydb.mytable -fullTable
Restaurer les partitions vers le stockage Archive, en ignorant les fichiers Standard et IA :
-archiveTable -t mydb.mytable -a -c " ds > 'd' "
Restaurer temporairement les partitions Cold Archive sans modifier la classe de stockage :
-archiveTable -t mydb.mytable -o -c " ds > 'd' "
Soumettre une demande de désarchivage Cold Archive sans attendre :
-archiveTable -t mydb.mytable -fullTable -notWait
Vérifier si les fichiers Archive ou Cold Archive ont été entièrement restaurés :
-archiveTable -t mydb.mytable -cr -fullTable
Étapes suivantes
Pour créer un cluster EMR, consultez Créer un cluster.
Pour utiliser les commandes d'archivage JindoTable originales (nécessite Jindo Namespace Service), consultez Utiliser JindoTable.