Todos os produtos
Search
Central de documentação

E-MapReduce:O comando JindoTable MoveTo

Última atualização: Sep 21, 2026

O comando MoveTo migra dados de tabelas e partições para um novo caminho de armazenamento.

Pré-requisitos

  • O Java Development Kit (JDK) 8 está instalado.

  • Um cluster foi criado. Para mais informações, consulte Create a cluster.

Visão geral

O comando MoveTo copia os dados subjacentes e atualiza automaticamente os metadados para migrar completamente os dados de tabelas e partições para um novo caminho. Use condições de filtro para copiar múltiplas partições simultaneamente. Salvaguardas integradas protegem a integridade dos dados durante a migração.

Limites

O comando MoveTo é compatível com clusters que executam EMR V3.36.0 ou posterior, ou EMR V5.2.0 ou posterior.

Usar o comando MoveTo

Importante

Apenas um processo MoveTo pode ser executado em um cluster por vez. Se já houver um processo MoveTo em execução, o novo processo não conseguirá obter o lock de configuração e será encerrado. O sistema notifica você sobre o processo em andamento. Nesse caso, interrompa o processo em execução e inicie um novo, ou aguarde a conclusão do processo atual.

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

  2. Execute o comando a seguir para visualize as informações de ajuda.

    jindo table -help moveTo

    As informações de ajuda são semelhantes ao seguinte:

    <dbName.tableName>      The table to move.
    <destination path>      The destination base directory which is always at the
                              same level of a 'table location', where the moved
                              partitions or un-partitioned data would located in.
    <condition>/-fullTable  A filter condition to determine which partitions should
                              be moved, supporting common operators (like '>') and
                              built-in UDFs (like to_date) (UDFs not supported
                              yet...), while -fullTable means that all partitions (or
                              a whole un-partitioned table) should be moved. One but
                              only one option must be specified among -c
                              "<condition>" and -fullTable.
    <before days>           Optional, saying that table/partitions should be moved
                              only when they are created (not updated or modified)
                              more than some days before from now.
    <parallelism>           The maximum concurrency when copying partitions, 1 by
                              default.
            <OSS storage policy>: Storage policy for OSS destination, which can be Standard
      (by default), IA, Archive, or ColdArchive. Not applicable for destinations other
      than OSS. NOTE: if you are willing to use ColdArchive storage policy, please
      make sure that Cold Archive has been enabled for your OSS bucket.
    
    -o/-overWrite     Overwriting the final paths where the data would be moved.
                        For partitioned tables this overwrites partitions' locations
                        which are subdirectories of <destination path>; for
                        un-partitioned table this overwrites the <destination path>
                        itself.
    -r/-removeSource  Let the source data be removed when the corresponding
                        table/partition is successfully moved to the new destination.
                        Otherwise (by default), the source data would be left as it
                        was.
    -skipTrash        Applicable only when [-r/-removeSource] is enabled. If
                        present, source data would be immediately deleted from the
                        file system, bypassing the trash.
    -e/-explain       If present, the command would not really move data, but only
                        prints the table/partitions that would be moved for given
                        conditions.
    <log directory>   A directory to locate log files, '/tmp/<current user>/' by
                        default.

    A sintaxe do comando MoveTo é a seguinte:

    jindo table -moveTo \
      -t <dbName.tableName> \
      -d <destination path> \
      [-c "<condition>" | -fullTable] \
      [-b/-before <before days>] \
      [-p/-parallel <parallelism>] \
      [-s/-storagePolicy <OSS storage policy>] \
      [-o/-overWrite] \
      [-r/-removeSource] \
      [-skipTrash] \
      [-e/-explain] \
      [-l/-logDir <log directory>]
    Parâmetro Descrição Obrigatório
    -t <dbName.tableName> Nome da tabela a ser movida. Use o formato database_name.table_name.

    O nome do banco de dados e o nome da tabela são separados por um ponto (.). A tabela pode ser particionada ou não particionada.

    Sim
    -d <destination path> O caminho de destino. Independentemente de você mover partições ou uma tabela inteira não particionada, esse caminho corresponde ao local no nível da tabela. Ao mover uma partição, o caminho completo da partição é o caminho de destino mais o nome da partição, como <destination path>/p1=v1/p2=v2/. Sim
    -c "<condition>" | -fullTable É obrigatório especifique -c "<condition>" ou -fullTable.
    • Com -fullTable, toda a tabela é movida. A tabela pode ser particionada ou não particionada.
    • Com -c "<condition>", uma condição de filtro é aplicada para selecione as partições a mover. Operadores comuns, como o sinal de maior que (>), são compatíveis.

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

    Não
    -b/before <before days> Move apenas tabelas ou partições criadas há mais de um número especificado de dias. Não
    -p/-parallel <parallelism> O grau de paralelismo da operação de migração. Não
    -s/-storagePolicy <OSS storage policy> A política de armazenamento para dados copiados para o OSS. As seguintes políticas estão disponíveis:
    • Standard: (Archive Storage).
    • IA: armazenamento de Acesso Infrequente (IA).
    • Storage class: Standard
    • ColdArchive: armazenamento Cold Archive.
      Nota Certifique-se de que esse recurso esteja ativado no seu bucket OSS antes de usar esta política.
    Não
    -o/-overWrite Define se o caminho de destino será sobrescrito. Para uma tabela particionada, esta opção limpa apenas os caminhos das partições a serem movidas, não o caminho completo da tabela. Não
    -r/-removeSource Define se os dados de origem serão removidos após a conclusão da migração e a atualização dos metadados. Para uma tabela particionada, esta opção remove apenas os caminhos de origem das partições que foram movidas com sucesso. Não
    -skipTrash Define se a Lixeira será ignorada ao remover o caminho de origem.
    Nota Este parâmetro é aplicável apenas quando -r/-removeSource é especificado.
    Não
    -e/-explain Quando especificado, o comando é executado em modo de explicação. Ele lista as partições que seriam movidas, mas não move nenhum dado de fato. Não
    -l/-logDir <log directory> Especifica o diretório para os arquivos de log. Não

