Todos os produtos
Search
Central de documentação

MaxCompute:Comandos do Tunnel

Última atualização: Aug 19, 2026

Para transferir grandes volumes de dados entre seu ambiente local e o MaxCompute, execute os comandos do Tunnel. Esses comandos permitem transferir dados em lote ou incrementais, aumentando a eficiência e a segurança durante transferências em larga escala. Este tópico descreve como utilizar os comandos do Tunnel para fazer upload e download de dados.

Descrição dos comandos

  • Sintaxe

    tunnel <subcommand> [options] [args]

    Opções

        upload (u)
        download (d)
        resume (r)
        show (s)
        purge (p)
        help (h)
        upsert(us)
  • Parâmetros

    • upload: faz upload de dados para uma tabela do MaxCompute. É possível enviar arquivos para apenas uma tabela ou uma partição por vez. Em tabelas particionadas, especifique a partição de destino dos dados. Para tabelas com múltiplos níveis de particionamento, especifique obrigatoriamente a partição do nível mais baixo.

      -- Upload data from log.txt in the MaxCompute client's bin directory to the p1="b1",p2="b2" partition of the test_table in the test_project.
      tunnel upload log.txt test_project.test_table/p1="b1",p2="b2";
      
      -- Upload data from log.txt to the test_table table. The --scan=true parameter validates the data in log.txt against the table schema. If the data does not match, an error is reported and the upload is aborted.
      tunnel upload  log.txt  test_table --scan=true;
      
      -- Upload data from log.txt, located in a different path, to the p1="b1",p2="b2" partition of the test_table in the test_project.
      tunnel upload D:\test\log.txt test_project.test_table/p1="b1",p2="b2";
    • download: baixe dados de uma tabela do MaxCompute. O download pode ser feito de apenas uma tabela ou partição para um único arquivo local por vez. Em tabelas particionadas, especifique a partição de origem dos dados. Para tabelas com múltiplos níveis de particionamento, especifique obrigatoriamente a partição do nível mais baixo.

      -- Download data from the p1="b1",p2="b2" partition of test_project.test_table to the local file test_table.txt.
      tunnel download  test_project.test_table/p1="b1",p2="b2"  test_table.txt;
      -- Download data from the p1="b1",p2="b2" partition of test_project.test_table to a file at a different local path.
      tunnel download  test_project.test_table/p1="b1",p2="b2"  D:\test\test_table.txt;
    • resume: retoma a transferência de arquivos ou diretórios interrompida por falha na rede ou erro no Tunnel. Este comando serve exclusivamente para retomar uploads de dados. Cada operação de download ou upload corresponde a uma sessão. Antes de executar este comando, especifique o session ID no comando resume.

      tunnel resume;
    • show: visualize informações históricas de tarefas.

      -- Display the commands used in the last five data uploads or downloads. 
      tunnel show history -n 5;
      -- Display the logs of the last data upload or download. 
      tunnel show log;
    • purge: exclui arquivos de log do Tunnel do diretório da sessão. Por padrão, logs com mais de três dias são removidos.

      -- Clear logs from the last five days. 
      tunnel purge 5;
    • help: obtém informações de ajuda.

    • upsert: utiliza as semânticas UPDATE e INSERT para gravar dados. Apenas tabelas Transaction Table 2.0 suportam gravação de dados via instrução UPSERT.

      Caso não existam dados correspondentes na tabela de destino, novos registros serão inseridos. Se os dados já existirem, eles serão atualizados na tabela.

      -- Upload data in the log.txt file to the p1="b1" and p2="b2" partitions of the test_table table that has two levels of partitions in the test_project project. The log.txt file is saved in the bin directory of the MaxCompute client. 
      tunnel upsert log.txt test_project.test_table/p1="b1",p2="b2";

