Pertanyaan umum mengenai tipe data, batasan SQL, dan topik terkait lainnya saat menjalankan pernyataan SQL di MaxCompute.
Dapatkah bidang yang terkait waktu di MaxCompute menyimpan tanggal tanpa waktu?
Ya. Gunakan tipe data DATE, yang memerlukan tipe data MaxCompute V2.0 diaktifkan. Untuk informasi lebih lanjut, lihat versi tipe data 2.0.
Mengapa saya mendapatkan hasil yang tidak terduga saat membandingkan dua nilai DOUBLE untuk kesamaan dalam pernyataan SQL MaxCompute?
Tipe data DOUBLE di MaxCompute rentan terhadap error presisi. Jangan gunakan operator sama dengan (=) untuk membandingkan dua nilai DOUBLE secara langsung.
Sebagai gantinya, kurangi salah satu nilai dari nilai lainnya dan periksa apakah selisih absolutnya cukup kecil untuk dianggap sama.
Bagaimana cara mengatasi error overflow presisi untuk tipe data DECIMAL?
Anda dapat menjalankan perintah set odps.sql.decimal.odps2=true; pada tingkat sesi untuk mengaktifkan dukungan tipe data MaxCompute V2.0. Presisi maksimum untuk tipe data DECIMAL di MaxCompute adalah 38 digit. Menyimpan data dengan presisi maksimum meningkatkan kemungkinan terjadinya error overflow selama pemrosesan. Gunakan presisi yang lebih kecil bila memungkinkan.
Proyek MaxCompute yang baru dibuat tidak mendukung konversi tipe data implisit. Bagaimana cara mengatasinya?
Nonaktifkan dukungan tipe data MaxCompute V2.0 untuk mengizinkan konversi implisit. Untuk informasi lebih lanjut, lihat Konversi tipe data.
Saat saya melakukan kueri data, muncul pesan error 'XXX type is not enabled in current mode'. Bagaimana cara mengatasinya?
Anda dapat menjalankan perintah set odps.sql.decimal.odps2=true; pada tingkat sesi untuk mengaktifkan dukungan tipe data MaxCompute V2.0.
Bagaimana cara menangani batas 8 MB untuk satu bidang?
Satu bidang dalam tabel MaxCompute tidak boleh melebihi 8 MB. Jika suatu bidang melebihi batas ini, pisahkan menjadi beberapa bidang yang lebih kecil sesuai kebutuhan bisnis Anda.
Bidang besar dengan struktur kompleks dapat menurunkan performa komputasi. Untuk menghindarinya, rancang arsitektur data Anda mengikuti standar gudang data:
-
Arsipkan data mentah dengan struktur kompleks di lapisan Operational Data Store (ODS) dalam format terkompresi.
-
Bersihkan secara berkala data inkremental di lapisan ODS (misalnya, harian). Pisahkan bidang kompleks menjadi beberapa bidang sederhana dan simpan di tabel lapisan Common Data Model (CDM) agar lebih mudah dianalisis.
Saat saya menjalankan pernyataan SQL MaxCompute, muncul pesan error 'partitions exceeds the specified limit'. Bagaimana cara mengatasinya?
-
Gejala
Saat Anda menjalankan pernyataan SQL MaxCompute, pesan error berikut dikembalikan.
FAILED: ODPS-0010000:System internal error - OTS filtering exception - Ots read range partitions exceeds the specified limit:10000: tableName:xxxx , please check hive conf key -
Penyebab
Satu tabel MaxCompute mendukung hingga 60.000 partisi, tetapi satu kueri hanya dapat mengakses maksimal 10.000 partisi. Error ini dapat terjadi karena alasan berikut:
-
Alasan 1: Anda tidak menentukan kondisi partisi.
-
Alasan 2: Anda menggunakan bidang seperti ID pengguna sebagai bidang partisi, yang menghasilkan terlalu banyak partisi.
-
-
Solusi
-
Solusi untuk Alasan 1: Jika Anda tidak menentukan kondisi partisi, tambahkan kondisi tersebut.
-
Solusi untuk Alasan 2: Jika kolom kunci partisi tidak sesuai dan menyebabkan terlalu banyak partisi, pertimbangkan untuk mengganti kolom kunci partisi tersebut.
-
Bagaimana cara menjalankan pernyataan SQL MaxCompute secara non-interaktif?
Anda dapat menggunakan Shell untuk menjalankan pernyataan SQL MaxCompute secara non-interaktif:
-
Gunakan perintah
odps -f filenameuntuk membaca dan memproses file SQL.Saat menjalankan pernyataan SQL, baris pertama file `filename` harus berupa
SQLuntuk menunjukkan mode SQL.SQL select ... from table_name where xxx; -
Untuk menjalankan satu pernyataan SQL, gunakan metode
sqltextdalam SQL MaxCompute../odpscmd -e "select * from dual;"Jalankan
odps -helpuntuk informasi lebih lanjut.
Dapatkah saya menggunakan SQL untuk mentransfer konfigurasi MaxCompute ke Akun Alibaba Cloud lain?
Ya. Gunakan metode Package. Untuk informasi lebih lanjut, lihat Best Practices for Multi-team Collaborative Data Development and Project Management in MaxCompute.
Bagaimana cara menyinkronkan data tabel dari lingkungan pengembangan ke lingkungan produksi?
Jalankan perintah berikut di client MaxCompute.
insert into project.table select * from project_dev.table;
Jika Anda tidak memiliki izin baca dan tulis pada tabel produksi, berikan izin yang diperlukan ke akun Anda. Untuk informasi lebih lanjut, lihat Izin MaxCompute.
Bagaimana cara memeriksa apakah suatu bidang kosong?
Gunakan operator dalam SQL MaxCompute untuk memeriksa apakah suatu bidang kosong. Untuk informasi lebih lanjut, lihat Operator.
Dapatkah saya memanggil SQL MaxCompute dari node Shell di DataWorks?
Tidak. Node Shell hanya mendukung sintaks Shell standar, bukan sintaks interaktif. Untuk menjalankan beberapa pekerjaan, gunakan node ODPS SQL sebagai gantinya. Untuk informasi lebih lanjut, lihat Mengembangkan tugas ODPS SQL.
Bagaimana cara mengimplementasikan loop dalam SQL?
Gunakan node do-while di DataWorks.
Bagaimana cara memanggil node assignment dalam SQL?
Gunakan node for-each di DataWorks.
Bagaimana cara melihat semua pernyataan SQL yang dijalankan di MaxCompute pada hari tertentu?
Jalankan perintah show p -all -limit <number>; untuk melihat riwayat SQL semua anggota dalam proyek MaxCompute. Untuk informasi lebih lanjut, lihat Melihat informasi instans.
Bagaimana cara melihat penggunaan resource dari pekerjaan SQL?
Lihat penggunaan resource dari pekerjaan SQL di Tagihan Anda. Untuk informasi lebih lanjut, lihat Menganalisis detail penggunaan dalam tagihan MaxCompute.
Bagaimana cara melihat biaya eksekusi dari pernyataan SQL?
Gunakan perintah cost sql untuk memperkirakan biaya kueri. Untuk informasi lebih lanjut, lihat Metering dan estimasi.
Pekerjaan SQL saya berjalan lambat. Bagaimana cara mengoptimalkannya?
Gunakan Logview untuk mengidentifikasi penyebab pekerjaan SQL yang lambat. Untuk informasi lebih lanjut, lihat Praktik diagnosis berbasis Logview.
Untuk informasi lebih lanjut tentang optimasi pekerjaan SQL, lihat Praktik terbaik untuk optimasi komputasi.