Tous les produits
Search
Centre de documentation

E-MapReduce:Commandes d'archivage et de restauration pour JindoTable en mode SDK

Dernière mise à jour :Aug 20, 2026

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.

  1. Connectez-vous au cluster via le protocole Secure Shell (SSH). Pour plus d'informations, consultez la section Se connecter à un cluster.

  2. Exécutez la commande suivante pour obtenir de l'aide.

    jindo table -help archiveTable

    Les 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 archiveTable est 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ètreDescriptionObligatoire
    -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/-iClasse 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-fullTable ou -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 ds de 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/-mapReduceUtilise Hadoop MapReduce au lieu du multithreading local pour archiver les données.Non
    -e/-explainSi 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/-workingDirUtilisé 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.

  1. Connectez-vous au cluster via le protocole SSH. Pour plus d'informations, consultez la section Se connecter à un cluster.

  2. Exécutez la commande suivante pour obtenir de l'aide.

    jindo table -help unarchiveTable

    Les 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 unarchiveTable est 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.