All Products
Search
Document Center

MaxCompute:FAQ perintah Tunnel

Last Updated:Jun 17, 2026

Topik ini menyediakan jawaban atas pertanyaan yang sering diajukan (FAQ) mengenai perintah Tunnel.

Kategori

FAQ

Tunnel Upload

Tunnel Download

Tunnel history

Berapa lama informasi dari perintah Tunnel history disimpan?

Isu lainnya

Apakah Tunnel Upload mendukung wildcard atau regular expressions?

Perintah Tunnel Upload tidak mendukung wildcard maupun ekspresi reguler.

Tunnel Upload: Batasan dan kompresi

Tidak ada batasan ukuran file untuk Tunnel Upload, tetapi satu operasi dibatasi hingga 2 jam. Perkirakan volume data maksimum yang dapat diunggah berdasarkan kecepatan unggah Anda.

Ukuran maksimum untuk satu record adalah 200 MB.

Tunnel Upload menggunakan kompresi secara default. Jika bandwidth Anda memungkinkan, Anda dapat menggunakan parameter -cp untuk menonaktifkan kompresi.

Unggah paralel ke tabel atau partisi

Ya, Anda dapat mengunggah data secara paralel.

Unggah konkuren dari beberapa client

Ya.

Persyaratan partisi yang sudah ada

Anda dapat menggunakan parameter -acp dalam perintah Tunnel Upload untuk membuat partisi tujuan secara otomatis. Nilai default parameter ini adalah false. Untuk informasi lebih lanjut, lihat Perintah Tunnel.

Unggah ke tabel non-partisi

Ya. Dalam sintaks perintah Tunnel Upload, parameter [/partition] bersifat opsional. Untuk mengunggah data ke tabel non-partisi, Anda tidak perlu menentukan informasi partisi. Anda dapat menggunakan perintah berikut:

tunnel upload <path> <table_name>;

Untuk tabel partisi, Anda harus menentukan informasi partisi. Jika tidak, akan terjadi error. Untuk informasi lebih lanjut tentang parameter dan penggunaan perintah Tunnel, lihat Perintah Tunnel.

Penagihan untuk data terkompresi

Penagihan didasarkan pada ukuran data setelah dikompresi.

Apakah Tunnel Upload mendukung rate limiting?

Tidak, rate limiting tidak didukung.

Menangani unggah Tunnel yang lambat

Jika unggah data terlalu lambat, pertimbangkan untuk menggunakan parameter -threads untuk mengunggah data dalam potongan, misalnya dengan membagi file menjadi 10 potongan. Contoh perintahnya sebagai berikut.

tunnel upload C:\userlog.txt userlog1 -threads 10 -s false -fd "\u0000" -rd "\n";

Titik Akhir Publik vs. Titik Akhir Jaringan Klasik

Dalam file konfigurasi odps_config.ini untuk client MaxCompute, Anda harus mengonfigurasi Tunnel Endpoint selain Endpoint standar. Lihat Endpoint untuk nilai endpoint yang diperlukan. Tunnel Endpoint tidak diperlukan untuk wilayah China (Shanghai).

Error Tunnel Upload di DataStudio

  • Gejala

    Saat Anda menjalankan perintah Tunnel Upload di DataStudio untuk mengunggah data ke partisi, error berikut dikembalikan:

    FAILED: error occurred while running tunnel command.
  • Penyebab

    DataStudio tidak mendukung perintah Tunnel Upload.

  • Solusi

    Gunakan fitur impor data visual di DataWorks. Untuk informasi lebih lanjut, lihat Unggah data.

Menangani data dengan carriage return atau spasi

Jika data Anda berisi karakter baris baru atau spasi, Anda dapat menetapkan pemisah kustom, lalu menggunakan -rd dan -fd untuk menentukan pemisah tersebut saat mengunggah data. Jika Anda tidak dapat mengubah pemisah dalam data, Anda dapat mengunggah data sebagai satu baris, lalu menggunakan UDF untuk menguraikannya.

Data sampel berikut berisi carriage return dan dapat diunggah berhasil dengan menggunakan , sebagai pemisah kolom -rd dan @ sebagai pemisah baris -fd.

shopx,x_id,100@
shopy,y_id,200@
shopz,z_id,300@

Perintah berikut merupakan contoh perintah unggah.