Upload

  • Descrição

    Envia dados locais para uma tabela do MaxCompute no modo de anexação.

    Nota

    Modo de anexação: se os dados que você deseja importar já existirem na tabela do MaxCompute, eles não serão sobrescritos ao executar o comando Upload. Nesse caso, tanto os dados existentes quanto os importados coexistirão na tabela.

  • Sintaxe

    tunnel upload [options] <path> <[project.]table[/partition]>

    Formato

    Available options:
     -acp,-auto-create-partition <ARG>   auto create target partition if not
                                         exists, default false
     -bs,-block-size <ARG>               block size in MiB, default 100
     -c,-charset <ARG>                   specify file charset, default ignore.
                                         set ignore to download raw data
     -cf,-csv-format <ARG>               use csv format (true|false), default
                                         false. When uploading in csv format,
                                         file splitting not supported.
     -cp,-compress <ARG>                 compress, default true
     -dbr,-discard-bad-records <ARG>     specify discard bad records
                                         action(true|false), default false
     -dfp,-date-format-pattern <ARG>     specify date format pattern, default
                                         yyyy-MM-dd HH:mm:ss
     -fd,-field-delimiter <ARG>          specify field delimiter, support
                                         unicode, eg \u0001. default ","
     -h,-header <ARG>                    if local file should have table
                                         header, default false
     -mbr,-max-bad-records <ARG>         max bad records, default 1000
     -ni,-null-indicator <ARG>           specify null indicator string,
                                         default ""(empty string)
     -ow,-overwrite <true | false>       overwrite specified table or
                                         partition, default: false
     -rd,-record-delimiter <ARG>         specify record delimiter, support
                                         unicode, eg \u0001. default "\r\n"
     -s,-scan <ARG>                      specify scan file
                                         action(true|false|only), default true
     -sd,-session-dir <ARG>              set session dir, default
                                         D:\software\odpscmd_public\plugins\dship
     -ss,-strict-schema <ARG>            specify strict schema mode. If false,
                                         extra data will be abandoned and
                                         insufficient field will be filled
                                         with null. Default true
     -t,-threads <ARG>                   number of threads, default 1
     -te,-tunnel_endpoint <ARG>          tunnel endpoint
     -time,-time <ARG>                   keep track of upload/download elapsed
                                         time or not. Default false
     -tz,-time-zone <ARG>                time zone, default local timezone:
                                         Asia/Shanghai
    Example:
        tunnel upload log.txt test_project.test_table/p1="b1",p2="b2"
  • Parâmetros

    • Parâmetros obrigatórios

      • path

        Defina o caminho e o nome do arquivo de dados para upload.

        Existem duas formas de definir o caminho do arquivo: se ele estiver no diretório bin do cliente MaxCompute, defina o parâmetro path como filename.extension. Caso esteja em outro diretório, como D:\test, configure o parâmetro path com o caminho absoluto, por exemplo, D:\test\filename.extension. A ferramenta de linha de comando do Tunnel não possui limite de tamanho de arquivo e suporta o upload de arquivos grandes. Para otimizar esse processo, utilize o parâmetro -bs para ajustar o tamanho de cada bloco de dados. O valor padrão é 100 MiB.

        Nota

        No macOS, o valor de path deve ser um caminho absoluto. Por exemplo, se o arquivo estiver no diretório bin do cliente MaxCompute, defina o parâmetro path com um caminho absoluto, como /Users/username/MaxCompute/bin/filename.extension.

      • [project.]table[/partition]

        Indica o nome da tabela de destino para o upload. Em tabelas particionadas, é necessário especificar a partição do nível mais baixo. Se a tabela não pertencer ao projeto atual, informe também o projeto onde ela está localizada.

    • Parâmetros opcionais

      • -acp

        Defina a partição de destino do upload. Se a partição especificada não existir, ela será criada automaticamente. Valor padrão: False.

      • -bs

        Determina o tamanho do bloco de dados enviado pelo Tunnel em cada operação. Valor padrão: 100 MiB (1 MiB = 1024 × 1024 bytes).

      • -c

        Especifique o formato de codificação do arquivo de dados. Por padrão, este parâmetro não é definido e os dados brutos são baixados.

      • -cf

        Indica se o arquivo está no formato CSV. Valor padrão: False.

        Nota

        O comando Upload aceita apenas arquivos TXT e CSV. Arquivos TXT são enviados por padrão. Para fazer upload de um arquivo CSV, configure o parâmetro -cf e baixe a versão mais recente do MaxCompute client.

      • -cp

        Defina se o arquivo de dados local deve ser compactado antes do upload para o MaxCompute, visando reduzir o tráfego de rede. Valor padrão: True.

      • -dbr

        Determina se dados incorretos (dirty data), como colunas adicionais, colunas ausentes ou tipos de dados incompatíveis, devem ser ignorados. Valor padrão: False.

        • True: ignora todos os dados que não correspondem à definição da tabela. Por padrão, 1000 registros são descartados. Para alterar essa quantidade, utilize o parâmetro -mbr.

        • False: retorna um erro ao detectar dados incorretos, garantindo que os dados originais da tabela de destino não sejam contaminados.

      • -dfp

        Defina o formato dos dados DATETIME. O formato padrão é yyyy-MM-dd HH:mm:ss. Para especificar dados DATETIME com precisão de milissegundos, utilize o formato yyyy-MM-dd HH:mm:ss.SSS. Para mais informações sobre o tipo de dado DATETIME, consulte Data type editions.

      • -fd

        Especifique o delimitador de colunas utilizado no arquivo de dados local. Valor padrão: vírgula (,).

      • -h

        Indica se o arquivo de dados possui um cabeçalho de tabela. Valor padrão: False, indicando ausência de cabeçalho. Se definido como True, o arquivo poderá conter um cabeçalho, que será ignorado pelo sistema durante o upload, iniciando a importação a partir da segunda linha.

      • -mbr

        Estabelece o número máximo permitido de registros de dados incorretos. Este parâmetro deve ser usado em conjunto com -dbr e só tem efeito quando -dbr estiver definido como True. Se a quantidade de dados incorretos ultrapassar o valor especificado, o upload será interrompido. Valor padrão: 1000.

      • -ni

        Defina o identificador para dados NULL. Valor padrão: string vazia.

      • -ow

        Determina se os dados enviados sobrescreverão a tabela ou partição. Valor padrão: False, o que indica upload no modo de anexação. O exemplo abaixo ilustra esse comportamento.

        -- Create a partitioned table.
        CREATE TABLE IF NOT EXISTS sale_detail(
              shop_name     STRING,
              customer_id   STRING,
              total_price   DOUBLE)
        PARTITIONED BY (sale_date STRING,region STRING);
        
        ALTER TABLE sale_detail ADD PARTITION (sale_date='201312', region='hangzhou');
        
        -- Prepare a local data file D:\data.txt with the following content:
        shopx,x_id,100
        shopy,y_id,200
        
        -- Upload data to the partitioned table.
        tunnel upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou;
        
        -- Query the sale_detail table.
        SELECT * FROM sale_detail;
        
        -- The following result is returned:
        +------------+-------------+-------------+------------+------------+
        | shop_name  | customer_id | total_price | sale_date  | region     |
        +------------+-------------+-------------+------------+------------+
        | shopx      | x_id        | 100.0       | 201312     | hangzhou   |
        | shopy      | y_id        | 200.0       | 201312     | hangzhou   |
        +------------+-------------+-------------+------------+------------+
        
        -- Modify the content of data.txt to the following:
        shopx,x_id,300
        shopy,y_id,400
        
        -- Overwrite the data in the partition.
        tunnel upload -ow true data.txt sale_detail/sale_date=201312,region=hangzhou;
        
        -- Query the sale_detail table.
        SELECT * FROM sale_detail;
        
        -- The following result is returned:
        +------------+-------------+-------------+------------+------------+
        | shop_name  | customer_id | total_price | sale_date  | region     |
        +------------+-------------+-------------+------------+------------+
        | shopx      | x_id        | 300.0       | 201312     | hangzhou   |
        | shopy      | y_id        | 400.0       | 201312     | hangzhou   |
        +------------+-------------+-------------+------------+------------+
      • -rd

        Defina o delimitador de linhas do arquivo de dados local. Valor padrão: \r\n.

      • -s

        Controla a verificação prévia do arquivo de dados local. Valor padrão: True.

        • True: o sistema valida os dados e inicia a importação somente se o formato estiver correto.

        • False: a importação ocorre sem verificação prévia.

        • Only: o sistema apenas verifica os dados locais, sem realizar a importação após a validação.

      • -sd

        Defina o diretório da sessão.

      • -ss

        Ativa o modo de esquema estrito. Valor padrão: True. Se definido como False, dados excedentes serão descartados e campos não especificados serão preenchidos com NULL.

      • -t

        Configure a quantidade de threads. Valor padrão: 1.

      • -te

        Especifique o endpoint do Tunnel.

      • -time

        Habilita o rastreamento do tempo de upload. Valor padrão: False.

      • -tz

        Defina o fuso horário. Valor padrão: fuso horário local, como Asia/Shanghai. Para mais informações sobre fusos horários, consulte Time zones.

