Sebelum menggunakan MaxCompute, pelajari batasan penggunaannya. Dokumen ini menjelaskan batasan terkait penggunaan MaxCompute.
Batasan pada sumber daya komputasi berlangganan
Secara default, Anda dapat membeli hingga 2.000 unit komputasi (CUs) sebagai sumber daya komputasi berlangganan MaxCompute. Jika membutuhkan lebih dari 2.000 CUs, gunakan akun Alibaba Cloud untuk mengisi ticket dan kirimkan tiket tersebut. Insinyur produk MaxCompute akan meninjau permohonan peningkatan kuota dalam tiga hari kerja. Hasil tinjauan akan diberitahukan melalui pesan teks.
Batasan pada sumber daya komputasi layanan MaxCompute bayar sesuai pemakaian
Tabel berikut menunjukkan jumlah maksimum CUs layanan MaxCompute bayar sesuai pemakaian yang dapat digunakan oleh satu pengguna di satu wilayah. Batasan ini mencegah situasi di mana satu pengguna menguasai terlalu banyak sumber daya kluster sehingga pengguna lain tidak dapat memulai pekerjaan.
Negara atau wilayah | Wilayah | Jumlah maksimum CUs layanan MaxCompute bayar sesuai pemakaian |
Wilayah di Tiongkok | Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Beijing), Tiongkok (Zhangjiakou), Tiongkok (Ulanqab), Tiongkok (Shenzhen), Timur Tiongkok 2 Keuangan, Utara Tiongkok 2 Ali Gov, dan Selatan Tiongkok 1 Keuangan | 2.000 |
Tiongkok (Chengdu) dan Tiongkok (Hong Kong) | 500 | |
Negara atau wilayah lainnya | Singapura, Malaysia (Kuala Lumpur), Indonesia (Jakarta), Jepang (Tokyo), Jerman (Frankfurt), AS (Silicon Valley), AS (Virginia), Inggris (London) dan UEA (Dubai) | 500 |
Batasan atas mencerminkan jumlah maksimum CUs yang dapat diperoleh, bukan jumlah minimum yang dapat digunakan. Dalam beberapa kasus, lebih banyak CUs mungkin digunakan untuk mempercepat kueri.
Batasan slot Tunnel berlangganan
Secara default, Anda dapat membeli maksimal 500 slot untuk layanan Tunnel berlangganan di MaxCompute. Untuk membeli lebih dari 500 slot, ajukan tiket permohonan.
Batasan SQL
Tabel berikut menjelaskan batasan pengembangan pekerjaan SQL di MaxCompute.
Item | Nilai maksimum/Batasan | Kategori | Deskripsi |
Panjang nama tabel | 128 byte | Panjang | Nama tabel atau kolom hanya dapat berisi huruf, angka, dan garis bawah (_). Harus dimulai dengan huruf. Karakter khusus tidak didukung. |
Panjang komentar | 1.024 byte | Panjang | Komentar adalah string yang valid yang tidak boleh melebihi 1.024 byte panjangnya. |
Definisi kolom dalam tabel | 1.200 | Jumlah | Tabel dapat berisi maksimal 1.200 definisi kolom. |
Partisi dalam tabel | 60.000 | Jumlah | Tabel dapat berisi maksimal 60.000 partisi. |
Tingkat partisi tabel | 6 | Jumlah | Tabel dapat berisi maksimal enam tingkat partisi. |
Tampilan output | 10.000 baris | Jumlah | Pernyataan SELECT dapat mengembalikan maksimal 10.000 baris. |
Jumlah tabel tujuan untuk operasi | 256 | Jumlah | Pernyataan |
| 256 | Jumlah | Pernyataan |
| 128 | Jumlah | Petunjuk |
Memori | 512 MB | Jumlah | Ukuran memori untuk semua tabel kecil tidak boleh melebihi 512 MB saat Anda menentukan petunjuk |
| 1.000 baris | Jumlah | Pernyataan PT IN SUBQUERY dapat menghasilkan maksimal 1.000 baris. |
Panjang pernyataan SQL | 2 MB | Panjang | Pernyataan SQL tidak boleh melebihi 2 MB panjangnya. Batas ini cocok untuk skenario di mana Anda menggunakan SDK untuk mengeksekusi pernyataan SQL. |
Panjang catatan kolom | 8 MB | Jumlah | Panjang maksimum catatan kolom dalam tabel adalah 8 MB. |
Parameter dalam klausa IN | 1.024 | Jumlah | Item ini menentukan jumlah maksimum parameter dalam klausa IN, seperti |
| 1 MB | Panjang | Ukuran maksimum file |
Tampilan | Tidak dapat ditulis | Operasi | Tampilan tidak dapat ditulis dan tidak mendukung pernyataan |
Tipe data dan posisi kolom | Tidak dapat diubah | Operasi | Tipe data dan posisi kolom tidak dapat diubah. |
Fungsi yang ditentukan pengguna Java (UDF) | Tidak diizinkan menjadi | Operasi | UDF Java tidak boleh menjadi |
Partisi yang dapat di-query | 10.000 | Jumlah | Maksimal 10.000 partisi dapat di-query. |
Rencana eksekusi SQL | 1 MB | Panjang | Ukuran rencana eksekusi yang dihasilkan menggunakan pernyataan SQL MaxCompute tidak boleh melebihi 1 MB. Jika tidak, pesan kesalahan |
Durasi eksekusi maksimum untuk satu pekerjaan | 72 jam | Durasi eksekusi | Durasi eksekusi maksimum default untuk satu pekerjaan SQL adalah 24 jam. Anda dapat menggunakan pengaturan parameter berikut untuk menjalankan satu pekerjaan SQL hingga 72 jam. Pekerjaan SQL tidak dapat berjalan lebih dari 72 jam. Jika pekerjaan SQL berjalan selama 72 jam, pekerjaan tersebut akan dihentikan secara otomatis. |
Frekuensi pembuatan partisi tabel | 120 kali setiap 15 detik | Batas frekuensi | Batas frekuensi untuk mengeksekusi operasi ALTER TABLE <table_name> ADD PARTITION <pt_spec> untuk membuat partisi tabel adalah 120 kali setiap 15 detik. |
Untuk informasi lebih lanjut tentang SQL, lihat SQL.
Batasan MapReduce
Tabel berikut menjelaskan batasan pengembangan pekerjaan MapReduce di MaxCompute.
| Item | Rentang nilai | Klasifikasi | Item konfigurasi | Nilai default | Dapat dikonfigurasi | Deskripsi |
| Memori yang digunakan oleh instance | [256 MB,12 GB] | Memori | odps.stage.mapper(reducer).mem dan odps.stage.mapper(reducer).jvm.mem | 2.048 MB dan 1.024 MB | Ya | Memori yang digunakan oleh satu instance map atau reduce. Memori terdiri dari dua bagian: memori framework, yaitu 2.048 MB secara default, dan memori heap Java Virtual Machine (JVM), yaitu 1.024 MB secara default. |
| Jumlah sumber daya | 256 | Jumlah | - | Tidak tersedia | Tidak | Setiap pekerjaan dapat merujuk hingga 256 sumber daya. Setiap tabel atau arsip dianggap sebagai satu sumber daya. |
| Jumlah input dan output | 1.024 dan 256 | Jumlah | - | Tidak tersedia | Tidak | Jumlah input pekerjaan tidak boleh melebihi 1.024, dan jumlah output pekerjaan tidak boleh melebihi 256. Partisi tabel dianggap sebagai satu input. Jumlah tabel tidak boleh melebihi 64. |
| Jumlah counter | 64 | Jumlah | - | Tidak tersedia | Tidak | Jumlah counter kustom dalam pekerjaan tidak boleh melebihi 64. Nama grup counter dan nama counter tidak boleh mengandung tanda pagar (#). Total panjang kedua nama tersebut tidak boleh melebihi 100 karakter. |
| Jumlah instance map | [1,100000] | Jumlah | odps.stage.mapper.num | Tidak tersedia | Ya | Jumlah instance map dalam pekerjaan dihitung oleh framework berdasarkan ukuran split. Jika tabel input tidak ditentukan, Anda dapat mengatur parameter odps.stage.mapper.num untuk menentukan jumlah instance map. Rentang nilainya adalah dari 1 hingga 100.000. |
| Jumlah instance reduce | [0,2000] | Jumlah | odps.stage.reducer.num | Tidak tersedia | Ya | Secara default, jumlah instance reduce dalam pekerjaan adalah 25% dari jumlah instance map. Anda dapat mengatur jumlahnya menjadi nilai yang berkisar antara 0 hingga 2.000. Instance reduce memproses jauh lebih banyak data daripada instance map, yang dapat mengakibatkan waktu pemrosesan lama pada tahap reduce. Sebuah pekerjaan dapat memiliki maksimal 2.000 instance reduce. |
| Jumlah percobaan ulang | 3 | Jumlah | - | Tidak tersedia | Tidak | Jumlah maksimum percobaan ulang yang diizinkan untuk instance map atau reduce adalah 3. Pengecualian yang tidak mengizinkan percobaan ulang dapat menyebabkan kegagalan pekerjaan. |
| Mode debug lokal | Maksimal 100 instance | Jumlah | - | Tidak tersedia | Tidak | Dalam mode debug lokal:
|
| Jumlah kali sebuah sumber daya dibaca berulang | 64 | Jumlah | - | Tidak tersedia | Tidak | Jumlah kali sebuah instance map atau reduce membaca sumber daya secara berulang tidak boleh melebihi 64. |
| Ukuran byte sumber daya | 2 GB | Panjang | - | Tidak tersedia | Tidak | Total byte sumber daya yang dirujuk oleh pekerjaan tidak boleh melebihi 2 GB. |
| Ukuran split | Lebih besar atau sama dengan 1 | Panjang | odps.stage.mapper.split.size | 256 MB | Ya | Framework menentukan jumlah instance map berdasarkan ukuran split. |
| Panjang string dalam kolom | 8 MB | Panjang | - | Tidak tersedia | Tidak | String dalam kolom tidak boleh melebihi 8 MB panjangnya. |
| Periode timeout pekerja | [1,3600] | Waktu | odps.function.timeout | 600 | Ya | Periode timeout pekerja map atau reduce ketika pekerja tidak membaca atau menulis data, atau berhenti mengirimkan heartbeat menggunakan context.progress(). Nilai defaultnya adalah 600 detik. |
| Tipe bidang yang didukung oleh tabel yang dirujuk oleh MapReduce | BIGINT, DOUBLE, STRING, DATETIME, dan BOOLEAN | Tipe data | - | Tidak tersedia | Tidak | Ketika tugas MapReduce merujuk ke tabel, kesalahan akan dikembalikan jika tabel memiliki tipe bidang yang tidak didukung. |
| Pembacaan data Object Storage Service (OSS) | - | Fitur | - | Tidak tersedia | Tidak | MapReduce tidak dapat membaca data OSS. |
| Tipe data baru di MaxCompute V2.0 | - | Fitur | - | Tidak tersedia | Tidak | MapReduce tidak mendukung tipe data baru di MaxCompute V2.0. |
Untuk informasi lebih lanjut tentang MapReduce, lihat MapReduce.
Batasan PyODPS
Sebelum menggunakan DataWorks untuk mengembangkan pekerjaan PyODPS di MaxCompute, perhatikan batasan-batasan berikut:
Setiap node PyODPS dapat memproses maksimal 50 MB data dan menggunakan maksimal 1 GB memori. Jika melebihi batas ini, DataWorks akan menghentikan node PyODPS. Hindari menulis kode pemrosesan data Python yang tidak perlu dalam pekerjaan PyODPS.
Efisiensi penulisan dan debugging kode di DataWorks rendah. Disarankan untuk menginstal lingkungan pengembangan terintegrasi (IDE) di mesin lokal untuk menulis kode.
Untuk mencegah tekanan berlebih pada gateway DataWorks, DataWorks membatasi penggunaan CPU dan memori. Jika sistem menampilkan "Got killed", penggunaan memori telah melebihi batas atas dan sistem menghentikan proses terkait. Hindari operasi data lokal. Namun, batasan penggunaan memori dan pemanfaatan CPU tidak berlaku untuk tugas SQL atau DataFrame, kecuali to_pandas, yang diinisiasi oleh PyODPS.
Fungsi mungkin dibatasi karena kurangnya paket seperti matplotlib:
Penggunaan fungsi plot DataFrame terpengaruh.
UDF DataFrame hanya dapat digunakan setelah UDF dikomit ke MaxCompute. Anda hanya dapat menggunakan pustaka Python murni dan NumPy untuk menjalankan UDF berdasarkan persyaratan sandbox Python. Pustaka pihak ketiga seperti pandas tidak didukung.
Anda dapat menggunakan pustaka NumPy dan pandas yang telah diinstal sebelumnya di DataWorks untuk menjalankan kode fungsi selain UDF. Paket pihak ketiga yang berisi kode biner tidak didukung.
Untuk alasan kompatibilitas, options.tunnel.use_instance_tunnel diatur ke False secara default di DataWorks. Untuk mengaktifkan InstanceTunnel secara global, atur parameter ini ke True.
Paket Python atexit tidak didukung. Gunakan struktur try-finally untuk mengimplementasikan fitur terkait.
Untuk informasi lebih lanjut tentang PyODPS, lihat PyODPS.
Batasan Graph
Sebelum mengembangkan pekerjaan Graph di MaxCompute, perhatikan batasan-batasan berikut:
Setiap pekerjaan dapat merujuk hingga 256 sumber daya. Setiap tabel atau arsip dihitung sebagai satu unit.
Total byte sumber daya yang dirujuk oleh pekerjaan tidak boleh melebihi 512 MB.
Jumlah input pekerjaan tidak boleh melebihi 1.024, dan jumlah output pekerjaan tidak boleh melebihi 256. Jumlah tabel input tidak boleh melebihi 64.
Label yang ditentukan untuk beberapa output tidak boleh null atau string kosong. Label tidak boleh melebihi 256 karakter dan hanya dapat berisi huruf, angka, garis bawah (_), tanda pagar (#), titik (.), dan tanda hubung (-).
Jumlah counter kustom dalam pekerjaan tidak boleh melebihi 64. Counter
group namedancounter nametidak boleh mengandung tanda pagar (#). Total panjang kedua nama tersebut tidak boleh melebihi 100 karakter.Jumlah pekerja untuk pekerjaan dihitung oleh framework. Jumlah maksimum pekerja adalah 1.000. Kesalahan akan dilaporkan jika jumlah pekerja melebihi nilai ini.
Seorang pekerja mengonsumsi 200 unit sumber daya CPU secara default. Rentang sumber daya yang dikonsumsi adalah 50 hingga 800.
Seorang pekerja mengonsumsi 4.096 MB memori secara default. Rentang memori yang dikonsumsi adalah 256 MB hingga 12 GB.
Seorang pekerja dapat membaca sumber daya berulang hingga 64 kali.
Nilai default
split_sizeadalah 64 MB. Anda dapat mengonfigurasi parameter ini berdasarkan kebutuhan bisnis. Nilaisplit_sizeharus lebih besar dari 0 dan lebih kecil atau sama dengan hasil operasi 9223372036854775807>>20.GraphLoader, Vertex, dan Aggregator di MaxCompute Graph dibatasi oleh sandbox Java saat dijalankan di kluster. Namun, program utama pekerjaan Graph tidak dibatasi oleh sandbox Java. Untuk informasi lebih lanjut, lihat Java Sandbox.
Untuk informasi lebih lanjut tentang Graph, lihat Graph.
Batasan lainnya
Tabel berikut menunjukkan jumlah maksimum pekerjaan bersamaan yang dapat dikirimkan di proyek MaxCompute di berbagai wilayah.
Region | Jumlah maksimum pekerjaan bersamaan dalam satu proyek MaxCompute |
Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Beijing), Tiongkok (Zhangjiakou), Tiongkok (Ulanqab), Tiongkok (Shenzhen), dan Tiongkok (Chengdu) | 2.500 |
Tiongkok (Hong Kong), Singapura, Malaysia (Kuala Lumpur), Indonesia (Jakarta), Jepang (Tokyo), Jerman (Frankfurt), AS (Silicon Valley), AS (Virginia), Inggris (London) dan UEA (Dubai) | 1000 |
Jika Anda terus mengirimkan pekerjaan setelah mencapai batas atas jumlah pekerjaan bersamaan di proyek MaxCompute, pesan kesalahan akan muncul. Contoh pesan kesalahan: com.aliyun.odps.OdpsException: Request rejected by flow control. You have exceeded the limit for the number of tasks you can run concurrently in this project. Please try later.