tunnel upload d:\data.txt sale_detail/sale_date=201312,region=hangzhou -s false -fd "," -rd "@";

Kode berikut memberikan contoh hasil unggah.

+-----------+-------------+-------------+-----------+--------+
| shop_name | customer_id | total_price | sale_date | region |
+-----------+-------------+-------------+-----------+--------+
| shopx     | x_id        | 100.0       | 201312    | hangzhou |
| shopy     | y_id        | 200.0       | 201312    | hangzhou |
| shopz     | z_id        | 300.0       | 201312    | hangzhou |
+-----------+-------------+-------------+-----------+--------+

Mengatasi error overflow memori

Perintah Tunnel Upload dirancang untuk menangani jumlah data yang besar. Error overflow memori biasanya menunjukkan bahwa pemisah baris dan kolom diatur secara salah. Hal ini dapat menyebabkan seluruh file teks diperlakukan sebagai satu record dan disimpan dalam cache di memori, yang mengakibatkan overflow.

Dalam kasus ini, Anda dapat terlebih dahulu menguji dengan jumlah data yang kecil. Setelah -td dan -fd berhasil di-debug, Anda dapat mengunggah seluruh dataset.

Skrip unggah dari folder

Perintah Tunnel Upload mendukung pengunggahan satu file atau direktori (hanya direktori tingkat pertama). Untuk informasi lebih lanjut, lihat Panduan Penggunaan Tunnel.

Sebagai contoh, Anda dapat menjalankan perintah berikut untuk mengunggah semua data dari folder d:\data.

tunnel upload d:\data sale_detail/sale_date=201312,region=hangzhou -s false;

Unggah batch file ke partisi berbeda

Anda dapat menggunakan skrip Shell. Contoh berikut menunjukkan skrip Shell yang digunakan dengan client MaxCompute di lingkungan Windows. Prinsip yang sama berlaku untuk Linux. Isi skrip Shell sebagai berikut:

#!/bin/sh
# Pertama, buat tabel partisi bernama user dengan dt sebagai kunci partisi. Dalam contoh ini, client MaxCompute diinstal di C:/odpscmd_public/bin/odpscmd.bat. Sesuaikan path berdasarkan lingkungan Anda.
C:/odpscmd_public/bin/odpscmd.bat  -e "create table user(data string) partitioned by (dt int);" 
dir=$(ls C:/userlog)  # Definisikan variabel dir untuk menyimpan nama semua file di folder sumber.
pt=0 # Variabel pt digunakan sebagai nilai partisi dan dimulai dari 0. Nilainya bertambah 1 setelah setiap file diunggah. Dengan cara ini, setiap file disimpan di partisi berbeda.
for i in $dir  # Lakukan loop untuk semua file di folder C:/userlog.
do
    let pt=pt+1  # Tambahkan variabel pt sebesar 1 di akhir setiap loop.
    echo $i  # Tampilkan nama file.
    echo $pt # Tampilkan nama partisi.
    # Gunakan odpscmd untuk pertama-tama menambahkan partisi, lalu mengunggah file ke partisi tersebut.
    C:/odpscmd_public/bin/odpscmd.bat  -e "alter table user add partition (dt=$pt);tunnel upload C:/userlog/$i user/dt=$pt -s false -fd "%" -rd "@";"
done

Gambar berikut menunjukkan hasil menjalankan skrip Shell yang menggunakan dua file, userlog1 dan userlog2, sebagai contoh.回显

Setelah unggah selesai, Anda dapat melihat data tabel di client MaxCompute.回显2

Melewati data kotor selama unggah

Anda dapat menggunakan parameter -dbr true dalam perintah Tunnel Upload untuk mengabaikan data kotor, seperti baris dengan kolom berlebih, kolom yang hilang, atau tipe data kolom yang tidak sesuai. Nilai default untuk parameter -dbr adalah False, yang berarti data kotor tidak diabaikan. Saat nilainya diatur ke True, semua data yang tidak sesuai dengan definisi tabel akan diabaikan. Untuk informasi lebih lanjut, lihat Unggah.