Show

  • Visualize registros históricos.

    • Sintaxe

      tunnel show history [-n <number>];

      -n <number>: defina a quantidade de entradas do histórico a serem exibidas.

    • Exemplos

      Exemplo 1: visualizar registros históricos. Por padrão, 500 registros são mantidos.

      tunnel show history;

      O seguinte resultado é retornado:

      20230505xxxxxxxxxxxxxx0b0d5b3c  bad     'upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou -dbr true -time true'
      20230505xxxxxxxxxxxxxx0ad720a3  failed  'upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou -time true'
      20230505xxxxxxxxxxxxxx0ad5ca68  bad     'upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou -dbr true'
      ......

      Exemplo 2: listar os comandos utilizados nas últimas cinco operações de upload ou download.

      tunnel show history -n 5;

      O seguinte resultado é retornado:

      20230505xxxxxxxxxxxxxx0aa48c4b  success 'download sale_detail/sale_date=201312,region=hangzhou result.txt'
      20230505xxxxxxxxxxxxxx0aa6165c  success 'download sale_detail/sale_date=201312,region=hangzhou result.txt'
      20230505xxxxxxxxxxxxxx0af11472  failed  'upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou -s false'
      20230505xxxxxxxxxxxxxx0b464374  success 'upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou -s false'
      20230505xxxxxxxxxxxxxx02dbb6bd  failed  'upload d:\data.txt sale_detail/sale_date="201312",region="hangzhou" -s false'
  • Visualize os logs da última operação de upload ou download.

    tunnel show log;

