Client MaxCompute (odpscmd) adalah antarmuka baris perintah yang memungkinkan Anda menjalankan perintah dan mengelola proyek dari mesin lokal. Topik ini menjelaskan cara mengunduh, menginstal, mengonfigurasi, dan menggunakan odpscmd.
Prasyarat
-
Client MaxCompute memerlukan Java 8 atau versi yang lebih baru.
-
Kompatibilitas versi
-
Client MaxCompute v0.28.0 dan yang lebih baru mendukung JDK 1.9 ke atas. Versi sebelum v0.28.0 hanya mendukung JDK 1.8. Setelah Anda menjalankan client MaxCompute, Anda dapat melihat versi client di antarmuka baris perintah.
-
Format output client MaxCompute tidak kompatibel mundur (backward-compatible). Format perintah dan perilaku dapat berbeda antarversi client. Jangan mengandalkan format output client untuk parsing.
-
Untuk versi client lainnya, lihat aliyun-odps-console.
-
-
Pengkodean karakter
Client menggunakan UTF-8 secara default. Jika pengkodean karakter lingkungan lokal Anda bukan UTF-8, karakter yang tidak terbaca (garbled) mungkin muncul saat Anda melakukan kueri data yang berisi karakter Tionghoa dari tabel MaxCompute atau menggunakan perintah Tunnel untuk mengunggah file lokal yang berisi karakter tersebut.
Penagihan
Menggunakan client MaxCompute untuk menghubungkan ke proyek tidak dikenai biaya, tetapi operasi yang dilakukan melalui client dikenai penagihan MaxCompute. Misalnya, mengirimkan kueri SQL akan mengonsumsi sumber daya komputasi, dan menulis data akan menggunakan storage space. Hal ini mengakibatkan biaya komputasi dan penyimpanan. Untuk informasi selengkapnya tentang penagihan MaxCompute, lihat Item yang Dikenai Biaya dan Metode Penagihan.
Instal dan konfigurasi odpscmd
odpscmd v0.27.0 dan yang lebih baru mendukung tipe data MaxCompute 2.0. Kami merekomendasikan Anda menggunakan tipe data ini. Untuk daftar tipe data yang didukung, lihat Tipe Data (V2.0).
Prosedur
-
Unduh paket instalasi odpscmd (GitHub).
Catatan-
Ikuti tautan ke halaman rilis dan unduh versi terbaru paket instalasi odpscmd (odpscmd_public.zip).
-
Jika Anda tidak dapat mengunduh paket dari tautan GitHub, coba unduh paket instalasi odpscmd (OSS). Jika Anda mengalami masalah mengakses GitHub, kami sarankan Anda mencari solusi secara daring.
-
-
Ekstrak paket yang telah diunduh. Direktori hasil ekstraksi berisi folder bin, conf, lib, dan plugins.
-
Buka folder conf dan konfigurasi file odps_config.ini.
Dalam file odps_config.ini, tanda pagar (#) menunjukkan komentar. Tabel berikut menjelaskan parameter-parameter tersebut.
Parameter
Wajib
Deskripsi
Contoh
project_name
Ya
Nama proyek MaxCompute tujuan.
Jika Anda membuat ruang kerja dalam mode standar, bedakan antara nama proyek untuk lingkungan produksi dan lingkungan pengembangan (_dev) saat mengonfigurasi parameter project_name. Untuk informasi selengkapnya, lihat Perbedaan antara mode ruang kerja.
-
Login ke Konsol MaxCompute dan pilih wilayah di pojok kiri atas.
-
Di panel navigasi sebelah kiri, pilih .
-
Di halaman Projects, lihat nama proyek MaxCompute Anda.
doc_test_dev
access_id
Ya
ID AccessKey Akun Alibaba Cloud atau Pengguna RAM Anda. Dapatkan ID AccessKey dari halaman AccessKey Management.
N/A
access_key
Ya
Secret AccessKey yang sesuai dengan ID AccessKey tersebut.
N/A
end_point
Ya
Titik akhir layanan MaxCompute.
Anda harus mengonfigurasi titik akhir berdasarkan wilayah tempat proyek MaxCompute Anda berada dan jenis koneksi jaringan. Untuk daftar titik akhir berbagai wilayah dan jenis jaringan, lihat Endpoints.
Penting-
Titik akhir menghubungkan ke layanan MaxCompute, sedangkan titik akhir saluran data (tunnel endpoint) menghubungkan ke layanan MaxCompute Tunnel. Tentukan titik akhir untuk layanan MaxCompute di sini.
-
Konfigurasi titik akhir yang salah menyebabkan error akses.
http://service.cn-hangzhou.maxcompute.aliyun.com/api
log_view_host
Tidak
URL LogView. Kami merekomendasikan Anda mengonfigurasi parameter ini. Jika tidak dikonfigurasi, Anda tidak dapat mengidentifikasi penyebab kegagalan pekerjaan dengan cepat.
Gunakan URL ini untuk melihat informasi runtime pekerjaan secara detail dan memecahkan masalah error. Nilai tetapnya adalah http://logview.odps.aliyun.com.
http://logview.odps.aliyun.com
https_check
Tidak
Menentukan apakah HTTPS diaktifkan untuk mengenkripsi permintaan saat mengakses proyek MaxCompute. Nilai yang valid:
-
True: Mengaktifkan HTTPS.
-
False: Menggunakan HTTP.
Nilai default adalah False.
True
data_size_confirm
Tidak
Ukuran maksimum data masukan dalam GB. Nilai ini tidak memiliki batas atas. Nilai yang direkomendasikan: 100.
100
update_url
Tidak
Parameter ini dicadangkan untuk penggunaan di masa mendatang.
N/A
use_instance_tunnel
Tidak
Menentukan apakah menggunakan InstanceTunnel untuk mengunduh hasil eksekusi SQL. Nilai yang valid:
-
True: Gunakan InstanceTunnel untuk mengunduh hasil eksekusi SQL.
-
False: Jangan gunakan InstanceTunnel untuk mengunduh hasil eksekusi SQL.
Nilai default adalah False.
True
instance_tunnel_max_record
Tidak
Jumlah maksimum catatan dalam hasil eksekusi SQL. Jika use_instance_tunnel diatur ke True, Anda harus mengonfigurasi parameter ini. Nilai maksimum adalah 10.000.
10000
tunnel_endpoint
Tidak
Titik akhir publik untuk layanan Tunnel.
-
Jika Anda tidak mengonfigurasi parameter ini, Tunnel secara otomatis mengarahkan permintaan ke titik akhir saluran data yang sesuai dengan jaringan layanan MaxCompute.
-
Jika Anda mengonfigurasi titik akhir saluran data, Tunnel menggunakan nilai tersebut dan tidak melakukan pengarahan otomatis.
Untuk daftar titik akhir saluran data berbagai wilayah dan jenis jaringan, lihat Endpoints.
http://dt.cn-hangzhou.maxcompute.aliyun.com
set.<key>
Tidak
Mengatur properti untuk proyek MaxCompute.
Untuk informasi selengkapnya tentang properti, lihat daftar properti.
set.odps.sql.decimal.odps2=true
Pastikan informasi di atas dikonfigurasi dengan benar. Kesalahan konfigurasi dapat menyebabkan kegagalan koneksi ke proyek.
-
Jalankan client MaxCompute
-
Jika Anda menggunakan client MaxCompute sebagai Pengguna RAM, gunakan Akun Alibaba Cloud Anda untuk menambahkan Pengguna RAM tersebut ke proyek MaxCompute target. Untuk informasi selengkapnya tentang penambahan pengguna, lihat Berikan izin kepada pengguna lain.
-
Gunakan salah satu metode berikut untuk menjalankan client MaxCompute:
File skrip
Di direktori bin instalasi client MaxCompute Anda, klik dua kali
odpscmd.bat(di Windows) atauodpscmd(di macOS) untuk menjalankan client MaxCompute. Output berikut menunjukkan koneksi berhasil ke proyek MaxCompute.odpscmd Aliyun ODPS Command Line Tool Version 0.4xxx @Copyright 2020 Alibaba Cloud Computing Co., Ltd. All rights reserved. Connecting to http://service.xxx.maxcompute.aliyun.com/api, project: xxx Executing predefined SET command: SET odps.sql.hive.compatible=true OK Endpoint: http://service.xxx.maxcompute.aliyun.com/api Project: xxx Schema: default Quota: default in region N/A Timezone: Asia/Shanghai Connected!Jendela command-line
Di jendela command-line, buka direktori bin instalasi client MaxCompute Anda. Jalankan
odpscmddi Windows ataush odpscmddi Linux atau macOS untuk menjalankan client MaxCompute. Pesan sukses menunjukkan bahwa client telah terhubung ke proyek MaxCompute.CatatanDi Ubuntu,
sh odpscmdmengembalikan error. Gunakan./odpscmdsebagai gantinya.Saat Anda menjalankan client MaxCompute dari jendela command-line, Anda dapat menentukan parameter startup untuk menjalankan perintah. Untuk informasi selengkapnya, lihat Parameter startup.
Operasi client MaxCompute
Bantuan perintah
Anda dapat memperoleh bantuan untuk perintah client MaxCompute dengan salah satu cara berikut:
Di client MaxCompute
-
Lihat bantuan untuk semua perintah.
odps@project_name>help; -- Perintah berikut setara. odps@project_name>h; -
Lihat bantuan untuk perintah yang terkait dengan kata kunci tertentu.
Misalnya, untuk mendapatkan bantuan perintah terkait tabel, jalankan perintah berikut.
odps@project_name>help table; -- Output berikut dikembalikan. Usage: alter table <tablename> merge smallfiles Usage: export table <tablename> Usage: show tables [in <project_name>] [like '<prefix>'] list|ls tables [-p,-project <project_name>] Usage: describe|desc [<projectname>.]<tablename> [partition(<spec>)] Usage: read [<project_name>.]<table_name> [(<col_name>[,..])] [PARTITION (<partition_spec>)] [line_num]PentingPerintah
readmenggunakan sintaks SQL dan dikenai penagihan SQL.
Dari CLI sistem
Di jendela command-line sistem Anda, buka direktori bin instalasi client MaxCompute Anda. Lalu, jalankan perintah berikut untuk melihat bantuan semua perintah. Anda dapat menentukan serangkaian parameter saat menjalankan client MaxCompute dari jendela command-line. Untuk informasi selengkapnya tentang parameter tersebut, lihat Parameter.
...\odpscmd\bin>odpscmd -h
Informasi pengguna saat ini
Jalankan perintah berikut untuk mendapatkan informasi pengguna saat ini.
odps@project_name>whoami;
Output berisi bidang-bidang berikut:
-
Name: Akun saat ini.
-
Source IP: Alamat IP perangkat yang menjalankan client MaxCompute.
-
End_Point: Titik akhir layanan MaxCompute.
-
Project: Nama proyek.
-
Schema: Skema dalam proyek.
Keluar dari client MaxCompute
Jalankan perintah berikut untuk keluar dari client MaxCompute.
odps@project_name>quit;
-- Perintah berikut setara.
odps@project_name>q;
Perintah tunnel download
-
Pertama kali Anda menjalankan perintah
tunnel download, client MaxCompute membuat folder sesi untuk log di direktoriplugins/dshipinstalasinya. -
Jika beberapa pengguna menjalankan perintah
tunnel downloadpada perangkat yang sama, gunakan metode berikut untuk memastikan keamanan data:-
Gunakan pengaturan izin sistem operasi Anda untuk mengontrol akses ke folder sesi.
-
Tambahkan parameter
-sd <new_session_folder_name>atau-session-dir <new_session_folder_name>ke perintahtunnel downloaduntuk mengunduh data ke folder sesi yang berbeda. Untuk informasi selengkapnya tentang perintahtunnel download, lihat Download.
-
Dokumen terkait
Setelah login ke client MaxCompute, Anda dapat menjalankan perintah SQL dalam proyek MaxCompute. Untuk informasi selengkapnya, lihat Menggunakan client MaxCompute.
Untuk detail sintaks perintah client MaxCompute, lihat Referensi perintah atau Perintah dan fungsi SQL.
FAQ
Setelah mengonfigurasi file odps_config.ini dan menjalankan client MaxCompute, Anda mungkin mengalami error umum berikut:
Error: no java found
-
Penyebab
Java tidak diinstal di mesin yang menjalankan client MaxCompute.
-
Solusi
Instal Java di mesin tersebut dan konfigurasi variabel lingkungan. Client MaxCompute v0.28.0 dan yang lebih baru mendukung JDK 1.9 atau lebih tinggi. Versi sebelumnya hanya mendukung JDK 1.8.
Error: Could not find or load main class com.aliyun.openservices.odps.console.ODPSConsole
-
Penyebab
Anda mungkin telah mengunduh paket client dua kali, sehingga direktori secara otomatis diganti namanya menjadi
odpscmd_public (1). Nama direktori yang mengandung karakter khusus, seperti spasi, dapat menyebabkan kegagalan resolusi path. -
Solusi
Hapus spasi dan karakter khusus lain dari nama direktori.
Error: Accessing project '<projectname>' failed: ODPS-0420111: Project not found - '<projectname>'.
-
Penyebab
Nama proyek dalam file odps_config.ini mungkin salah.
-
Solusi
-
Login ke Konsol MaxCompute dan pilih wilayah di pojok kiri atas.
-
Di panel navigasi sebelah kiri, pilih .
-
Di halaman Projects, temukan nama yang benar dari proyek MaxCompute Anda, lalu modifikasi file odps_config.ini.
-
Error: Accessing project '<projectname>' failed: ODPS-0420095: Access Denied - Authorization Failed [4002], You don't exist in project <projectname>.
-
Penyebab
Akun Alibaba Cloud atau Pengguna RAM yang terkait dengan AccessKey saat ini belum ditambahkan ke proyek target, atau nama proyek salah.
-
Solusi
Hubungi pemilik proyek untuk menambahkan Akun Alibaba Cloud atau Pengguna RAM ke proyek target. Untuk informasi selengkapnya, lihat Tambahkan pengguna Akun Alibaba Cloud (tingkat proyek) atau Tambahkan Pengguna RAM (tingkat proyek).
Error: Accessing project '<projectname>' failed: { "Code": "InvalidProjectTable", "Message": "The specified project or table name is not valid or missing."} atau Accessing project '<projectname>' failed: connect timed out
-
Penyebab
Nilai parameter
end_pointsalah. Misalnya, Anda mencoba menghubungkan dari komputer lokal tetapi telah mengonfigurasi titik akhir untuk jaringan internal (seperti jaringan klasik) atau titik akhir saluran data. -
Solusi
Lihat dokumentasi Endpoints dan pilih titik akhir yang benar untuk wilayah dan lingkungan jaringan proyek Anda.
Pastikan Anda menggunakan titik akhir layanan MaxCompute, bukan titik akhir saluran data, untuk parameter
end_point. Titik akhir saluran data digunakan untuk layanan MaxCompute Tunnel.
Error: Accessing project '<projectname>' failed: <endpoint>
-
Penyebab
Nilai parameter
end_pointsalah. Misalnya, Anda mungkin memasukkanhttp://service.ch-hangzhou.maxcompute.aliyun.com/api. Titik akhir jaringan publik yang benar untuk wilayah China (Hangzhou) adalahhttp://service.cn-hangzhou.maxcompute.aliyun.com/api. -
Solusi
Lihat dokumentasi Endpoints dan salin titik akhir yang benar untuk wilayah dan lingkungan jaringan proyek Anda. Kami merekomendasikan menyalin titik akhir daripada mengetiknya secara manual.
Parameter startup
Anda dapat menjalankan perintah dengan cepat dari command line sistem dengan menentukan parameter startup.
Usage: odpscmd [OPTION]...
where options include:
--help (-h)for help
--config=<config_file> specify another config file
--project=<prj_name> use project
--endpoint=<http://host:port> set endpoint
-k <n> will skip begining queries and start from specified position
-r <n> set retry times
-f <"file_path;"> execute command in file
-e <"command;[command;]..."> execute command, include sql command
Tabel berikut menjelaskan parameter startup.
|
Parameter |
Deskripsi |
Contoh |
|
|
Menampilkan informasi bantuan untuk semua perintah client MaxCompute. |
|
|
|
Menentukan path ke file odps_config.ini. Path default adalah |
|
|
|
Menentukan nama proyek MaxCompute yang akan diakses. |
|
|
|
Menentukan titik akhir untuk menghubungkan ke layanan MaxCompute. Untuk informasi selengkapnya, lihat Endpoints. |
|
|
|
Melewati n-1 pernyataan pertama dan memulai eksekusi dari pernyataan ke-n. Jika |
Melewati dua pernyataan pertama dan memulai eksekusi dari pernyataan ketiga. |
|
|
Menentukan jumlah kali percobaan ulang untuk pekerjaan yang gagal. |
|
|
|
Menentukan file yang berisi perintah untuk dieksekusi. |
|
|
|
Menentukan perintah untuk dieksekusi. |
|
Di shell atau command line Windows, gunakan odpscmd -e <SQL_statement> untuk menangkap nilai kembali dinamis dalam variabel shell untuk pekerjaan berikutnya. Dalam skenario ini, nilai kembali tidak boleh berisi informasi tambahan, seperti detail runtime atau header. Untuk memudahkan skrip shell, atur parameter use_instance_tunnel dalam file odps_config.ini ke false untuk menonaktifkan Instance Tunnel. Lalu, jalankan perintah set odps.sql.select.output.format={"needHeader":false,"fieldDelim":" "}; untuk menyembunyikan header.
Misalnya, pertimbangkan tabel bernama noheader dengan satu kolom dan tiga baris data: 1, 2, dan 3. Jalankan perintah berikut untuk mengarahkan output standar ke file. Output hanya berisi data dan tidak ada informasi tambahan:
--Windows command line:
...\odpscmd\bin>odpscmd -e "set odps.sql.select.output.format={""needHeader"":false,""fieldDelim"":"" ""};select * from noheader;" >D:\test.txt
--Hasil disimpan ke D:\test.txt.
--Shell:
/Users/.../odpscmd/bin/odpscmd -e "set odps.sql.select.output.format={\"needHeader\":false,\"fieldDelim\":\"\"};select * from noheader;" >/Users/A/temp/test.txt
--Hasil disimpan ke /Users/A/temp/test.txt.
--Output:
1
2
3
Riwayat versi
Tabel berikut menjelaskan pembaruan terbaru untuk odpscmd. Untuk detail selengkapnya, klik tautan versi tertentu.
Untuk daftar lengkap versi odpscmd dan catatan rilis, lihat GitHub.
|
Versi |
Jenis |
Deskripsi |
|
fitur baru |
Menambahkan dukungan untuk menggunakan token STS sebagai kredensial keamanan sementara. |
|
|
perbaikan bug |
Memperbarui library Apache Arrow untuk menyelesaikan masalah kompatibilitas dependensi. |
|
|
fitur baru |
Menambahkan parameter |
|
|
peningkatan |
|
|
|
perbaikan bug |
Memperbarui dependensi untuk menyelesaikan kerentanan CVE. |
|
|
fitur baru |
Menambahkan opsi akselerasi untuk mengunduh volume eksternal. |
|
|
peningkatan |
Menyusun ulang perintah |
|
|
fitur baru |
|
|
|
peningkatan |
|
|
|
fitur baru |
|
|
|
fitur baru |
|
|
|
perbaikan bug |
Menyempurnakan mode MCQA untuk mendeteksi perilaku fallback secara lebih akurat dan mencegah tampilan logview ganda. |
|
|
fitur baru |
|
|
|
peningkatan |
|
|
|
fitur baru |
Menambahkan dukungan untuk tipe data JSON dalam operasi Tunnel. |
|
|
fitur baru |
|
|
|
peningkatan |
Memperluas |
|
|
fitur baru |
|
|
|
fitur baru |
|
|
|
peningkatan |
|
|
|
fitur baru |
|
|
|
perbaikan bug |
Menghapus dependensi Log4j. |
|
|
fitur baru |
Menambahkan dukungan untuk organisasi data berbasis skema dalam proyek. Untuk informasi selengkapnya, lihat Operasi skema. |
|
|
fitur baru |
Menambahkan dukungan untuk mengunggah dan mengunduh tipe data kompleks melalui Tunnel. |
|
|
peningkatan |
|
|
|
fitur baru |
Menambahkan dukungan untuk membuat proyek eksternal guna menghubungkan ke Data Lake Formation (DLF), yang memungkinkan kemampuan lakehouse. |
|
|
perbaikan bug |
Memperbaiki masalah di mana bagian nanodetik data TIMESTAMP ditangani secara salah saat pengunduhan. |