Mengatasi error konflik status

  • Gejala

    Saat Anda menggunakan perintah Tunnel Upload, error berikut dikembalikan:

    java.io.IOException: RequestId=XXXXXXXXXXXXXXXXXXXXXXXXX, ErrorCode=StatusConflict, ErrorMessage=You cannot complete the specified operation under the current upload or download status.        
            at com.aliyun.odps.tunnel.io.TunnelRecordWriter.close(TunnelRecordWriter.java:93)        
            at com.xgoods.utils.aliyun.maxcompute.OdpsTunnel.upload(OdpsTunnel.java:92)        
            at com.xgoods.utils.aliyun.maxcompute.OdpsTunnel.upload(OdpsTunnel.java:45)        
            at com.xeshop.task.SaleStatFeedTask.doWork(SaleStatFeedTask.java:119)        
            at com.xgoods.main.AbstractTool.excute(AbstractTool.java:90)        
            at com.xeshop.task.SaleStatFeedTask.main(SaleStatFeedTask.java:305)java.io.IOException: RequestId=XXXXXXXXXXXXXXXXXXXXXXXXX, ErrorCode=StatusConflict, ErrorMessage=You cannot complete the specified operation under the current upload or download status.       
  • Penyebab

    File sedang dalam proses diunggah, dan operasi tidak dapat diduplikasi.

  • Solusi

    Jangan ulangi operasi unggah. Tunggu hingga tugas unggah yang sedang berjalan selesai.

Mengatasi error badan permintaan

  • Gejala

    Saat Anda menggunakan perintah Tunnel Upload, error berikut dikembalikan:

    java.io.IOException: Error writing request body to server
  • Penyebab

    Pengecualian ini terjadi saat data sedang ditulis ke server. Pengecualian ini biasanya disebabkan oleh putusnya koneksi jaringan atau timeout selama proses unggah. Daftar berikut menjelaskan penyebabnya:

    • Saat sumber data Anda bukan file lokal dan diambil dari sumber seperti database, proses penulisan mungkin mengalami timeout saat menunggu data diambil. Jika tidak ada data yang diunggah selama 600 detik, operasi akan timeout.

    • Saat Anda mengunggah data melalui jaringan publik menggunakan titik akhir publik, unggah mungkin timeout karena koneksi jaringan yang tidak stabil.

  • Solusi

    • Selama proses unggah, ambil data terlebih dahulu, lalu panggil Tunnel SDK untuk mengunggah data.

    • Satu blok dapat mengunggah data sebesar 64 MB hingga 100 GB. Kami menyarankan agar jumlah record per blok tetap di bawah 10.000 untuk menghindari timeout yang disebabkan oleh retry. Satu sesi dapat memiliki maksimal 20.000 blok. Jika data Anda berada di Instance ECS, lihat Endpoint untuk informasi endpoint.

Mengatasi error partisi tidak ditemukan

  • Gejala

    Saat Anda mengunggah data menggunakan Tunnel, error berikut dikembalikan:

    ErrorCode=NoSuchPartition, ErrorMessage=The specified partition does not exist
  • Penyebab

    Partisi tujuan untuk penyisipan data tidak ada.

  • Solusi

    Anda dapat terlebih dahulu menjalankan perintah show partitions table_name; untuk memeriksa apakah partisi ada, lalu jalankan alter table table_name add [if not exists] partition partition_spec untuk membuat partisi yang sesuai.

Mengatasi error ketidaksesuaian kolom

Hal ini biasanya disebabkan oleh pemisah baris yang salah dalam file sumber data, yang menyebabkan beberapa record diperlakukan sebagai satu record. Anda perlu memeriksa masalah ini dan mengatur ulang parameter -rd.

Mengatasi error ODPS-0110061 dalam multi-threading

  • Gejala

    Saat Anda mengunggah data menggunakan beberapa thread, error berikut dikembalikan:

    FAILED: ODPS-0110061: Failed to run ddltask - Modify DDL meta encounter exception : ODPS-0010000:System internal error - OTS transaction exception - Start of transaction failed. Reached maximum retry times because of OTSStorageTxnLockKeyFail(Inner exception: Transaction timeout because cannot acquire exclusive lock.)      
  • Penyebab

    Error ini disebabkan oleh operasi penulisan konkuren yang terlalu sering ke tabel yang sama.

  • Solusi

    Kurangi jumlah thread konkuren, tambahkan jeda antar permintaan, dan terapkan mekanisme retry untuk operasi yang gagal.

Melewati header CSV selama unggah

Anda dapat melewati baris header pertama dengan menambahkan parameter -h true ke perintah Tunnel Upload.

Data hilang setelah impor CSV

