All Products
Search
Document Center

MaxCompute:Solusi ekspor data massal

Last Updated:Jul 18, 2026

Pilih di antara SQLTask, Tunnel, atau DataWorks untuk mengekspor hasil kueri SQL MaxCompute berdasarkan ukuran dan kompleksitas set data Anda.

Catatan

Semua contoh SDK menggunakan Java.

Ikhtisar

Metode berikut tersedia untuk mengekspor hasil kueri SQL:

  • Untuk set data kecil, gunakan SQLTask untuk mengambil seluruh hasil kueri.

  • Untuk mengekspor seluruh tabel atau partisi, gunakan Tunnel.

  • Untuk kueri SQL kompleks, kombinasikan SQLTask dan Tunnel.

  • Gunakan DataWorks untuk menjalankan kueri SQL, menyinkronkan data, serta mengonfigurasi tugas terjadwal dan dependensi.

  • Gunakan tool open-source DataX untuk mengekspor data dari MaxCompute ke sumber data tujuan.

Gunakan SQLTask

SQLTask SDK memanggil antarmuka SQL MaxCompute. Panggil SQLTask.getResult(i) untuk menjalankan kueri dan mengambil hasilnya.

Catatan penggunaan:

  • SQLTask.getResult(i) hanya mengekspor hasil kueri SELECT. Metode ini tidak mendukung perintah lain seperti show tables.

  • Properti READ_TABLE_MAX_ROW mengontrol jumlah record yang dikembalikan oleh pernyataan SELECT. Konfigurasikan properti ini di Operasi proyek.

  • Pernyataan SELECT mengembalikan maksimal 10.000 record ke client. Menjalankan pernyataan SELECT di client, termasuk melalui SQLTask, setara dengan menambahkan klausa LIMIT N.

Gunakan Tunnel

Ekspor seluruh tabel atau partisi tertentu menggunakan tool Command-line Tunnel atau Tunnel SDK.

Contoh berikut menggunakan perintah Tunnel untuk mengekspor data. Untuk skenario berbasis SDK yang tidak didukung CLI, lihat Ikhtisar saluran data batch.

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

Kombinasikan SQLTask dan Tunnel

SQLTask mengembalikan maksimal 10.000 record. Tunnel tidak memiliki batasan tersebut. Kombinasikan keduanya untuk mengekspor set data yang lebih besar.

Contoh:

Odps odps = OdpsUtils.newDefaultOdps(); // Inisialisasi objek Odps.
Instance i = SQLTask.run(odps, "select * from wc_in;");
i.waitForSuccess();
// Buat InstanceTunnel.
InstanceTunnel tunnel = new InstanceTunnel(odps);
// Buat DownloadSession berdasarkan ID instans.
InstanceTunnel.DownloadSession session = tunnel.createDownloadSession(odps.getDefaultProject(), i.getId());
long count = session.getRecordCount();
// Cetak jumlah record.
System.out.println(count);
// Metode pengambilan data sama seperti pada TableTunnel.
TunnelRecordReader reader = session.openRecordReader(0, count);
Record record;
while((record = reader.read()) != null)
{
    for(int col = 0; col < session.getSchema().getColumns().size(); ++col)
    {
        // Kolom dalam tabel wc_in semuanya bertipe STRING. Anda dapat mencetak output secara langsung atau menulisnya ke file lokal.
        System.out.println(record.get(col));
    }
}
reader.close();

Gunakan sinkronisasi data DataWorks

Catatan

Contoh ini menggunakan mode dasar DataWorks dan tidak berlaku untuk ruang kerja dalam pratinjau publik. Saat membuat ruang kerja, jangan pilih Join The Public Preview Of DataStudio.

Gunakan DataWorks untuk menjalankan kueri SQL dan mengonfigurasi tugas sinkronisasi data.

  1. Masuk ke Konsol DataWorks.

  2. Di panel navigasi sebelah kiri, klik Workspace.

  3. Pada kolom Actions untuk ruang kerja target, pilih Shortcuts > Data Development.

  4. Buat alur kerja.

    1. Klik kanan Business Flow lalu pilih Create Workflow.

    2. Masukkan Name.

    3. Klik Create.

  5. Buat node SQL.

    1. Klik kanan alur kerja lalu pilih Create Node > MaxCompute > ODPS SQL.

    2. Atur Name menjadi runsql lalu klik OK.

    3. Konfigurasikan node ODPS SQL lalu klik Save.

  6. Buat node sinkronisasi data.

    1. Klik kanan alur kerja lalu pilih Create Node > Data Integration > Offline Synchronization.

    2. Atur Name menjadi sync2mysql lalu klik OK.

    3. Pilih sumber data dan tujuan.

    4. Konfigurasikan pemetaan bidang.

    5. Konfigurasikan kontrol saluran.

    6. Klik Save.

  7. Hubungkan node ODPS SQL ke node sinkronisasi data agar node SQL menghasilkan data yang akan diekspor oleh node sinkronisasi.

  8. Konfigurasikan penjadwalan alur kerja atau gunakan pengaturan default, lalu klik Run. Contoh log eksekusi:

    2016-12-17 23:43:46.394 [job-15598025] INFO JobContainer - 
    Waktu mulai task : 2016-12-17 23:43:34
    Waktu akhir task : 2016-12-17 23:43:46
    Total waktu yang dikonsumsi : 11s
    Trafik rata-rata : 31,36KB/s
    Kecepatan penulisan record : 1668rec/s
    Total record yang dibaca : 16689
    Total kegagalan baca/tulis : 0
  9. Verifikasi hasil sinkronisasi:

    select count(*) from result_in_db;