Topik ini menjawab beberapa pertanyaan umum terkait operasi DDL pada tabel, partisi, dan kolom di MaxCompute.
Apakah MaxCompute mendukung tabel virtual, seperti tabel DUAL di MySQL?
Tidak, MaxCompute tidak mendukung tabel virtual. Anda dapat membuat tabel DUAL secara manual.
Apakah tabel MaxCompute memiliki indeks?
Tidak, tabel MaxCompute tidak memiliki indeks. Anda dapat menggunakan atribut Hash Clustering untuk mencapai efek serupa dengan indeks terkluster dalam database. Untuk informasi lebih lanjut, lihat Operasi Tabel.
Bagaimana cara mengelola atribut Hash Clustering dari sebuah tabel?
Untuk menambahkan atribut Hash Clustering ke sebuah 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 sebuah tabel, jalankan perintah berikut:
alter table table_name not clustered;.
Bagaimana cara mengubah tabel non-partisi menjadi tabel partisi?
Anda tidak dapat mengubah tabel non-partisi menjadi tabel partisi atau menambahkan kolom kunci partisi. Namun, Anda dapat membuat tabel partisi baru. Untuk informasi lebih lanjut, lihat Operasi Tabel.
Apakah saya bisa memulihkan tabel yang terhapus secara tidak sengaja?
Ya, Anda dapat memulihkan tabel yang terhapus karena MaxCompute mendukung fitur pencadangan dan pemulihan. Jika Anda secara tidak sengaja menghapus tabel, Anda dapat menjalankan perintah pencadangan dan pemulihan untuk memulihkan tabel secara gratis dalam waktu 24 jam. Anda juga dapat menyesuaikan periode retensi data cadangan. Untuk informasi lebih lanjut tentang fitur pencadangan dan pemulihan, lihat Pencadangan.
Bagaimana cara menanyakan tabel-tabel yang dibuat oleh pengguna tertentu?
Untuk menanyakan tabel-tabel yang dibuat oleh pengguna tertentu, gunakan tampilan metadata TABLES untuk menyaring tabel berdasarkan field owner_name. Untuk informasi lebih lanjut tentang TABLES, lihat TABLES.
Bagaimana cara memeriksa apakah tabel tertentu ada?
Gunakan fungsi TABLE_EXISTS untuk memeriksa apakah tabel tertentu ada. Untuk informasi lebih lanjut, lihat TABLE_EXISTS.
Bagaimana cara mendapatkan nama semua tabel dalam proyek saya?
Jalankan perintah show tables; pada Klien MaxCompute, atau gunakan layanan metadata MaxCompute untuk mendapatkan nama semua tabel dalam proyek Anda. Untuk informasi lebih lanjut, lihat Operasi Tabel atau Skema Informasi.
Bagaimana cara dengan cepat mengidentifikasi tabel partisi dalam proyek?
Jalankan perintah berikut pada Klien MaxCompute untuk melihat tabel partisi dalam proyek Anda:
select table_name from information_schema.columns where is_partition_key = true group by table_name;Bagaimana cara melihat waktu kapan tabel MaxCompute tertentu terakhir kali diakses?
Masuk ke halaman Data Map DataWorks. Kemudian, klik nama tabel untuk melihat waktu akses terakhir pada halaman detail tabel. 
Bagaimana cara melihat jumlah data dalam sebuah tabel?
Anda dapat melihat jumlah catatan data dalam tabel dan ruang fisik yang ditempati oleh tabel.
Jalankan perintah
descuntuk melihat ruang fisik seluruh tabel. Jalankan Pernyataan SQLselect count(*) as cnt from table_name;untuk melihat jumlah catatan data dalam tabel.
Jalankan perintah
descdengan klausa WHERE untuk melihat ruang fisik yang ditempati oleh partisi dalam tabel partisi. Jalankan Pernyataan SQLselect count(*) as cnt from table_name where ...;untuk melihat jumlah catatan data dalam partisi.
Bagaimana cara melihat jumlah baris dalam sebuah tabel?
Jalankan pernyataan select count(*) from table_name; pada Klien MaxCompute untuk melihat jumlah baris dalam tabel partisi atau tabel non-partisi.
Mengapa saya tidak dapat melihat tabel yang saya buat di konsol DataWorks?
Jika tabel dibuat menggunakan pernyataan SQL alih-alih antarmuka pengguna grafis (GUI) DataWorks, tabel akan ditampilkan di konsol DataWorks 2 hingga 3 jam setelah pembuatan.
Apa perbedaan antara partisi dan kolom kunci partisi?
Tabel di MaxCompute dapat dipartisi. Tabel partisi berisi kolom kunci partisi, yang digunakan untuk membuat partisi.
Sebagai contoh, ds dalam ds=20150101 adalah kolom kunci partisi, sedangkan ds=20150101 adalah partisi.
Apakah disarankan untuk sebuah tabel berisi sejumlah besar partisi?
Sebuah tabel di MaxCompute dapat memiliki maksimal 60.000 partisi, dengan kapasitas setiap partisi tidak terbatas. Namun, partisi yang berlebihan dalam sebuah tabel dapat menyebabkan ketidaknyamanan dalam pengumpulan dan analisis data.
Di MaxCompute, jumlah instance dibatasi dalam pekerjaan. Oleh karena itu, kami menyarankan agar Anda menentukan jumlah partisi berdasarkan kebutuhan bisnis Anda.
Apakah saya bisa menambah atau memodifikasi bidang partisi dalam tabel sumber jika tabel sumber tersebut tidak memiliki bidang partisi?
Tidak, MaxCompute tidak mengizinkan penambahan atau modifikasi bidang partisi dalam tabel sumber. Setelah bidang partisi dibuat, bidang tersebut tidak dapat dimodifikasi. Anda dapat membuat tabel partisi baru dan menggunakan pernyataan SQL untuk partisi dinamis untuk mengimpor data dari tabel sumber. Untuk informasi lebih lanjut, lihat Masukkan atau Timpa Data ke Partisi Dinamis (DYNAMIC PARTITION).
Bagaimana cara memeriksa apakah partisi tertentu ada?
Gunakan fungsi PARTITION_EXISTS untuk memeriksa apakah partisi tertentu ada. Untuk informasi lebih lanjut, lihat PARTITION_EXISTS.
Bagaimana cara mendapatkan jumlah partisi?
Gunakan tampilan PARTITIONS dari Skema Informasi untuk mendapatkan nama partisi, lalu hitung jumlahnya.
Apakah saya bisa menambah kolom ke atau menghapus kolom dari tabel MaxCompute?
Ya, Anda dapat menambah kolom ke tabel MaxCompute. Fitur penambahan kolom tipe data kompleks dan fitur penghapusan kolom saat ini dalam pratinjau undangan. Untuk informasi lebih lanjut tentang cara mengajukan uji coba fitur baru, lihat Ajukan Uji Coba Fitur Baru.
Bagaimana cara menambah kolom ke tabel MaxCompute?
Contoh berikut menunjukkan cara menambah kolom ke tabel MaxCompute. Jika data sudah ada dalam tabel, nilai kolom yang ditambahkan adalah NULL.
alter table table_name add columns (col_name1 type1, col_name2 type2…);Untuk informasi lebih lanjut tentang cara menambah kolom, lihat Tambah Kolom.
Bagaimana cara mengonfigurasi kolom auto-increment?
MaxCompute tidak mendukung kolom auto-increment. Jika Anda ingin menggunakan kolom auto-increment dan jumlah data kecil, kami sarankan Anda menggunakan ROW_NUMBER.
Berapa jumlah maksimum kolom yang dapat disimpan dalam tabel MaxCompute?
Tabel MaxCompute dapat menyimpan maksimal 1.200 kolom. Jika jumlah kolom melebihi batas, lakukan salah satu langkah berikut:
Lakukan reduksi dimensi pada data untuk mengurangi jumlah kolom menjadi tidak lebih dari 1.200.
Ubah metode penyimpanan data, misalnya dengan menggunakan matriks jarang atau padat.
Apa yang harus saya lakukan jika nama kolom dalam tabel yang ingin saya buat sama dengan kata kunci?
Jika Anda menggunakan kata kunci untuk menamai tabel, kolom, atau partisi, apit kata kunci dengan sepasang tanda grave (``). Jika tidak, kesalahan akan dikembalikan.
Bagaimana cara mengubah tipe data kolom?
Anda tidak dapat mengubah tipe data kolom. Anda hanya dapat menambah kolom. Jika Anda perlu mengubah tipe data kolom, hapus tabel dan buat ulang tabel, lalu muat ulang data. Untuk informasi lebih lanjut tentang tipe data, lihat Edisi Tipe Data.
Bagaimana cara menghapus kolom dari tabel?
Anda tidak dapat menghapus kolom dari tabel MaxCompute. Jika Anda ingin menghapus kolom, lakukan langkah-langkah berikut:
Jalankan perintah berikut untuk membuat tabel baru:
create table new_table_name as select c1,c2,c3 from old_table_name;Jalankan perintah berikut untuk menghapus tabel asli dan mengganti nama tabel baru:
drop table old_table_name; alter table new_table_name rename to old_table_name;
Jika saya mengatur siklus hidup tabel partisi menjadi 3 hari dan setiap partisi tabel berisi sejumlah besar data, bagaimana sistem menghapus data historis tabel tersebut?
Jika partisi dalam tabel tidak dimodifikasi dalam siklus hidup, MaxCompute secara otomatis memulihkan partisi.
Jalankan perintah desc table_name partition(pt_spec); untuk memeriksa apakah partisi tertentu dimodifikasi dalam siklus hidup. Jalankan perintah desc tablename; untuk menanyakan siklus hidup tabel. MaxCompute memulihkan tabel dan partisi pada pukul 17:00:00 setiap hari. Dalam kebanyakan kasus, data terkait ditampilkan di DataWorks dengan penundaan satu hari.