Todos os produtos
Search
Central de documentação

E-MapReduce:Comandos de arquivamento e restauração do JindoTable no modo SDK

Última atualização: Aug 20, 2026

O JindoTable fornece os comandos archiveTable e unarchiveTable no modo SDK. Use esses comandos para arquivar e restaurar dados sem depender do Jindo Namespace Service. Este tópico descreve como usar os comandos archiveTable e unarchiveTable.

Pré-requisitos

  • Java Development Kit (JDK) 8 instalado localmente.

  • Cluster criado. Para obter mais informações, consulte Crie um cluster.

  • Os dados a serem arquivados devem estar em uma tabela (particionada ou não particionada) armazenada no Alibaba Cloud Object Storage Service (OSS).

Informações básicas

Os comandos originais de arquivamento e desarquivamento do JindoTable permitem arquivar ou restaurar tabelas e partições no OSS. No entanto, eles dependem do Jindo Namespace Service do componente SmartData. Os novos comandos archiveTable e unarchiveTable executam essas operações sem essa dependência.

As principais diferenças entre os novos comandos archiveTable e unarchiveTable e os comandos originais são:

  • É possível executar os comandos em clusters onde o service SmartData não está implantado, como um cluster autogerenciado que não seja um cluster EMR.

  • É possível passar parâmetros de filtro para aplicar a operação a várias partições e executá-la com multithreading. Se o multithreading local for insuficiente, inicie um job MapReduce para executar a tarefa em todo o cluster.

Para obter mais informações sobre os comandos originais de arquivamento e desarquivamento, consulte JindoTable user guide.

Limites

Os novos comandos archiveTable e unarchiveTable têm suporte em clusters das versões EMR V3.36.0 ou posterior e EMR V5.2.0 ou posterior.

O comando archiveTable

O comando archiveTable arquiva tabelas ou partições no OSS.

  1. Faça login no cluster usando o protocolo Secure Shell (SSH). Para obter mais informações, consulte Log on to a cluster.

  2. Execute o seguinte comando para obter informações de ajuda.

    jindo table -help archiveTable

    As seguintes informações são retornadas.

      <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.
                                

    A sintaxe do comando archiveTable é a seguinte.

    -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>]
    ParâmetroDescriçãoObrigatório
    -t <dbName.tableName>Nome da tabela a ser arquivada. O formato é database_name.table_name.

    Use um ponto (.) para separar o nome do banco de dados e o nome da tabela. A tabela pode ser particionada ou não particionada.

    Sim
    -a/-iClasse de armazenamento de destino. Há suporte às seguintes opções:
    • -a: Archive Storage.
    • -i: Armazenamento Infrequent Access (IA).

    Se você especificar -i para armazenamento IA, os arquivos que já estão no Archive Storage serão ignorados.

    Sim
    -c "<condition>" | -fullTable-fullTable ou -c "<condition>".
    • Ao especificar -fullTable, toda a tabela é movida. A tabela pode ser particionada ou não particionada.
    • Ao especificar -c "<condition>", uma condição de filtro seleciona as partições a serem movidas. Há suporte a operadores comuns, como o sinal de maior que (>).

      Por exemplo, para uma coluna de chave de partição ds do tipo de dados String, se quiser selecione partições onde o nome da partição seja maior que 'd', use -c " ds > 'd' ".

    Não
    -b/before <before days>Arquiva apenas tabelas ou partições criadas há mais dias do que o número especificado.Não
    -p/-parallel <parallelism>Grau de paralelismo para a operação de arquivamento.Não
    -mr/-mapReduceUsa Hadoop MapReduce em vez de multithreading local para arquivar dados.Não
    -e/-explainQuando esta opção está presente, o comando executa no modo de explicação. Ele exibe apenas a lista de partições a serem movidas, sem mover nenhum dado efetivamente.Não
    -w/-workingDirUso exclusivo para jobs MapReduce. Especifique o diretório de trabalho para o job MapReduce. É necessário ter permissões de leitura e gravação no diretório. O diretório de trabalho pode conter arquivos. Arquivos temporários são criados durante a execução do job e limpos após a conclusão.Não
    -l/-logDir <log directory>Define o diretório para arquivos de log.Não

O comando unarchiveTable

O comando unarchiveTable tem um formato semelhante ao do comando archiveTable e realiza a operação inversa, restaurando tabelas ou partições no OSS.

  1. Faça login no cluster usando o protocolo SSH. Para obter mais informações, consulte Log on to a cluster.

  2. Execute o seguinte comando para obter informações de ajuda.

    jindo table -help unarchiveTable

    As seguintes informações são retornadas.

      <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.

    A sintaxe do comando unarchiveTable é a seguinte.

    -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>]

Os parâmetros do comando unarchiveTable são quase idênticos aos do comando archiveTable. A principal diferença é que o parâmetro obrigatório -a/-i é substituído pelo parâmetro opcional -i/-o.

O parâmetro opcional

-i/-o

funciona da seguinte forma:

  • Sem a especificação do parâmetro -i/-o, a classe de armazenamento é convertida para Standard.

  • Ao usar o parâmetro -i, a classe de armazenamento é convertida para Infrequent Access (IA). Arquivos que já estão na classe Standard são ignorados.

  • Com o parâmetro -o, apenas uma operação de restauração é realizada. Arquivos nas classes Standard ou IA são ignorados. Arquivos já restaurados também são ignorados para evitar restaurações repetidas.