Resume

  • Descrição

    Retoma a execução de operações históricas. Apenas uploads de dados podem ser retomados.

  • Sintaxe

    tunnel resume <session_id> [-force];
  • Parâmetros

    • session_id

      Identifica a sessão cuja falha ocorreu durante o upload. Este parâmetro é obrigatório.

    • -f

      Força a retomada da execução de operações históricas. Por padrão, este parâmetro é omitido.

  • Exemplo

    Execute o comando abaixo para retomar a sessão com falha no upload. Neste exemplo, 20150610xxxxxxxxxxx70a002ec60c representa o ID da sessão que falhou.

    tunnel resume 20150610xxxxxxxxxxx70a002ec60c -force;
    
    start resume
    20150610xxxxxxxxxxx70a002ec60c
    Upload session: 20150610xxxxxxxxxxx70a002ec60c
    Start upload:d:\data.txt
    Resume 1 blocks 
    2015-06-10 16:46:42     upload block: '1'
    2015-06-10 16:46:42     upload block complete, blockid=1
    upload complete, average speed is 0 KB/s
    OK

Download

  • Descrição

    Baixe dados de tabelas do MaxCompute ou resultados de execução de instâncias específicas para um diretório local.

    É necessária a permissão Download para utilizar o Tunnel nessa operação. Caso não possua essa permissão, solicite ao proprietário do projeto ou a um usuário com a função Super_Administrator que realize a autorização. Para mais detalhes sobre como conceder a permissão Download, consulte Policy-based access control.

  • Sintaxe

    odps@ project_name>tunnel help download;
    usage: tunnel download [options] <[project.]table[/partition]> <path>
    
                  download data to local file
     -c,-charset <ARG>                 specify file charset, default ignore.
                                       set ignore to download raw data
     -cf,-csv-format <ARG>             use csv format (true|false), default
                                       false. When uploading in csv format,
                                       file splitting not supported.
     -ci,-columns-index <ARG>          specify the columns index(starts from
                                       0) to download, use comma to split each
                                       index
     -cn,-columns-name <ARG>           specify the columns name to download,
                                       use comma to split each name
     -cp,-compress <ARG>               compress, default true
     -dfp,-date-format-pattern <ARG>   specify date format pattern, default
                                       yyyy-MM-dd HH:mm:ss
     -e,-exponential <ARG>             When download double values, use
                                       exponential express if necessary.
                                       Otherwise at most 20 digits will be
                                       reserved. Default false
     -fd,-field-delimiter <ARG>        specify field delimiter, support
                                       unicode, eg \u0001. default ","
     -h,-header <ARG>                  if local file should have table header,
                                       default false
        -limit <ARG>                   specify the number of records to
                                       download
     -ni,-null-indicator <ARG>         specify null indicator string, default
                                       ""(empty string)
     -rd,-record-delimiter <ARG>       specify record delimiter, support
                                       unicode, eg \u0001. default "\r\n"
     -sd,-session-dir <ARG>            set session dir, default
                                       D:\software\odpscmd_public\plugins\dship
     -t,-threads <ARG>                 number of threads, default 1
     -te,-tunnel_endpoint <ARG>        tunnel endpoint
     -time,-time <ARG>                 keep track of upload/download elapsed
                                       time or not. Default false
     -tz,-time-zone <ARG>              time zone, default local timezone:
                                       Asia/Shanghai
    usage: tunnel download [options] instance://<[project/]instance_id> <path>
    
                  download instance result to local file
     -c,-charset <ARG>                 specify file charset, default ignore.
                                       set ignore to download raw data
     -cf,-csv-format <ARG>             use csv format (true|false), default
                                       false. When uploading in csv format,
                                       file splitting not supported.
     -ci,-columns-index <ARG>          specify the columns index(starts from
                                       0) to download, use comma to split each
                                       index
     -cn,-columns-name <ARG>           specify the columns name to download,
                                       use comma to split each name
     -cp,-compress <ARG>               compress, default true
     -dfp,-date-format-pattern <ARG>   specify date format pattern, default
                                       yyyy-MM-dd HH:mm:ss
     -e,-exponential <ARG>             When download double values, use
                                       exponential express if necessary.
                                       Otherwise at most 20 digits will be
                                       reserved. Default false
     -fd,-field-delimiter <ARG>        specify field delimiter, support
                                       unicode, eg \u0001. default ","
     -h,-header <ARG>                  if local file should have table header,
                                       default false
        -limit <ARG>                   specify the number of records to
                                       download
     -ni,-null-indicator <ARG>         specify null indicator string, default
                                       ""(empty string)
     -rd,-record-delimiter <ARG>       specify record delimiter, support
                                       unicode, eg \u0001. default "\r\n"
     -sd,-session-dir <ARG>            set session dir, default
                                       D:\software\odpscmd_public\plugins\dshi
     -t,-threads <ARG>                 number of threads, default 1
     -te,-tunnel_endpoint <ARG>        tunnel endpoint
     -time,-time <ARG>                 keep track of upload/download elapsed
                                       time or not. Default false
     -tz,-time-zone <ARG>              time zone, default local timezone:
                                       Asia/Shanghai
    Example:
        tunnel download test_project.test_table/p1="b1",p2="b2" log.txt // Download data from a specific table.
        tunnel download instance://test_project/test_instance log.txt   // Download the execution result of a specific instance.
  • Parâmetros

    • Parâmetros obrigatórios

      • path

        Defina o local onde o arquivo de dados baixado será salvo.

        Há duas opções para o caminho de salvamento: baixe diretamente para o diretório bin do cliente MaxCompute, definindo o parâmetro path como filename.extension. Alternativamente, salve em outro local, como a pasta de teste na unidade D, configurando o parâmetro path para D:\test\filename.extension.

      • [project.]table[/partition]

        Indica o nome da tabela de origem do download. Em tabelas particionadas, especifique a partição do nível mais baixo. Se a tabela não pertencer ao projeto atual, informe também o projeto onde ela está localizada.

      • [project/]instance_id

        Identifica uma instância específica para baixar seu resultado de execução.

    • Parâmetros opcionais

      • -c

        Especifique a codificação do arquivo de dados local. Por padrão, este parâmetro é omitido.

      • -cf

        Indica se o arquivo está no formato CSV. Valor padrão: False.

        Nota

        Apenas arquivos TXT e CSV podem ser baixados. Arquivos TXT são o padrão. Para baixar em CSV, defina o parâmetro -cf como true e baixe a versão mais recente do MaxCompute client. Ao ativar -cf, o delimitador de arquivo será obrigatoriamente a vírgula (,), tornando ineficaz qualquer valor definido no parâmetro -fd.

      • -ci

        Selecione os índices das colunas a serem baixadas, começando do zero. Separe os índices por vírgulas (,).

      • -cn

        Selecione os nomes das colunas a serem baixadas. Separe os nomes por vírgulas (,).

      • -cp

        Defina se o arquivo local deve ser compactado antes do download para reduzir o tráfego de rede. Valor padrão: True.

      • -dfp

        Defina o formato dos dados DATETIME. O formato padrão é yyyy-MM-dd HH:mm:ss.

      • -e

        Controla a representação de dados do tipo DOUBLE usando notação exponencial. Caso contrário, serão mantidos no máximo 20 dígitos. Valor padrão: False.

      • -fd

        Especifique o delimitador de colunas para o arquivo de dados local. Valor padrão: vírgula (,).

      • -h

        Indica se o arquivo de dados possui cabeçalho. Valor padrão: False, indicando ausência de cabeçalho. Se definido como True, o arquivo incluirá um cabeçalho.

        Nota

        Os parâmetros -h=true e threads>1 são mutuamente exclusivos. threads>1 significa que o número de threads é maior que 1.

      • -limit

        Limita a quantidade de linhas a serem baixadas.

      • -ni

        Defina o identificador para dados NULL. Valor padrão: string vazia.

      • -rd

        Defina o delimitador de linhas do arquivo de dados local. Valor padrão: \r\n.

      • -sd

        Defina o diretório da sessão.

      • -t

        Configure a quantidade de threads. Valor padrão: 1.

      • -te

        Especifique o endpoint do Tunnel.

      • -time

        Habilita o rastreamento do tempo de download. Valor padrão: False.

      • -tz

        Defina o fuso horário. O fuso horário local é usado por padrão, como Asia/Shanghai.