Masalah ini biasanya disebabkan oleh encoding data yang salah atau penggunaan pemisah yang tidak tepat, yang menyebabkan data diunggah secara tidak benar. Kami menyarankan agar Anda memformat data mentah dengan benar sebelum menjalankan operasi unggah.

Mengunggah file TXT dengan skrip Shell

Anda dapat menjalankan perintah berikut di jendela command-line sistem Anda untuk mengunggah data dengan cepat ke tabel MaxCompute dengan menentukan parameter yang diperlukan.

...\odpscmd\bin>odpscmd -e "tunnel upload "$FILE" project.table"

Untuk informasi lebih lanjut tentang cara menjalankan tool command-line, lihat Terhubung menggunakan client odpscmd.

Mengatasi ketidaksesuaian bidang untuk impor folder

Tambahkan parameter -dbr=false -s true ke perintah Tunnel Upload untuk memvalidasi format data.

Error column mismatch biasanya terjadi karena ketidaksesuaian jumlah kolom. Misalnya, hal ini dapat terjadi jika pemisah kolom diatur secara salah atau jika ada baris kosong di akhir file, yang menyebabkan ketidaksesuaian jumlah kolom saat dibagi oleh pemisah.

Kegagalan diam pada unggah file kedua

Jika parameter --scan digunakan untuk unggah dengan client MaxCompute, terjadi masalah pada pengiriman parameter dalam mode resume. Hapus parameter --scan=true dan coba ulang operasi tersebut.

Pelewatan blok saat retry setelah kegagalan unggah

Setiap blok sesuai dengan satu permintaan HTTP, dan unggah beberapa blok dapat dilakukan secara konkuren dan atomik. Permintaan sinkron untuk satu blok akan berhasil atau gagal tanpa memengaruhi blok lainnya.

Ada batasan jumlah retry. Jika batas retry terlampaui, unggah akan dilanjutkan ke Blok berikutnya. Setelah unggah selesai, Anda dapat menggunakan pernyataan select count(*) from table; untuk memeriksa kehilangan data.

Memperbaiki kecepatan unggah yang lambat

Perintah Tunnel Upload sendiri tidak memberlakukan batas kecepatan. Hambatan kecepatan unggah biasanya terkait dengan bandwidth jaringan, kinerja client, dan kinerja server. Untuk meningkatkan kinerja, Anda dapat mempartisi data, menggunakan beberapa tabel, atau mengunggah data dari beberapa Instance ECS.

Mencegah timeout sesi untuk unggah besar

Kami menyarankan untuk membagi data sumber menjadi beberapa tugas yang lebih kecil.

Unggah lambat karena terlalu banyak sesi

Tetapkan ukuran blok ke nilai yang sesuai. ID blok maksimum adalah 20.000. Tetapkan durasi sesi berdasarkan kebutuhan bisnis Anda. Data hanya menjadi terlihat setelah sesi dikomit. Hindari membuat sesi terlalu sering. Anda dapat membuat maksimal satu sesi setiap 5 menit. Gunakan ukuran blok besar, sebaiknya lebih dari 64 MB.

Karakter \r tambahan di kolom terakhir

Karakter baris baru adalah \r\n di Windows dan \n di macOS dan Linux. Perintah Tunnel menggunakan karakter baris baru sistem sebagai pemisah baris default. Akibatnya, saat Anda mengunggah file yang diedit di Windows dari sistem macOS atau Linux, karakter \r diimpor ke tabel sebagai data.

Menangani koma dalam data dengan pemisah default

Jika bidang deskripsi data berisi koma, Anda dapat mengubah pemisah data ke karakter lain dan menggunakan parameter -fd untuk menentukan pemisah baru selama unggah.

Menangani pemisah spasi atau penyaringan regex

Perintah Tunnel Upload tidak mendukung ekspresi reguler. Jika data Anda menggunakan spasi sebagai pemisah atau memerlukan penyaringan ekspresi reguler, Anda dapat menggunakan UDF MaxCompute.

Asumsikan data mentah Anda menggunakan spasi sebagai pemisah kolom dan carriage return sebagai pemisah baris, seperti pada contoh berikut. Anda harus mengekstrak data yang diapit tanda kutip dan menyaring karakter tertentu seperti "-". Persyaratan kompleks seperti ini dapat ditangani menggunakan ekspresi reguler.

