Pertanyaan yang sering diajukan tentang operasi DDL pada tabel, partisi, dan kolom di MaxCompute.
Dukungan tabel virtual
MaxCompute tidak mendukung tabel virtual. Anda dapat membuat tabel DUAL secara manual.
Dukungan indeks
Tidak. Tabel MaxCompute tidak memiliki indeks. Namun, fitur Hash Clustering berfungsi mirip dengan cluster index dalam database. Untuk informasi selengkapnya, lihat Operasi tabel.
Mengubah atribut Hash Clustering
-
Untuk menambahkan atribut Hash Clustering ke suatu tabel, jalankan perintah berikut:
alter table table_name [clustered by (col_name [, col_name, ...]) [sorted by (col_name [asc | desc] [, col_name [asc | desc] ...])] into number_of_buckets buckets];. -
Untuk menghapus atribut Hash Clustering dari suatu tabel, jalankan perintah berikut:
alter table table_name not clustered;.
Mengonversi tabel non-partisi menjadi tabel partisi
Anda tidak dapat mengonversi tabel non-partisi menjadi tabel partisi atau menambahkan kolom kunci partisi ke tabel yang sudah ada. Buatlah tabel partisi baru. Untuk informasi selengkapnya, lihat Operasi tabel.
Memulihkan tabel yang dihapus
MaxCompute menyediakan backup dan pemulihan dengan periode retensi gratis default selama 24 jam, yang dapat Anda sesuaikan. Jika Anda tidak sengaja menghapus tabel, Anda dapat memulihkan datanya dalam periode tersebut. Untuk informasi selengkapnya tentang backup dan pemulihan, lihat backup and recovery.
Mengkueri tabel berdasarkan pemilik
Gunakan tampilan metadata TABLES dan filter berdasarkan bidang owner_name untuk menemukan tabel yang dibuat oleh pengguna tertentu. Untuk informasi selengkapnya tentang TABLES, lihat TABLES.
Memeriksa keberadaan tabel
Anda dapat menggunakan fungsi TABLE_EXISTS untuk memeriksa apakah tabel tertentu ada. Untuk informasi selengkapnya, lihat TABLE_EXISTS.
Mendapatkan semua nama tabel dalam suatu Proyek
Anda dapat menjalankan perintah show tables; di MaxCompute client atau menggunakan layanan metadata MaxCompute. Untuk informasi selengkapnya, lihat Operasi tabel atau Information Schema.
Menemukan semua tabel partisi dalam suatu Proyek
Anda dapat menjalankan perintah berikut di MaxCompute client untuk menemukan semua tabel partisi dalam Proyek Anda.
select table_name from information_schema.columns where is_partition_key = true group by table_name;
Memeriksa waktu akses terakhir suatu tabel
Di DataWorks, buka halaman data map, cari tabel Anda, lalu buka halaman detailnya. Di panel Technical Information, Anda dapat menemukan bidang-bidang berikut: Technical type, Last DDL change time, Last data modification time, Last access time, dan Compute engine information.
Memeriksa volume data suatu tabel
Volume data suatu tabel mengacu pada jumlah baris dan ruang fisik yang ditempatinya:
-
Untuk memeriksa ruang fisik seluruh tabel, jalankan perintah
desc. Untuk memeriksa jumlah baris, jalankan Pernyataan SQLselect count() as cnt from table_name;.
-
Untuk memeriksa ruang fisik partisi tertentu, jalankan perintah
descdengan klausaWHERE. Untuk memeriksa jumlah baris dalam partisi tersebut, jalankan Pernyataan SQLselect count() as cnt from table_name where ...;.
Memeriksa jumlah baris suatu tabel
Anda dapat menjalankan perintah select count(*) from table_name; di MaxCompute client untuk memeriksa jumlah baris dalam tabel partisi atau non-partisi.
Tabel tidak terlihat di DataWorks
Jika Anda membuat tabel menggunakan Pernyataan SQL alih-alih membuatnya di UI DataWorks, tabel tersebut mungkin tidak muncul selama dua hingga tiga jam.
Partisi dan kolom kunci partisi
Tabel di MaxCompute dapat dipartisi. Tabel partisi memiliki kolom kunci partisi, yang digunakan untuk membuat partisi.
Sebagai contoh, dalam partisi yang ditentukan sebagai ds=20150101, ds adalah kolom kunci partisi, dan ds=20150101 adalah partisi.
Jumlah partisi optimal
Satu tabel MaxCompute dapat memiliki maksimal 60.000 partisi dengan kapasitas tak terbatas per partisi. Namun, terlalu banyak partisi dapat menyulitkan statistik dan analisis data.
MaxCompute membatasi jumlah maksimum instans per Pekerjaan. Jumlah instans yang digunakan oleh suatu Pekerjaan bergantung pada volume data masukan dan jumlah partisi. Oleh karena itu, pilihlah strategi partisi yang sesuai dengan kebutuhan bisnis Anda.
Menambahkan partisi ke tabel tanpa kunci partisi
MaxCompute tidak mendukung penambahan atau modifikasi bidang kunci partisi pada tabel yang sudah ada. Anda dapat membuat tabel partisi baru dan menggunakan Pernyataan SQL partisi dinamis untuk mengimpor data dari tabel sumber ke tabel baru tersebut. Untuk informasi selengkapnya, lihat Insert or overwrite data into dynamic partitions (DYNAMIC PARTITION).
Memeriksa keberadaan partisi
Anda dapat menggunakan fungsi PARTITION_EXISTS untuk memeriksa apakah partisi tertentu ada. Untuk informasi selengkapnya, lihat PARTITION_EXISTS.
Memeriksa jumlah partisi
Anda dapat menggunakan tampilan PARTITIONS di Information Schema untuk mendapatkan nama partisi lalu menghitungnya.
Menambahkan atau menghapus kolom
MaxCompute mendukung penambahan dan penghapusan kolom. Penambahan kolom dengan tipe data kompleks dan penghapusan kolom tersedia untuk pratinjau undangan. Untuk mengajukan uji coba, lihat Apply for a trial of new features.
Menambahkan kolom
Jalankan perintah berikut untuk menambahkan kolom. Jika tabel sudah berisi data, kolom baru akan bernilai NULL untuk semua baris yang sudah ada.
alter table table_name add columns (col_name1 type1, col_name2 type2…);
Untuk informasi selengkapnya tentang sintaksis, lihat Add a column.
Mengatur kolom auto-increment
MaxCompute tidak mendukung kolom auto-increment. Untuk data dalam jumlah kecil, Anda dapat menggunakan fungsi ROW_NUMBER sebagai solusi alternatif.
Jumlah maksimum kolom per tabel
Satu tabel MaxCompute dapat memiliki maksimal 1.200 kolom. Jika tabel Anda melebihi batas ini, pertimbangkan solusi berikut:
-
Kurangi jumlah dimensi dalam data Anda menjadi 1.200 kolom atau kurang.
-
Ubah metode penyimpanan data, misalnya dengan menggunakan tipe data kompleks seperti array atau map untuk menggabungkan data terkait.
Menggunakan kata kunci sebagai nama kolom
Jika Anda menggunakan kata kunci untuk memberi nama tabel, kolom, atau partisi, Anda harus membungkus kata kunci tersebut dalam backtick (``). Jika tidak, akan terjadi error.
Mengubah tipe data kolom
Anda tidak dapat mengubah tipe data kolom yang sudah ada. Sebagai gantinya, buat tabel baru dengan tipe data yang diinginkan dan migrasikan datanya. Untuk informasi selengkapnya tentang tipe data, lihat Data type editions.
Pembersihan data untuk tabel partisi dengan lifecycle
Ketika suatu partisi dalam tabel yang telah dikonfigurasi lifecycle tidak dimodifikasi dalam periode yang ditentukan, MaxCompute secara otomatis mereklamasinya.
Jalankan perintah desc table_name partition(pt_spec); untuk memeriksa apakah partisi lama dimodifikasi dalam periode lifecycle. Jalankan perintah desc tablename; untuk melihat pengaturan lifecycle. MaxCompute mereklamasi partisi yang kedaluwarsa setiap hari pukul 17.00. Pembaruan status di Konsol DataWorks mungkin tertunda, biasanya hingga satu hari.