Purge

  • Descrição

    Remove arquivos de log do Tunnel do diretório da sessão.

  • Sintaxe

    tunnel purge [n];
  • Parâmetros

    n: remove arquivos de log do Tunnel anteriores ao número de dias especificado. O valor padrão é 3.

Upsert

  • Descrição

    Utiliza as semânticas UPDATE e INSERT para gravar dados. Caso não existam dados correspondentes na tabela de destino, novos registros serão inseridos. Se os dados já existirem, eles serão atualizados na tabela.

    Nota
    • Para executar o comando Upsert usando o cliente MaxCompute (odpscmd), utilize a versão 0.47 ou superior.

    • Apenas tabelas Transaction Table 2.0 suportam gravação de dados via instrução UPSERT.

  • Sintaxe

    tunnel upsert[options] <path> <[project.]table[/partition]>

    Formato:

    Available options:
    -acp,-auto-create-partition <ARG>   auto create target partition if not
                                         exists, default false
     -bs,-block-size <ARG>               block size in MiB, default 100
     -c,-charset <ARG>                   specify file charset, default ignore.
                                         set ignore to download raw data
     -cf,-csv-format <ARG>               use csv format (true|false), default
                                         false. When uploading in csv format,
                                         file splitting not supported.
     -cp,-compress <ARG>                 compress, default true
     -dbr,-discard-bad-records <ARG>     specify discard bad records
                                         action(true|false), default false
     -dfp,-date-format-pattern <ARG>     specify date format pattern, default
                                         yyyy-MM-dd HH:mm:ss
     -fd,-field-delimiter <ARG>          specify field delimiter, support
                                         unicode, eg \u0001. default ","
     -h,-header <ARG>                    if local file should have table
                                         header, default false
     -mbr,-max-bad-records <ARG>         max bad records, default 1000
     -ni,-null-indicator <ARG>           specify null indicator string,
                                         default ""(empty string)
     -qn,-quota_name <ARG>               quota name
     -rd,-record-delimiter <ARG>         specify record delimiter, support
                                         unicode, eg \u0001. default "\n"
     -sd,-session-dir <ARG>              set session dir, default
                                         /Users/dingxin/Documents/debug/plugin
                                         s/dship
     -ss,-strict-schema <ARG>            specify strict schema mode. If false,
                                         extra data will be abandoned and
                                         insufficient field will be filled
                                         with null. Default true
     -te,-tunnel_endpoint <ARG>          tunnel endpoint
     -time,-time <ARG>                   keep track of upload/download elapsed
                                         time or not. Default false
     -tz,-time-zone <ARG>                time zone, default local timezone:
                                         Asia/Shanghai
    Example:
        tunnel upsert log.txt test_project.test_table/p1="b1",p2="b2"
  • Parâmetros

    • Parâmetros obrigatórios

      • path

        Defina o caminho e o nome do arquivo de dados para upload.

        Existem duas formas de definir o caminho do arquivo: se ele estiver no diretório bin do cliente MaxCompute, defina o parâmetro path como filename.extension. Caso esteja em outro diretório, como D:\test, configure o parâmetro path com o caminho absoluto, por exemplo, D:\test\filename.extension. O comando Tunnel não possui limite de tamanho de arquivo e suporta o upload de arquivos maiores que 10 MB. Para otimizar esse processo, utilize o parâmetro -bs para ajustar o tamanho de cada bloco de dados (o padrão é 100 MiB).

        Nota

        No macOS, o valor do parâmetro path deve ser obrigatoriamente um caminho absoluto. Por exemplo, se os arquivos de dados estiverem salvos no diretório bin do cliente MaxCompute, defina o parâmetro path com um valor no formato D:\MaxCompute\bin \File name.File name extension.

      • [project.]table[/partition]

        Indica o nome da tabela de destino para o upload. Em tabelas particionadas, é necessário especificar a partição do nível mais baixo. Se a tabela não pertencer ao projeto atual, informe também o projeto onde ela está localizada.

    • Parâmetros opcionais

      • -acp

        Defina a partição de destino do upload. Se a partição especificada não existir, ela será criada automaticamente. Valor padrão: False.

      • -bs

        Determina o tamanho do bloco de dados enviado pelo Tunnel em cada operação. Valor padrão: 100 MiB (1 MiB = 1024 × 1024 bytes).

      • -c

        Especifique o formato de codificação do arquivo de dados. Por padrão, este parâmetro não é definido e os dados brutos são baixados.

      • -cf

        Indica se o arquivo está no formato CSV. Valor padrão: False.

        Nota

        A instrução UPSERT aceita apenas arquivos TXT e CSV. Arquivos TXT são enviados por padrão. Para fazer upload de um arquivo CSV, configure o parâmetro -cf e baixe a versão mais recente do MaxCompute client.

      • -cp

        Defina se o arquivo de dados local deve ser compactado antes do upload para o MaxCompute, visando reduzir o tráfego de rede. Valor padrão: True.

      • -dbr

        Determina se dados incorretos (dirty data), como colunas adicionais, colunas ausentes ou tipos de dados incompatíveis, devem ser ignorados. Valor padrão: False.

        • True: ignora todos os dados que não correspondem à definição da tabela. Por padrão, 1000 registros são descartados. Para alterar essa quantidade, utilize o parâmetro -mbr.

        • False: retorna um erro ao detectar dados incorretos, garantindo que os dados originais da tabela de destino não sejam contaminados.

      • -dfp

        Defina o formato dos dados DATETIME. O formato padrão é yyyy-MM-dd HH:mm:ss. Para especificar dados DATETIME com precisão de milissegundos, utilize o formato yyyy-MM-dd HH:mm:ss.SSS. Para mais informações sobre o tipo de dado DATETIME, consulte Data type editions.

      • -fd

        Especifique o delimitador de colunas utilizado no arquivo de dados local. Valor padrão: vírgula (,).

      • -h

        Indica se o arquivo de dados possui um cabeçalho de tabela. Valor padrão: False, indicando ausência de cabeçalho. Se definido como True, o arquivo poderá conter um cabeçalho, que será ignorado pelo sistema durante o upload, iniciando a importação a partir da segunda linha.

      • -mbr

        Estabelece o número máximo permitido de registros de dados incorretos. Este parâmetro deve ser usado em conjunto com -dbr e só tem efeito quando -dbr estiver definido como True. Se a quantidade de dados incorretos ultrapassar o valor especificado, o upload será interrompido. Valor padrão: 1000.

      • -ni

        Defina o identificador para dados NULL. Valor padrão: string vazia.

      • -qn: nome da cota do Tunnel usada para acessar o MaxCompute.

        Faça login no console do MaxCompute, selecione uma região e escolha Workspace > Quotas no painel de navegação à esquerda para visualizar o nome da cota. Para mais informações, consulte Compute resources - Quota management.

      • -rd

        Defina o delimitador de linhas do arquivo de dados local. Valor padrão: \r\n.

      • -sd

        Defina o diretório da sessão.

      • -ss

        Ativa o modo de esquema estrito. Valor padrão: True. Se definido como False, dados desnecessários serão descartados e campos não especificados serão preenchidos com NULL.

      • -te

        Especifique o endpoint do Tunnel. Para mais informações sobre endpoints, consulte Endpoints.

      • -time

        Habilita o rastreamento do tempo de upload. Valor padrão: False.

      • -tz

        Defina o fuso horário. Valor padrão: fuso horário local, como Asia/Shanghai. Para mais informações sobre fusos horários, consulte Time zones.

