Todos os produtos
Search
Central de documentação

MaxCompute:Bulk data export solutions

Última atualização: Jul 20, 2026

Escolha entre SQLTask, Tunnel ou DataWorks para exportar resultados de consultas SQL do MaxCompute conforme o tamanho e a complexidade do conjunto de dados.

Nota

Todos os exemplos de SDK usam Java.

Visão geral

Você pode exportar resultados de consultas SQL pelos métodos a seguir:

  • Para pequenos conjuntos de dados, use um SQLTask para recuperar o resultado completo da consulta.

  • Para exportar uma tabela ou partição inteira, use o Tunnel.

  • Em consultas SQL complexas, combine SQLTask e Tunnel.

  • Use o DataWorks para executar consultas SQL, sincronizar dados e configurar tarefas agendadas e dependências.

  • Use a ferramenta de código aberto DataX para exportar dados do MaxCompute para uma fonte de dados de destino.

Usar SQLTask

O SDK SQLTask chama a interface SQL do MaxCompute. Chame SQLTask.getResult(i) para executar uma consulta e recuperar os resultados.

Notas de uso:

  • O método SQLTask.getResult(i) exporta apenas resultados de consultas SELECT. Ele não suporta outros comandos, como show tables.

  • A propriedade READ_TABLE_MAX_ROW controla quantos registros uma instrução SELECT retorna. Configure-a em Project operations.

  • Instruções SELECT retornam no máximo 10.000 registros ao cliente. Executar uma instrução SELECT em um cliente, inclusive pelo SQLTask, equivale a adicionar LIMIT N.

Usar Tunnel

Exporte tabelas inteiras ou partições específicas com a Command-line tool do Tunnel ou o Tunnel SDK.

O exemplo a seguir usa um comando Tunnel para exportar dados. Para cenários baseados em SDK sem suporte na CLI, consulte Batch data channel overview.

tunnel d wc_out c:\wc_out.dat;
2016-12-16 19:32:08 - new session: 201612161932082d3c9b0a012f68e7 total lines: 3
2016-12-16 19:32:08 - file [0]: [0, 3), c:\wc_out.dat
downloading 3 records into 1 file
2016-12-16 19:32:08 - file [0] start
2016-12-16 19:32:08 - file [0] OK. total: 21 bytes
download OK

Combinar SQLTask e Tunnel

O SQLTask retorna no máximo 10.000 registros, enquanto o Tunnel não tem esse limite. Combine ambos para exportar conjuntos de dados maiores.

Exemplo:

Odps odps = OdpsUtils.newDefaultOdps(); // Initialize the Odps object.
Instance i = SQLTask.run(odps, "select * from wc_in;");
i.waitForSuccess();
// Create an InstanceTunnel.
InstanceTunnel tunnel = new InstanceTunnel(odps);
// Create a DownloadSession based on the instance ID.
InstanceTunnel.DownloadSession session = tunnel.createDownloadSession(odps.getDefaultProject(), i.getId());
long count = session.getRecordCount();
// Print the number of records.
System.out.println(count);
// The method for retrieving data is the same as with TableTunnel.
TunnelRecordReader reader = session.openRecordReader(0, count);
Record record;
while((record = reader.read()) != null)
{
    for(int col = 0; col < session.getSchema().getColumns().size(); ++col)
    {
        // The columns in the wc_in table are all of the STRING type. You can print the output directly or write it to a local file.
        System.out.println(record.get(col));
    }
}
reader.close();

Usar a sincronização de dados do DataWorks

Nota

Este exemplo usa o modo básico do DataWorks e não se aplica a workspaces em visualização pública. Ao criar um workspace, não selecione Join The Public Preview Of DataStudio.

Use o DataWorks para executar consultas SQL e configurar tarefas de sincronização de dados.

  1. Faça login no console do DataWorks.

  2. No painel de navegação à esquerda, clique em Workspace.

  3. Na coluna Actions do workspace desejado, escolha Shortcuts > Data Development.

  4. Crie um workflow.

    1. Clique com o botão direito em Business Flow e selecione Create Workflow.

    2. Insira um Name.

    3. Clique em Create.

  5. Crie um nó SQL.

    1. Clique com o botão direito no workflow e escolha Create Node > MaxCompute > ODPS SQL.

    2. Defina o Name como runsql e clique em OK.

    3. Configure o nó ODPS SQL e clique em Save.

  6. Crie um nó de sincronização de dados.

    1. Clique com o botão direito no workflow e escolha Create Node > Data Integration > Offline Synchronization.

    2. Defina o Name como sync2mysql e clique em OK.

    3. Selecione a source e o destino dos dados.

    4. Configure o mapeamento de campos.

    5. Configure o controle de canal.

    6. Clique em Save.

  7. Conecte o nó ODPS SQL ao nó de sincronização de dados para que o nó SQL gere dados a serem exportados pelo nó de sincronização.

  8. Configure o agendamento do workflow ou use os padrões e clique em Run. Exemplo de logs de execução:

    2016-12-17 23:43:46.394 [job-15598025] INFO JobContainer - 
    Task start time : 2016-12-17 23:43:34
    Task end time : 2016-12-17 23:43:46
    Total time consumed : 11s
    Average traffic : 31.36KB/s
    Record write speed : 1668rec/s
    Total records read : 16689
    Total read/write failures : 0
  9. Verifique o resultado da sincronização:

    select count(*) from result_in_db;