Todos os produtos
Search
Central de documentação

E-MapReduce:Arquivar e desarquivar dados no modo SDK

Última atualização: Sep 17, 2026

Use os comandos archiveTable e unarchiveTable do JindoTable para mover tabelas e partições do Hive entre classes de armazenamento do OSS sem depender do componente Jindo Namespace Service do SmartData.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Um cluster E-MapReduce (EMR) com a versão EMR V3.36.0 ou posterior, ou EMR V5.2.0 ou posterior

  • Uma tabela particionada ou não particionada armazenada no OSS (somente os dados da tabela podem ser arquivados)

  • Acesso SSH ao cluster

Contexto

Os comandos originais archive e unarchive do JindoTable dependem do componente Jindo Namespace Service do SmartData. Os comandos archiveTable e unarchiveTable eliminam essa dependência. Isso significa que:

  • Eles funcionam em clusters sem o SmartData implantado, incluindo clusters autogerenciados.

  • Eles aceitam parâmetros de filtro para arquivamento multithread em grandes conjuntos de partições. Se o multithreading local for insuficiente, use o MapReduce para distribuir a carga pelo cluster.

Para consultar a documentação dos comandos originais, veja Use JindoTable.

Transições de classe de armazenamento

A tabela a seguir mostra as classes de armazenamento de destino de cada comando e quais arquivos são ignorados durante a operação.

archiveTable

Flag

Classe de armazenamento de destino

Arquivos ignorados

-i

Infrequent Access (IA)

Archive, Cold Archive

-a

Archive

Cold Archive

-ca

Cold Archive

Nenhum

unarchiveTable

Flag

Classe de armazenamento resultante

Arquivos ignorados

(nenhum)

Standard

Nenhum

-i

Infrequent Access (IA)

Standard

-a

Archive

Standard, IA

-o

Inalterada (apenas restauração temporária)

Standard, IA, arquivos restaurados anteriormente

-cr

Sem alteração (apenas verifica status de restauração)

N/A

Nota

A classe de armazenamento de dados Cold Archive só pode mudar para Standard, IA ou Archive após o desarquivamento completo dos dados.

Arquivar tabelas ou partições

Use o comando archiveTable para mover dados de tabelas do OSS para uma classe de armazenamento de menor custo.

  1. Faça login no cluster via SSH. Consulte Log on to a cluster.

  2. Execute o comando a seguir para visualizar a ajuda completa:

    jindo table -help archiveTable
  3. Arquive tabelas ou partições com a seguinte sintaxe:

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

Parâmetros

Parâmetro

Descrição

Obrigatório

-t <dbName.tableName>

Tabela a arquivar, no formato database_name.table_name. Compatível com tabelas particionadas e não particionadas.

Sim

-i / -a / -ca

Classe de armazenamento de destino: -i para Infrequent Access (IA), -a para Archive, -ca para Cold Archive. Consulte Transições de classe de armazenamento para ver as regras de exclusão.

Sim

-c "<condition>" / -fullTable

Escopo do arquivamento: use -fullTable para toda a tabela ou -c "<condition>" para arquivar apenas as partições correspondentes. Aceita operadores de comparação padrão.

Sim

-b / -before <before days>

Arquiva somente tabelas ou partições criadas há pelo menos N dias.

Não

-p / -parallel <parallelism>

Número de threads paralelas para arquivamento.

Não

-mr / -mapReduce

Usa Hadoop MapReduce em vez de multithreading local.

Não

-e / -explain

Execução simulada: lista as partições que seriam arquivadas sem aplicar alterações.

Não

-w / -workingDir <directory>

Diretório de trabalho para o job MapReduce. Requer permissões de leitura e escrita. O sistema cria arquivos temporários durante o job e os exclui automaticamente ao final.

Não

-l / -logDir <directory>

Diretório para arquivos de log.

Não

Exemplos

Visualizar quais partições serão arquivadas (execução simulada):

-archiveTable -t mydb.mytable -a -c " ds > 'd' " -e

Arquivar todas as partições de uma tabela para Cold Archive:

-archiveTable -t mydb.mytable -ca -fullTable

Arquivar partições em que a coluna ds é maior que 'd', criadas há mais de 30 dias:

-archiveTable -t mydb.mytable -a -c " ds > 'd' " -b 30

Desarquivar tabelas ou partições

Use o comando unarchiveTable para restaurar dados de tabelas do OSS a partir do armazenamento arquivado. A sintaxe é semelhante à do archiveTable, com duas diferenças: a flag de classe de armazenamento (-i/-a/-o/-cr) é opcional e a flag -notWait está disponível para restaurações de Cold Archive.

  1. Faça login no cluster via SSH. Consulte Log on to a cluster.

  2. Execute o comando a seguir para visualizar a ajuda completa:

    jindo table -help unarchiveTable
  3. Desarquive tabelas ou partições com a seguinte sintaxe:

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

Parâmetros específicos do unarchiveTable

Todos os parâmetros do archiveTable se aplicam. Os parâmetros a seguir são diferentes ou novos:

Parâmetro

Descrição

Obrigatório

-i / -a / -o / -cr

Classe de armazenamento de destino após o desarquivamento. Se omitido, os dados são restaurados para Standard. Veja Transições de classe de armazenamento para mais detalhes.

Não

-notWait

Válido apenas ao desarquivar dados. Envie a solicitação de desarquivamento para dados Cold Archive e retorna imediatamente, sem aguardar a conclusão.

Não

Exemplos

Visualizar quais partições serão restauradas (execução simulada):

-archiveTable -t mydb.mytable -a -c " ds > 'd' " -e

Restaurar todas as partições para o armazenamento Standard:

-archiveTable -t mydb.mytable -fullTable

Restaurar partições para o armazenamento Archive, ignorando arquivos Standard e IA:

-archiveTable -t mydb.mytable -a -c " ds > 'd' "

Restaurar temporariamente partições Cold Archive sem alterar a classe de armazenamento:

-archiveTable -t mydb.mytable -o -c " ds > 'd' "

Envie uma solicitação de desarquivamento de Cold Archive sem aguardar:

-archiveTable -t mydb.mytable -fullTable -notWait

Verificar se os arquivos Archive ou Cold Archive foram totalmente restaurados:

-archiveTable -t mydb.mytable -cr -fullTable

Próximos passos

  • Para crie um cluster EMR, consulte Create a cluster.

  • Para usar os comandos originais de arquivamento do JindoTable (requer Jindo Namespace Service), consulte Use JindoTable.