Configure o diretório de lock

A ferramenta MoveTo utiliza um lock de processo, que requer um caminho no Hadoop Distributed File System (HDFS) para armazenar o arquivo LOCK. Por padrão, o caminho é

hdfs:///tmp/jindotable-lock/

.

Importante

O caminho para o arquivo LOCK deve ser um caminho HDFS. Caso você não tenha as permissões necessárias para o caminho padrão, siga as etapas abaixo para configure um caminho personalizado.

  1. Acesse a página do service HDFS.

    1. Faça login no Alibaba Cloud E-MapReduce console.

    2. Na barra de menus superior, selecione a região e o grupo de recursos onde seu cluster está localizado.

    3. Clique em Clusters.

    4. Na página Clusters, clique em Details na linha do cluster desejado.

    5. No painel de navegação à esquerda, escolha Services > HDFS.

  2. Modifique a configuração.

    1. Na página do service HDFS, clique em Configure. Em seguida, clique na aba hdfs-site ou core-site.

    2. No canto superior direito, clique em Custom Configuration.

    3. Na caixa de diálogo Add Configuration Item, adicione o item de configuração jindotable.moveto.tablelock.base.dir e defina seu valor como um caminho HDFS existente.

      Importante

      Antes de configure um diretório de lock personalizado, certifique-se de que nenhum processo MoveTo esteja em execução em qualquer nó do cluster. Caso contrário, a operação MoveTo poderá falhar ou causar corrupção de dados.

  3. Salve a configuração.

    1. No canto superior direito, clique em Save.

    2. Na caixa de diálogo Confirm, insira o motivo da alteração e clique em OK.