10.21.17.2 [24/Jul/2018:00:00:00 +0800] - "GET https://example.com/73477.html" 200 0 81615 81615 "-" "iphone" - HIT - - 0_0_0 001 - - - -
10.17.5.23 [24/Jul/2018:00:00:00 +0800] - "GET https://example.com/73478.html" 206 0 49369 49369 "-" "huawei" - HIT - - 0_0_0 002 - - - -
10.24.7.16 [24/Jul/2018:00:00:00 +0800] - "GET https://example.com/73479.html" 206 0 83821 83821 "-" "vivo" - HIT - - 0_0_0 003 - - - -

Lakukan langkah-langkah berikut:

  1. Unggah data sebagai satu kolom. Pertama, buat tabel satu kolom di proyek MaxCompute Anda untuk menerima data. Perintah berikut merupakan contohnya.

    create table userlog1(data string);
  2. Gunakan pemisah kolom yang tidak ada, seperti \u0000, untuk mengunggah data tanpa membaginya menjadi kolom. Berikut contoh perintahnya.

    tunnel upload C:\userlog.txt userlog1 -s false -fd "\u0000" -rd "\n";
  3. Setelah Anda mengunggah data mentah, tulis dan daftarkan UDF Python di MaxCompute Studio. Anda juga dapat menggunakan UDF Java. Untuk informasi lebih lanjut tentang cara menulis dan mendaftarkan UDF, lihat Mengembangkan UDF Java atau Mengembangkan UDF Python.

    Kode berikut memberikan contoh UDF. Asumsikan fungsi yang didaftarkan bernama ParseAccessLog.

    from odps.udf import annotate
    from odps.udf import BaseUDTF
    import re     # Impor modul ekspresi reguler.
    regex = '([(\d\.)]+) \[(.*?)\] - "(.*?)" (\d+) (\d+) (\d+) (\d+) "-" "(.*?)" - (.*?) - - (.*?) (.*?) - - - -'             # Ekspresi reguler yang akan digunakan.
    # line -> ip,date,request,code,c1,c2,c3,ua,q1,q2,q3
    @annotate('string -> string,string,string,string,string,string,string,string,string,string,string')  # Pastikan jumlah string sesuai dengan jumlah kolom data aktual. Contoh ini memiliki 11 kolom.
    class ParseAccessLog(BaseUDTF):
        def process(self, line):
            try:
                t = re.match(regex, line).groups()
                self.forward(t[0], t[1], t[2], t[3], t[4], t[5], t[6], t[7], t[8], t[9], t[10])
            except:
                pass
  4. Setelah Anda mendaftarkan fungsi tersebut, Anda dapat menggunakan UDF untuk memproses data mentah di tabel userlog1. Pastikan Anda menggunakan nama kolom yang benar, yaitu data dalam contoh ini. Anda dapat menggunakan sintaks SQL standar untuk membuat tabel bernama userlog2 guna menyimpan data yang telah diproses. Perintah berikut merupakan contohnya.

    create table userlog2 as select ParseAccessLog(data) as (ip,date,request,code,c1,c2,c3,ua,q1,q2,q3) from userlog1;

    Setelah pemrosesan selesai, Anda dapat mengkueri tabel userlog2. Data kini telah dibagi dengan benar ke dalam kolom-kolom.

    select * from userlog2;
    -- Hasil berikut dikembalikan.
    +----+------+---------+------+----+----+----+----+----+----+----+
    | ip | date | request | code | c1 | c2 | c3 | ua | q1 | q2 | q3 |
    +----+------+---------+------+----+----+----+----+----+----+----+
    | 10.21.17.2 | 24/Jul/2018:00:00:00 +0800 | GET https://example.com/73477.html | 200  | 0  | 81615 | 81615 | iphone | HIT | 0_0_0 | 001 |
    | 10.17.5.23 | 24/Jul/2018:00:00:00 +0800 | GET https://example.com/73478.html | 206  | 0  | 4936 | 4936 | huawei | HIT | 0_0_0 | 002 |
    | 10.24.7.16 | 24/Jul/2018:00:00:00 +0800 | GET https://example.com/73479.html | 206  | 0  | 83821 | 83821 | vivo | HIT | 0_0_0 | 003 |
    +----+------+---------+------+----+----+----+----+----+----+----+

Menangani data kotor setelah unggah