Precauções

  • A tabela a seguir descreve os tipos de dados suportados.

    Tipo de dado

    Descrição

    STRING

    String com comprimento máximo de 8 MB.

    BOOLEAN

    Para uploads, aceita True, False, 0 ou 1. Para downloads, aceita True ou False. Não diferencia maiúsculas de minúsculas.

    BIGINT

    Valores válidos: [-9223372036854775807,9223372036854775807].

    DOUBLE

    • Número de 16 dígitos.

    • Representado em notação científica durante uploads.

    • Representado numericamente durante downloads.

    • Valor máximo: 1.7976931348623157E308.

    • Valor mínimo: 4,9E-324.

    • Infinito positivo: Infinity.

    • Infinito negativo: -Infinity.

    DATETIME

    Por padrão, dados DATETIME são enviados considerando o fuso horário GMT+8. Use linhas de comando para definir o padrão de formato. Ao enviar esse tipo de dado, especifique obrigatoriamente o formato de hora. Para mais informações, consulte Data type editions.

    "yyyyMMddHHmmss": Por exemplo, "20140209101000".
    "yyyy-MM-dd HH:mm:ss" (formato padrão): Por exemplo, "2014-02-09 10:10:00".
    "MM/dd/yyyy": Por exemplo, "09/01/2014".

    Exemplo:

    tunnel upload log.txt test_table -dfp "yyyy-MM-dd HH:mm:ss"
  • Null: todos os tipos de dados aceitam valores nulos.

    • Por padrão, uma string em branco representa um valor nulo.

    • Use o parâmetro -null-indicator para definir uma string específica como nula.

      tunnel upload log.txt test_table -ni "NULL"
  • Formato de codificação: permite especificar a codificação do arquivo. Valor padrão: UTF-8.

    tunnel upload log.txt test_table -c "gbk"
  • Delimitador: os comandos do Tunnel suportam delimitadores personalizados. Utilize -record-delimiter para definir delimitadores de linha e -field-delimiter para delimitadores de coluna.

    • Delimitadores de linha ou coluna podem conter múltiplos caracteres.

    • Um delimitador de coluna não pode conter o caractere usado como delimitador de linha.

    • Apenas os seguintes caracteres de escape são suportados na linha de comando: \r, \n e \t.

    tunnel upload log.txt test_table -fd "||" -rd "\r\n"

Referências