Kami menyarankan agar Anda menulis data ke tabel non-partisi atau satu partisi dalam satu operasi. Jangan menulis ke partisi yang sama beberapa kali karena hal ini dapat menghasilkan data kotor. Anda dapat menjalankan perintah tunnel show bad <sessionid>; di client MaxCompute untuk memeriksa data kotor. Jika data kotor dihasilkan, Anda dapat menghapusnya dengan metode berikut:

  • Jalankan perintah drop table ...; untuk menghapus seluruh tabel atau perintah alter table ... drop partition; untuk menghapus partisi target, lalu unggah ulang data.

  • Jika data kotor dapat difilter menggunakan klausa WHERE, Anda dapat menggunakan pernyataan INSERT dengan klausa WHERE untuk mengimpor data yang benar ke tabel baru atau melakukan pembaruan langsung. Nama partisi/tabel sumber dan tujuan sama.

Menyinkronkan data geometri

MaxCompute tidak mendukung tipe data geometri. Anda harus mengonversi data geometri ke tipe STRING sebelum menyinkronkan data ke MaxCompute.

Tipe geometri adalah tipe data khusus yang tidak termasuk dalam tipe data SQL standar. Framework JDBC generik tidak mendukung tipe geometri. Hal ini memerlukan penanganan khusus untuk impor dan ekspor data.

Format ekspor yang didukung untuk Tunnel Download

File data yang diekspor menggunakan perintah Tunnel Download dapat berformat TXT atau CSV.

Biaya unduhan Tunnel dalam wilayah

Untuk mengunduh data dalam wilayah yang sama tanpa dikenai biaya untuk lalu lintas jaringan publik, Anda harus mengonfigurasi Tunnel endpoint untuk jaringan klasik atau VPC. Jika tidak, data mungkin dialihkan melalui titik akhir jaringan publik di wilayah lain, yang mengakibatkan biaya.

Mengatasi timeout unduh berulang

Error ini biasanya menunjukkan bahwa Tunnel endpoint salah. Periksa apakah Tunnel endpoint dikonfigurasi dengan benar. Cara sederhana untuk memverifikasi endpoint adalah menguji konektivitas jaringan menggunakan tool seperti Telnet.

Mengatasi error tidak memiliki hak istimewa

  • Gejala

    Saat Anda menggunakan perintah Tunnel Download, error berikut dikembalikan:

    You have NO privilege ‘odps:Select‘ on {acs:odps:*:projects/XXX/tables/XXX}. project ‘XXX‘ is protected.
  • Penyebab

    Fitur perlindungan data diaktifkan untuk proyek tersebut.

  • Solusi

    Jika Anda ingin mengekspor data dari satu proyek ke proyek lain, operasi tersebut harus dilakukan oleh pemilik proyek.

Mengunduh subset data

Tunnel tidak mendukung komputasi atau penyaringan data. Untuk mengunduh subset data tertentu, Anda dapat menggunakan salah satu metode berikut:

  • Jalankan tugas SQL untuk menyimpan data yang ingin Anda unduh ke tabel sementara. Setelah unduh selesai, hapus tabel sementara tersebut.

  • Jika jumlah data yang Anda inginkan kecil, Anda dapat menggunakan perintah SQL untuk mengkueri data secara langsung tanpa perlu mengunduhnya.

Periode retensi riwayat Tunnel

Retensi tidak berbasis waktu. Secara default, 500 entri terakhir disimpan.

Alur kerja unggah Tunnel

Alur kerja unggah data dengan Tunnel adalah sebagai berikut:

  1. Siapkan data sumber, seperti file sumber atau tabel data.

  2. Rancang skema tabel dan definisi partisi, lakukan konversi tipe data, lalu buat tabel di MaxCompute.

  3. Tambahkan partisi ke tabel MaxCompute. Anda dapat melewati langkah ini jika tabel tidak dipartisi.

  4. Unggah data ke partisi atau tabel yang ditentukan.

Dukungan untuk karakter Tionghoa dalam path

Ya, karakter Tionghoa didukung.

Catatan tentang penggunaan pemisah

Saat menggunakan pemisah dengan Tunnel, perhatikan poin-poin berikut:

  • Pemisah baris adalah rd, dan pemisah kolom adalah fd.

  • Pemisah kolom fd tidak boleh berisi pemisah baris rd.

  • Pemisah default untuk Tunnel adalah \r\n untuk Windows dan \n untuk Linux.

  • Saat unggah dimulai, pesan ditampilkan di layar yang menunjukkan pemisah baris yang digunakan untuk unggah saat ini agar Anda dapat memeriksa dan mengonfirmasi. Fitur ini tersedia di v0.21.0 dan versi selanjutnya.

Dapatkah path file Tunnel berisi spasi?

Ya. Namun, parameter yang berisi path harus diapit tanda kutip ganda ("").

Dukungan untuk file .dbf

Tunnel hanya mendukung file teks dan tidak mendukung file biner.

Kecepatan unggah dan unduh normal

Kecepatan unggah dan unduh Tunnel sangat dipengaruhi oleh kondisi jaringan. Dalam kondisi jaringan normal, kecepatannya berkisar antara 1 MB/detik hingga 20 MB/detik.

Mendapatkan nama domain Tunnel

Nama domain Tunnel adalah titik akhir Tunnel publik. Wilayah dan jaringan yang berbeda memiliki nama domain Tunnel yang berbeda. Untuk informasi lebih lanjut, lihat Endpoint untuk mendapatkan titik akhir Tunnel publik yang benar.

Memecahkan masalah kegagalan unggah dan unduh

Dapatkan nama domain Tunnel dari file odps_config.ini di direktori ..\odpscmd_public\conf instalasi client MaxCompute dan jalankan perintah curl -i <domain name> (misalnya, curl -i http://dt.odps.aliyun.com) di jendela command-line untuk menguji konektivitas jaringan. Jika koneksi gagal, periksa jaringan perangkat Anda atau gunakan nama domain Tunnel yang benar.

Mengatasi error Java heap space

  • Gejala

    Saat menggunakan perintah Tunnel untuk mengunggah atau mengunduh data, Anda mungkin menerima error berikut:

    Java heap space FAILED: error occurred while running tunnel command
  • Penyebab

    • Penyebab 1: Saat Anda mengunggah data, satu baris data terlalu besar.

    • Penyebab 2: Jumlah data yang akan diunduh terlalu besar untuk memori yang tersedia pada program client.

  • Solusi

    • Solusi untuk Penyebab 1

      1. Pertama, pastikan apakah pemisah salah, yang dapat menyebabkan semua data dibaca sebagai satu baris besar.

      2. Jika pemisah benar dan satu baris data dalam file sangat besar, program client kekurangan memori. Anda perlu menyesuaikan parameter startup untuk proses client. Untuk melakukannya, edit skrip odpscmd di direktori bin instalasi client dan tingkatkan nilai -Xms64m -Xmx512m dalam perintah java -Xms64m -Xmx512m -classpath "${clt_dir}/lib/*:${clt_dir}/conf/"com.aliyun.openservices.odps.console.ODPSConsole "$@".

    • Solusi untuk Penyebab 2: Edit skrip odpscmd di direktori bin path instalasi client. Tingkatkan nilai -Xms64m -Xmx512m dalam perintah berikut: java -Xms64m -Xmx512m -classpath "${clt_dir}/lib/*:${clt_dir}/conf/"com.aliyun.openservices.odps.console.ODPSConsole "$@".

Siklus hidup sesi dan masa berlaku

Setiap sesi memiliki siklus hidup 24 jam di server dan dapat digunakan kapan saja dalam periode tersebut. Setelah sesi kedaluwarsa, sesi tersebut menjadi tidak valid dan Anda tidak dapat melakukan operasi apa pun dengannya. Anda harus membuat sesi baru dan menulis ulang data.

Dapatkah sesi digunakan bersama?

Sesi dapat digunakan bersama di berbagai proses dan thread. Namun, Anda harus memastikan bahwa ID blok yang sama tidak digunakan lebih dari sekali.

Apa itu fitur routing Tunnel?

Jika Anda tidak mengonfigurasi Tunnel endpoint, Tunnel secara otomatis mengarahkan lalu lintas ke Tunnel endpoint yang sesuai dengan jaringan tempat layanan MaxCompute berada. Jika Anda mengonfigurasi Tunnel endpoint, konfigurasi Anda akan diutamakan dan routing otomatis dinonaktifkan.

Apakah Tunnel mendukung konkurensi?

Ya. Perintah berikut merupakan contohnya:

tunnel upload E:/1.txt tmp_table_0713 --threads 5;