Tabel merupakan unit penyimpanan data di MaxCompute. Pemrosesan data tabel sangat penting untuk pengembangan, analisis, dan pemeliharaan gudang data. Topik ini menjelaskan operasi tabel umum—seperti membuat, menghapus, dan melihat tabel—serta menyediakan contoh spesifik.
Alat
Anda dapat menjalankan perintah dalam topik ini pada platform berikut:
Perintah Umum
Untuk informasi lebih lanjut tentang operasi tabel, lihat Operasi Tabel.
Jenis
Fitur
Role
Membuat tabel non-partisi atau tabel partisi.
Pengguna yang memiliki izin CreateTable pada suatu Proyek
Mengubah pemilik tabel.
Pemilik Proyek
Menghapus tabel non-partisi atau tabel partisi.
Pengguna dengan izin DROP untuk tabel.
Menampilkan informasi tentang view MaxCompute, tabel internal, atau tabel eksternal.
Pengguna yang memiliki izin Describe untuk membaca metadata tabel
Menampilkan informasi partisi dari tabel partisi.
Pengguna yang memiliki izin Describe untuk membaca metadata tabel
Menampilkan semua tabel dan view atau tabel dan view yang memenuhi aturan tertentu, seperti ekspresi reguler, dalam suatu proyek.
Pengguna yang memiliki izin List pada objek dalam suatu proyek
Menampilkan semua partisi dari suatu tabel.
Pengguna yang memiliki izin List pada objek dalam suatu proyek
Untuk informasi lebih lanjut tentang operasi partisi dan kolom, lihat Operasi Partisi dan Kolom.
Untuk informasi lebih lanjut tentang operasi lifecycle tabel, lihat Lifecycle.
Buat Tabel
Membuat tabel non-partisi, tabel partisi, tabel eksternal, atau tabel terkluster.
Batasan
Tabel partisi dapat memiliki maksimal enam level partisi. Misalnya, jika suatu tabel menggunakan kolom tanggal sebagai kolom kunci partisi, enam level partisinya adalah
year/month/week/day/hour/minute.Secara default, suatu tabel dapat memiliki maksimal 60.000 partisi. Anda dapat menyesuaikan jumlah maksimum partisi dalam tabel sesuai kebutuhan bisnis Anda.
Untuk informasi lebih lanjut tentang batasan tabel, lihat Batasan SQL MaxCompute.
Sintaks
-- Buat tabel. create [external] table [if not exists] <table_name> [primary key (<pk_col_name>, <pk_col_name2>),(<col_name> <data_type> [not null] [default <default_value>] [comment <col_comment>], ...)] [comment <table_comment>] [partitioned by (<col_name> <data_type> [comment <col_comment>], ...)] -- Konfigurasikan properti shuffle dan sort dari tabel terkluster yang ingin Anda buat. [clustered by | range clustered by (<col_name> [, <col_name>, ...]) [sorted by (<col_name> [asc | desc] [, <col_name> [asc | desc] ...])] into <number_of_buckets> buckets] -- Hanya digunakan untuk tabel eksternal. [stored by StorageHandler] -- Hanya digunakan untuk tabel eksternal. [with serdeproperties (options)] -- Hanya digunakan untuk tabel eksternal. [location <osslocation>] -- Atur tabel menjadi tabel transaksional. Anda nanti dapat memodifikasi atau menghapus data tabel transaksional tersebut. Tabel transaksional memiliki batasan tertentu. Buat tabel transaksional sesuai kebutuhan bisnis Anda. [tblproperties("transactional"="true")] -- Atur tabel menjadi tabel Delta. Anda dapat melakukan operasi UPSERT untuk menulis data ke tabel dan melakukan kueri inkremental serta kueri time travel pada tabel berdasarkan kunci primer. [tblproperties ("transactional"="true" [, "write.bucket.num" = "N", "acid.data.retain.hours"="hours"...])] [lifecycle <days>] ; -- Buat tabel berdasarkan tabel yang sudah ada dan replikasi data dari tabel yang sudah ada ke tabel baru. Properti partisi tidak direplikasi. Anda dapat mengeksekusi pernyataan CREATE TABLE untuk membuat tabel berdasarkan tabel eksternal atau tabel yang sudah ada dari proyek eksternal yang digunakan untuk mengimplementasikan solusi danau data terpadu. create table [if not exists] <table_name> [lifecycle <days>] as <select_statement>; -- Buat tabel berdasarkan tabel yang sudah ada dan replikasi skema dari tabel yang sudah ada. Anda dapat mengeksekusi pernyataan CREATE TABLE untuk membuat tabel berdasarkan tabel eksternal atau tabel yang sudah ada dari proyek eksternal yang digunakan untuk mengimplementasikan solusi danau data terpadu. create table [if not exists] <table_name> like <existing_table_name> [lifecycle <days>];Parameter
external: opsional. Parameter ini menentukan bahwa tabel yang ingin Anda buat adalah tabel eksternal.
if not exists: opsional. Jika Anda membuat tabel menggunakan nama tabel yang sudah ada tetapi tidak menentukan parameter if not exists, maka akan dikembalikan error. Jika Anda membuat tabel menggunakan nama tabel yang sudah ada dan menentukan parameter if not exists, pesan sukses akan dikembalikan meskipun skema tabel yang sudah ada berbeda dari skema tabel yang ingin Anda buat. Jika Anda membuat tabel menggunakan nama tabel yang sudah ada, tabel tidak dibuat dan metadata tabel yang sudah ada tetap tidak berubah.
table_name: wajib. Nama tabel yang ingin Anda buat. Nama harus terdiri dari 1 hingga 128 byte, dan dapat berisi huruf, angka, serta garis bawah (_). Nama harus dimulai dengan huruf dan tidak boleh mengandung karakter khusus. Nama tidak bersifat case-sensitive. Jika nilai parameter ini tidak memenuhi persyaratan, maka akan dikembalikan error.
primary key: opsional. Kunci primer tabel. Anda dapat menentukan satu atau beberapa kolom sebagai kunci primer. Hal ini menunjukkan bahwa kombinasi kolom-kolom tersebut harus unik dalam tabel. Anda harus mematuhi sintaks SQL standar untuk kunci primer. Kolom yang didefinisikan sebagai kunci primer harus diatur sebagai not null dan tidak dapat dimodifikasi.
col_name: opsional. Nama kolom tabel. Nama harus terdiri dari 1 hingga 128 byte, dan dapat berisi huruf, angka, serta garis bawah (_). Nama harus dimulai dengan huruf dan tidak boleh mengandung karakter khusus. Nama tidak bersifat case-sensitive. Jika nilai parameter ini tidak memenuhi persyaratan, maka akan dikembalikan error.
col_comment: opsional. Komentar kolom. Komentar harus berupa string valid yang terdiri dari 1 hingga 1.024 byte. Jika nilai parameter ini tidak memenuhi persyaratan, maka akan dikembalikan error.
data_type: opsional. Tipe data kolom. Tipe data yang didukung antara lain: BIGINT, DOUBLE, BOOLEAN, DATETIME, DECIMAL, dan STRING. Untuk informasi lebih lanjut tentang tipe data, lihat Edisi Tipe Data.
not null: opsional. Jika Anda mengonfigurasi parameter ini untuk suatu kolom, nilai kolom tersebut tidak boleh NULL. Untuk informasi lebih lanjut tentang cara memodifikasi parameter ini, lihat Operasi Partisi.
default_value: opsional. Nilai default kolom yang ditentukan. Jika suatu kolom tidak ditentukan dalam operasi
INSERT, nilai default akan digunakan untuk kolom tersebut.CatatanNilai default kolom yang ditentukan tidak boleh berupa fungsi, seperti
getdate()ataunow().table_comment: opsional. Komentar tabel. Komentar harus berupa string valid yang terdiri dari 1 hingga 1.024 byte. Jika nilai parameter ini tidak memenuhi persyaratan, maka akan dikembalikan error.
lifecycle: opsional. Siklus hidup tabel. Nilainya harus berupa bilangan bulat positif. Satuan: hari.
Tabel non-partisi: Jika data dalam tabel non-partisi tidak berubah selama jumlah hari yang ditentukan oleh days setelah pembaruan data terakhir, MaxCompute akan mengeksekusi pernyataan seperti DROP TABLE untuk mereklaim tabel tersebut.
Tabel partisi: MaxCompute menentukan apakah suatu partisi perlu direklaim berdasarkan nilai LastModifiedTime. Berbeda dengan tabel non-partisi, tabel partisi tidak dihapus meskipun semua partisinya telah direklaim. Anda dapat mengonfigurasi siklus hidup untuk tabel, tetapi tidak untuk partisi.
Parameter untuk tabel partisi
partitioned by (<col_name> <data_type> [comment <col_comment>], ...: opsional. Kolom partisi dari tabel partisi.
col_name: nama kolom kunci partisi. Nama harus terdiri dari 1 hingga 128 byte, dan dapat berisi huruf, angka, serta garis bawah (_). Nama harus dimulai dengan huruf dan tidak boleh mengandung karakter khusus. Nama tidak bersifat case-sensitive. Jika nilai parameter ini tidak memenuhi persyaratan, maka akan dikembalikan error.
data_type: tipe data kolom kunci partisi. Dalam edisi tipe data MaxCompute V1.0, kolom kunci partisi harus bertipe STRING. Dalam edisi tipe data MaxCompute V2.0, kolom kunci partisi dapat bertipe TINYINT, SMALLINT, INT, BIGINT, VARCHAR, atau STRING. Untuk informasi lebih lanjut tentang tipe data, lihat Edisi Tipe Data. Jika Anda menggunakan kolom partisi untuk mempartisi tabel, pemindaian tabel penuh tidak diperlukan saat menambahkan partisi, memperbarui data partisi, atau membaca data partisi. Hal ini meningkatkan efisiensi pemrosesan data.
col_comment: komentar kolom kunci partisi. Komentar harus berupa string valid yang terdiri dari 1 hingga 1.024 byte. Jika nilai parameter ini tidak memenuhi persyaratan, maka akan dikembalikan error.
CatatanNilai kolom kunci partisi tidak boleh mengandung karakter double-byte, seperti karakter Tionghoa. Nilai kolom kunci partisi harus dimulai dengan huruf dan dapat berisi huruf, angka, serta karakter khusus yang didukung. Panjangnya harus 1 hingga 255 byte. Karakter khusus yang didukung meliputi: spasi, titik dua (:), garis bawah (_), tanda dolar ($), tanda pagar (#), titik (.), tanda seru (!), dan tanda at (@). Perilaku karakter lain tidak didefinisikan, seperti karakter escape
\t,\n, dan/.Parameter untuk tabel terkluster
clustered by | range clustered by (<col_name> [, <col_name>, ...]) [sorted by (<col_name> [asc | desc] [, <col_name> [asc | desc] ...])] into <number_of_buckets> buckets: opsional. Properti shuffle dan sort dari tabel terkluster yang ingin Anda buat.
Tabel terkluster diklasifikasikan menjadi tabel hash-clustered dan tabel range-clustered.
Tabel hash-clustered
CLUSTERED BY: kunci hash. MaxCompute melakukan operasi hash pada kolom yang ditentukan dan mendistribusikan data ke setiap bucket berdasarkan nilai hash. Untuk mencegah kesenjangan data dan hot spot serta mengeksekusi pernyataan konkuren secara lebih baik, kami menyarankan agar Anda menentukan kolom yang memiliki rentang nilai besar dan jumlah nilai kunci duplikat kecil dalam
CLUSTERED BY. Selain itu, untuk mengoptimalkan operasiJOIN, kami menyarankan agar Anda memilih kunci gabungan atau agregasi yang umum digunakan. Kunci gabungan dan agregasi mirip dengan kunci primer dalam database konvensional.SORTED BY: menentukan cara mengurutkan kolom dalam bucket. Untuk meningkatkan performa, kami menyarankan agar Anda menjaga konfigurasi klausa SORTED BY konsisten dengan konfigurasi klausa CLUSTERED BY. Setelah Anda menentukan kolom dalam klausa SORTED BY, MaxCompute secara otomatis menghasilkan indeks yang dapat digunakan untuk mempercepat kueri data.
number_of_buckets: jumlah bucket hash. Parameter ini wajib dan nilainya bervariasi tergantung jumlah data. Secara default, MaxCompute mendukung maksimal 1.111 reducer. Artinya, MaxCompute mendukung maksimal 1.111 bucket hash. Anda dapat menjalankan perintah
set odps.stage.reducer.num =<Jumlah reducer konkuren>;untuk meningkatkan jumlah maksimum bucket hash. Jumlah maksimum bucket hash tidak boleh melebihi 4.000. Jika jumlah bucket hash melebihi 4.000, performa komputasi mungkin terpengaruh.Untuk menjaga performa optimal, kami menyarankan agar Anda memperhatikan aturan berikut saat menentukan jumlah bucket hash:
Pertahankan ukuran setiap bucket hash sekitar 500 MB. Misalnya, jika ukuran partisi adalah 500 GB, kami menyarankan agar Anda menentukan 1.000 bucket hash. Dengan demikian, ukuran rata-rata setiap bucket hash adalah 500 MB. Jika tabel berisi banyak data, Anda dapat meningkatkan ukuran setiap bucket hash dari 500 MB menjadi kisaran 2 GB hingga 3 GB. Anda juga dapat menjalankan perintah
set odps.stage.reducer.num =<Jumlah reducer konkuren>;untuk mengatur jumlah maksimum bucket hash menjadi nilai yang lebih besar dari 1111.Untuk mengoptimalkan performa operasi
JOIN, kami menyarankan agar Anda tidak mengonfigurasi properti shuffle dan sort untuk tabel hash-clustered. Jumlah bucket hash suatu tabel harus merupakan kelipatan jumlah bucket hash tabel lainnya. Misalnya, satu tabel memiliki 256 bucket hash dan tabel lainnya memiliki 512 bucket hash. Kami menyarankan agar Anda mengatur jumlah bucket hash menjadi 2n, seperti 512, 1024, 2048, atau 4096. Dengan demikian, MaxCompute dapat secara otomatis membagi dan menggabungkan bucket hash. Untuk memastikan eksekusi lebih efisien, kami menyarankan agar Anda tidak mengonfigurasi properti shuffle dan sort.
Tabel range-clustered
RANGE CLUSTERED BY: kolom range-clustered. MaxCompute melakukan operasi bucket pada kolom yang ditentukan dan mendistribusikan data ke setiap bucket berdasarkan ID bucket.
SORTED BY: urutan kolom dalam bucket. Anda dapat menggunakan parameter ini dengan cara yang sama seperti pada tabel hash-clustered.
number_of_buckets: jumlah bucket hash. Dibandingkan dengan tabel hash-clustered, tabel range-clustered tidak memiliki batasan jumlah bucket ketika data terdistribusi merata. Jika Anda tidak menentukan jumlah bucket dalam tabel range-clustered, MaxCompute secara otomatis menentukan jumlah optimal berdasarkan jumlah data.
Jika operasi JOIN dan AGGREGATE dilakukan pada tabel range-clustered dan kunci gabungan atau kunci grup merupakan kunci range-clustered atau awalan dari kunci range-clustered, Anda dapat mengelola flag untuk menonaktifkan shuffling. Hal ini meningkatkan efisiensi eksekusi. Anda dapat mengatur
odps.optimizer.enable.range.partial.repartitioningmenjadi true atau false untuk mengontrol shuffling. Secara default, parameter ini diatur ke false. Nilai default ini menunjukkan bahwa shuffling dinonaktifkan.CatatanTabel terkluster membantu mengoptimalkan aspek-aspek berikut:
Pemangkasan bucket
Agregasi
Penyimpanan
Batasan pada tabel terkluster
Pernyataan
INSERT INTOtidak didukung. Anda hanya dapat mengeksekusi pernyataanINSERT OVERWRITEuntuk menambahkan data ke tabel terkluster.Data yang diimpor menggunakan perintah Tunnel tidak diurutkan. Oleh karena itu, Anda tidak dapat mengimpor data ke tabel range-clustered menggunakan perintah Tunnel.
Fitur backup dan pemulihan data tidak didukung.
Parameter untuk tabel eksternal
stored by StorageHandler: opsional. StorageHandler yang ditentukan berdasarkan format data tabel eksternal.
with serdeproperties (options): opsional. Parameter yang terkait dengan otorisasi, kompresi, dan parsing karakter tabel eksternal.
osslocation: opsional. Bucket Object Storage Service (OSS) tempat data tabel eksternal disimpan. Untuk informasi lebih lanjut, lihat Tabel eksternal ORC.
Parameter untuk tabel transaksional dan tabel Delta
Parameter untuk tabel transaksional
tblproperties("transactional"="true"): opsional. Atur tabel menjadi tabel transaksional. Anda dapat melakukan operasi
UPDATEatauDELETEpada tabel transaksional untuk memperbarui atau menghapus data per baris. Untuk informasi lebih lanjut, lihat Perbarui atau hapus data (UPDATE | DELETE).Tabel transaksional memiliki batasan berikut:
MaxCompute hanya memungkinkan Anda mengatur tabel menjadi tabel transaksional saat membuat tabel. Jika Anda mengeksekusi pernyataan
ALTER TABLEuntuk mengubah tabel yang sudah ada menjadi tabel transaksional, maka akan dikembalikan error.alter table not_txn_tbl set tblproperties("transactional"="true"); -- Error berikut dikembalikan: FAILED: Catalog Service Failed, ErrorCode: 151, Error Message: Set transactional is not supportedSaat membuat tabel terkluster atau tabel eksternal, Anda tidak dapat mengaturnya menjadi tabel transaksional.
Anda tidak dapat mengonversi antara tabel transaksional dan tabel internal MaxCompute, tabel eksternal, atau tabel terkluster.
File tabel transaksional tidak dapat digabung secara otomatis. Anda harus menggabungkan file tabel transaksional secara manual. Untuk informasi lebih lanjut, lihat bagian Gabungkan file tabel transaksional dalam UPDATE dan DELETE.
Operasi
MERGE PARTITIONtidak didukung.Batasan tertentu diberlakukan pada akses ke tabel transaksional dari pekerjaan sistem lain. Misalnya, jika pekerjaan Anda adalah pekerjaan Graph, Anda tidak dapat menggunakan pekerjaan tersebut untuk membaca atau menulis data ke tabel transaksional. Jika pekerjaan Anda adalah pekerjaan Spark atau pekerjaan Platform for AI (PAI), Anda hanya dapat menggunakan pekerjaan tersebut untuk membaca data dari tabel transaksional dan tidak dapat menggunakannya untuk menulis data ke tabel transaksional.
Sebelum mengeksekusi pernyataan
UPDATE,DELETE, atauINSERT OVERWRITEpada data penting dalam tabel transaksional, Anda harus mengeksekusi pernyataanSELECTdanINSERTuntuk mencadangkan data ke tabel lain.
Parameter untuk tabel Delta
Tabel Delta mendukung kemampuan seperti pembacaan dan penulisan near real-time, pembacaan dan penulisan inkremental, penyimpanan inkremental, serta pembaruan real-time. Hanya tabel Delta yang memiliki kunci primer yang didukung.
primary key:
Parameter ini wajib saat membuat tabel Delta. Anda dapat menentukan beberapa kolom sebagai kunci primer. Anda harus mematuhi sintaks SQL standar untuk kunci primer. Kolom yang didefinisikan sebagai kunci primer harus diatur sebagai not null dan tidak dapat dimodifikasi. Setelah menentukan kunci primer untuk tabel Delta, data duplikat akan dihapus dari tabel berdasarkan kunci primer tersebut. Batasan keunikan untuk kolom kunci primer berlaku dalam satu partisi atau dalam tabel non-partisi.
tblproperties ("transactional"="true" [, "write.bucket.num" = "N", "acid.data.retain.hours"="hours"...])]
transactional: Parameter ini wajib saat membuat tabel Delta. Anda harus mengatur parameter ini ke true. Nilai true menunjukkan bahwa tabel mematuhi karakteristik transaksi MaxCompute atomicity, consistency, isolation, durability (ACID) dan model Multi Version Concurrency Control (MVCC) digunakan untuk mendukung isolasi snapshot.
write.bucket.num: opsional. Nilai default: 16. Nilai valid: (0,4096]. Parameter ini menunjukkan jumlah bucket dalam suatu partisi tabel partisi atau dalam tabel non-partisi. Parameter ini juga menentukan jumlah node konkuren yang digunakan untuk menulis data. Anda dapat mengubah nilai parameter ini untuk tabel partisi. Jika partisi baru ditambahkan ke tabel partisi, konfigurasi parameter ini akan berlaku pada partisi baru secara default. Anda tidak dapat mengubah nilai parameter ini untuk tabel non-partisi. Perhatikan poin-poin berikut:
Jika data ditulis menggunakan saluran data MaxCompute, nilai parameter ini menentukan jumlah node konkuren yang digunakan untuk menulis data. Pengaturan parameter ini memengaruhi trafik impor dan juga tunduk pada jumlah maksimum node konkuren dalam saluran data.
Jika data ditulis menggunakan pernyataan SQL, nilai parameter ini menentukan konkurensi reducer yang digunakan untuk menulis data. Pengaturan ini tunduk pada jumlah maksimum node reducer konkuren.
Kami menyarankan agar Anda menulis sekitar 500 MB data ke setiap bucket. Misalnya, jika ukuran partisi sekitar 500 GB, kami menyarankan agar Anda menentukan 1.000 bucket. Dengan demikian, ukuran rata-rata setiap bucket adalah 500 MB. Jika tabel berisi banyak data, Anda dapat meningkatkan ukuran setiap bucket dari 500 MB menjadi kisaran 2 GB hingga 3 GB.
acid.data.retain.hours: opsional. Nilai default: 72. Nilai valid: [0,168]. Rentang waktu selama status data historis dapat dikueri menggunakan fitur time travel. Satuan: jam.
Jika Anda mengatur parameter ini ke 0, status data historis tidak disimpan, dan time travel tidak didukung.
Jika status data historis disimpan selama periode yang tidak termasuk dalam rentang yang ditentukan oleh parameter ini, data tersebut dapat dihapus. Anda dapat menggunakan metode compact untuk mereklaim ruang yang ditempati oleh data tersebut.
Jika Anda melakukan kueri time travel pada data yang dihasilkan lebih awal dari rentang waktu yang ditentukan oleh parameter ini, maka akan dikembalikan error. Misalnya, jika nilai parameter ini adalah 72 jam, dan kueri time travel dilakukan untuk mengkueri status data historis 72 jam lalu, maka akan dikembalikan error.
acid.incremental.query.out.of.time.range.enabled: opsional. Nilai default: false. Jika parameter ini diatur ke true, nilai properti endTimestamp yang ditentukan oleh kueri inkremental dapat berupa titik waktu yang lebih baru daripada waktu commit maksimum data dalam tabel tersebut. Apabila nilai properti endTimestamp melebihi waktu saat ini, data baru mungkin dimasukkan ke dalam tabel Delta, sehingga menghasilkan keluaran yang berbeda untuk beberapa kueri. Anda dapat mengubah nilai parameter ini pada tingkat tabel.
acid.write.precombine.field: opsional. Anda dapat menggunakan parameter ini untuk menentukan hanya satu nama kolom. Jika Anda menentukan nama kolom, sistem akan melakukan deduplikasi data berdasarkan kolom kunci primer dalam file yang berisi pernyataan SQL yang dikomit bersama parameter ini. Hal ini memastikan keunikan dan konsistensi data.
CatatanJika ukuran data yang dikomit sekaligus melebihi 128 MB, beberapa file akan dihasilkan. Parameter ini tidak dapat digunakan untuk deduplikasi data dari beberapa file.
Pengaturan parameter untuk parameter umum lainnya pada tabel Delta
lifecycle: siklus hidup tabel. Satuan: hari. Siklus hidup tabel harus lebih besar dari atau sama dengan nilai rumus berikut:
acid.data.retain.hours/24. Nilai rumus ini menunjukkan jumlah hari selama status data historis dapat dikueri menggunakan fitur time travel. Saat membuat tabel, MaxCompute memeriksa siklus hidup tabel yang Anda tentukan. Jika siklus hidup yang ditentukan tidak memenuhi persyaratan, maka akan dikembalikan error.Fitur lain yang tidak didukung: Tabel Delta tidak mendukung pernyataan RANGE CLUSTER BY dan CREATE TABLE AS serta tidak dapat digunakan sebagai tabel eksternal.
Batasan lainnya:
Hanya MaxCompute SQL yang dapat langsung melakukan operasi pada tabel Delta.
Anda tidak dapat mengubah tabel umum yang sudah ada menjadi tabel Delta.
Anda tidak dapat mengubah skema kolom kunci primer tabel Delta.
Buat tabel berdasarkan data atau tabel yang sudah ada
Anda dapat mengeksekusi pernyataan
create table [if not exists] <table_name> [lifecycle <days>] as <select_statement>;untuk membuat tabel dan mereplikasi data ke tabel tersebut.Namun, properti partisi dan properti lifecycle dari tabel sumber tidak direplikasi ke tabel yang dibuat. Kolom kunci partisi dari tabel sumber dianggap sebagai kolom biasa dalam tabel yang dibuat.
Anda dapat mengonfigurasi parameter lifecycle untuk mereklaim tabel. Anda juga dapat mengeksekusi pernyataan ini untuk membuat tabel internal dan mereplikasi data tabel eksternal ke tabel internal tersebut.
Anda dapat mengeksekusi pernyataan
create table [if not exists] <table_name> like <existing_table_name> [lifecycle <days>];untuk membuat tabel yang memiliki skema yang sama dengan tabel sumber.Namun, tabel yang dibuat menggunakan pernyataan ini tidak mereplikasi data tabel atau properti lifecycle dari tabel sumber.
Anda dapat mengonfigurasi parameter lifecycle untuk mereklaim tabel. Anda juga dapat mengeksekusi pernyataan ini untuk membuat tabel internal yang memiliki skema yang sama dengan tabel eksternal yang sudah ada.
Contoh
Contoh 1: Buat tabel non-partisi bernama test1.
create table test1 (key STRING);Contoh 2: Buat tabel partisi bernama sale_detail.
create table if not exists sale_detail( shop_name STRING, customer_id STRING, total_price DOUBLE) partitioned by (sale_date STRING, region STRING);Contoh 3: Buat tabel bernama sale_detail_ctas1, replikasi data dari tabel sale_detail ke tabel sale_detail_ctas1, lalu konfigurasikan lifecycle untuk tabel sale_detail_ctas1.
SET odps.sql.allow.fullscan=true; create table sale_detail_ctas1 lifecycle 10 as select * from sale_detail;Anda dapat menjalankan perintah
desc extended sale_detail_ctas1;untuk melihat detail tabel, seperti skema dan lifecycle tabel.Tabel
sale_detailadalah tabel partisi, tetapi tabelsale_detail_ctas1yang dibuat menggunakancreate table ... as select_statement ...tidak mereplikasi properti partisi. Kolom kunci partisi dari tabel sumber dianggap sebagai kolom biasa dalam tabel yang dibuat. Tabelsale_detail_ctas1adalah tabel non-partisi yang berisi lima kolom.Contoh 4: Buat tabel sale_detail_ctas2 dan gunakan konstanta sebagai nilai kolom dalam klausa
SELECT.SET odps.sql.allow.fullscan=true; -- Nama kolom ditentukan. create table sale_detail_ctas2 as select shop_name, customer_id, total_price, '2013' as sale_date, 'China' as region from sale_detail; -- Nama kolom tidak ditentukan. create table sale_detail_ctas3 as select shop_name, customer_id, total_price, '2013', 'China' from sale_detail;CatatanJika Anda menggunakan konstanta sebagai nilai kolom dalam klausa
SELECT, kami menyarankan agar Anda menentukan nama kolom. Dalam contoh ini, nama kolom keempat dan kelima dalam tabel sale_detail_ctas3 berisi akhiran yang mirip dengan_c4dan_c5.Contoh 5: Buat tabel bernama sale_detail_like yang menggunakan skema yang sama dengan tabel sale_detail dan konfigurasikan lifecycle untuk tabel sale_detail_like.
create table sale_detail_like like sale_detail lifecycle 10;Anda dapat menjalankan perintah
desc extended sale_detail_like;untuk melihat detail tabel, seperti skema dan lifecycle tabel.Skema tabel sale_detail_like sama dengan skema tabel sale_detail. Kedua tabel memiliki properti yang sama, seperti nama kolom, komentar kolom, dan komentar tabel, selain lifecycle. Namun, data dalam tabel sale_detail tidak direplikasi ke tabel sale_detail_like.
Contoh 6: Buat tabel bernama mc_oss_extable_orc_like yang menggunakan skema yang sama dengan tabel eksternal mc_oss_extable_orc.
create table mc_oss_extable_orc_like like mc_oss_extable_orc;Anda dapat menjalankan perintah
desc mc_oss_extable_orc_like;untuk melihat detail tabel, seperti skema tabel.+------------------------------------------------------------------------------------+ | Owner: ALIYUN$****@***.aliyunid.com | Project: max_compute_7u************yoq | | TableComment: | +------------------------------------------------------------------------------------+ | CreateTime: 2022-08-11 11:10:47 | | LastDDLTime: 2022-08-11 11:10:47 | | LastModifiedTime: 2022-08-11 11:10:47 | +------------------------------------------------------------------------------------+ | InternalTable: YES | Size: 0 | +------------------------------------------------------------------------------------+ | Native Columns: | +------------------------------------------------------------------------------------+ | Field | Type | Label | Comment | +------------------------------------------------------------------------------------+ | id | string | | | | name | string | | | +------------------------------------------------------------------------------------+Contoh 7: Buat tabel bernama test_newtype yang menggunakan tipe data baru.
set odps.sql.type.system.odps2=true; CREATE TABLE test_newtype ( c1 TINYINT ,c2 SMALLINT ,c3 INT ,c4 BIGINT ,c5 FLOAT ,c6 DOUBLE ,c7 DECIMAL ,c8 BINARY ,c9 TIMESTAMP ,c10 ARRAY<MAP<BIGINT,BIGINT>> ,c11 MAP<STRING,ARRAY<BIGINT>> ,c12 STRUCT<s1:STRING,s2:BIGINT> ,c13 VARCHAR(20)) LIFECYCLE 1 ;Contoh 8: Buat tabel hash-clustered bernama t1. Tabel ini adalah tabel non-partisi.
create table t1 (a STRING, b STRING, c BIGINT) clustered by (c) sorted by (c) into 1024 buckets;Contoh 9: Buat tabel hash-clustered bernama t2. Tabel ini adalah tabel partisi.
create table t2 (a STRING, b STRING, c BIGINT) partitioned by (dt STRING) clustered by (c) sorted by (c) into 1024 buckets;Contoh 10: Buat tabel range-clustered bernama t3. Tabel ini adalah tabel non-partisi.
create table t3 (a STRING, b STRING, c BIGINT) range clustered by (c) sorted by (c) into 1024 buckets;Contoh 11: Buat tabel range-clustered bernama t4. Tabel ini adalah tabel partisi.
create table t4 (a STRING, b STRING, c BIGINT) partitioned by (dt STRING) range clustered by (c) sorted by (c);Contoh 12: Buat tabel transaksional bernama t5. Tabel ini adalah tabel non-partisi.
create table t5(id bigint) tblproperties("transactional"="true");Contoh 13: Buat tabel transaksional bernama t6. Tabel ini adalah tabel partisi.
create table if not exists t6(id bigint) partitioned by(ds string) tblproperties ("transactional"="true");Contoh 14: Buat tabel non-partisi bernama test_default dan konfigurasikan nilai default untuk parameter-parameter tersebut.
create table test_default ( tinyint_name tinyint not NULL default 1Y, smallint_name SMALLINT not NULL DEFAULT 1S, int_name INT not NULL DEFAULT 1, bigint_name BIGINT not NULL DEFAULT 1, binary_name BINARY , float_name FLOAT , double_name DOUBLE not NULL DEFAULT 0.1, decimal_name DECIMAL(2, 1) not NULL DEFAULT 0.0BD, varchar_name VARCHAR(10) , char_name CHAR(2) , string_name STRING not NULL DEFAULT 'N', boolean_name BOOLEAN not NULL DEFAULT TRUE );Contoh 15: Eksekusi pernyataan
CREATE TABLE [if not exists] <table_name> [lifecycle <days>] as <select_statement>;untuk membuat tabel internal dan mereplikasi data tabel eksternal partisi ke tabel internal tersebut. Properti partisi tidak direplikasi ke tabel internal.-- Kueri tabel eksternal dari proyek eksternal yang digunakan untuk mengimplementasikan solusi danau data terpadu di MaxCompute. select * from hive_external2_1.myhive_0110; -- Hasil berikut dikembalikan: a b c 101 1 20230110 102 2 20230110 103 3 20230110 -- Eksekusi pernyataan CREATE TABLE AS untuk membuat tabel internal. create table from_exetbl_as_par as select * from hive_external2_1.myhive_0110_par; -- Kueri tabel internal. select * from from_exetbl_as_par; -- Semua data dalam tabel internal dikembalikan. a b c 101 1 20230110 102 2 20230110 103 3 20230110 -- Kueri skema tabel internal. desc from_exetbl_as_par; -- Hasil berikut dikembalikan: +------------------------------------------------------------------------------------+ | Owner: ALIYUN$*********** | | Project: ***_*****_*** | | TableComment: | +------------------------------------------------------------------------------------+ | CreateTime: 2023-01-10 15:16:33 | | LastDDLTime: 2023-01-10 15:16:33 | | LastModifiedTime: 2023-01-10 15:16:33 | +------------------------------------------------------------------------------------+ | InternalTable: YES | Size: 919 | +------------------------------------------------------------------------------------+ | Native Columns: | +------------------------------------------------------------------------------------+ | Field | Type | Label | Comment | +------------------------------------------------------------------------------------+ | a | string | | | | b | string | | | | c | string | | | +------------------------------------------------------------------------------------+Contoh 16: Eksekusi pernyataan
CREATE TABLE [if not exists] <table_name> like <existing_table_name> [lifecycle <days>];untuk membuat tabel internal dan mereplikasi skema tabel eksternal partisi ke tabel internal tersebut. Properti partisi direplikasi ke tabel internal.-- Kueri tabel eksternal dari proyek eksternal yang digunakan untuk mengimplementasikan solusi danau data terpadu di MaxCompute. select * from hive_external2_1.myhive_0110_par; -- Hasil berikut dikembalikan: a b c 101 1 20230110 102 2 20230110 103 3 20230110 -- Eksekusi pernyataan CREATE TABLE LIKE untuk membuat tabel internal. create table from_exetbl_like like hive_external2_1.myhive_0110_par; -- Kueri tabel internal. select * from from_exetbl_like; -- Hanya skema tabel internal yang dikembalikan. a b c -- Kueri skema tabel internal. desc from_exetbl_like; -- Hasil berikut dikembalikan: +------------------------------------------------------------------------------------+ | Owner: ALIYUN$************ | | Project: ***_*****_*** | | TableComment: | +------------------------------------------------------------------------------------+ | CreateTime: 2023-01-10 15:09:47 | | LastDDLTime: 2023-01-10 15:09:47 | | LastModifiedTime: 2023-01-10 15:09:47 | +------------------------------------------------------------------------------------+ | InternalTable: YES | Size: 0 | +------------------------------------------------------------------------------------+ | Native Columns: | +------------------------------------------------------------------------------------+ | Field | Type | Label | Comment | +------------------------------------------------------------------------------------+ | a | string | | | | b | string | | | +------------------------------------------------------------------------------------+ | Partition Columns: | +------------------------------------------------------------------------------------+ | c | string | | +------------------------------------------------------------------------------------+Contoh 17: Buat tabel Delta.
create table mf_tt (pk bigint not null primary key, val bigint) tblproperties ("transactional"="true");Contoh 18: Buat tabel Delta dan konfigurasikan properti tabel utama.
create table mf_tt2 (pk bigint not null, pk2 bigint not null, val bigint, val2 bigint, primary key (pk, pk2) ) tblproperties ("transactional"="true", "write.bucket.num" = "64", "acid.data.retain.hours"="120") lifecycle 7;
Ubah Pemilik Tabel
Mengubah pemilik tabel.
Hanya pemilik proyek atau pengguna dengan role Super_Administrator yang dapat mengeksekusi perintah untuk memodifikasi pemilik tabel.
Sintaks
alter table <table_name> changeowner to <new_owner>;Parameter
table_name: wajib. Nama tabel yang pemiliknya ingin Anda ubah.
new_owner: wajib. Pemilik baru tabel. Jika Anda ingin mengubah pemilik tabel menjadi pengguna RAM, Anda harus mengatur parameter ini ke nilai dalam format
RAM$<UID>:<ram_name>. UID menunjukkan ID Akun Alibaba Cloud dan ram_name menunjukkan nama tampilan pengguna RAM.CatatanJika Anda ingin mengubah pemilik tabel menjadi pengguna RAM, pastikan bahwa pengguna RAM tersebut telah ditambahkan ke proyek tempat tabel tersebut berada.
Contoh
Ubah pemilik tabel test1 menjadi ALIYUN$xxx@aliyun.com.
alter table test1 changeowner to 'ALIYUN$xxx@aliyun.com';Ubah pemilik tabel test1 menjadi pengguna RAM bernama
ram_test.alter table test1 changeowner to 'RAM$13xxxxxxxxxxx:ram_test';
Hapus Tabel
Menghapus tabel non-partisi atau tabel partisi.
Peringatan
Sebelum menghapus tabel, pastikan bahwa tabel tersebut dapat dihapus. Lakukan dengan hati-hati. Jika Anda tidak sengaja menghapus tabel, Anda dapat memulihkan tabel tersebut jika fitur backup dan pemulihan diaktifkan untuk proyek tersebut dan tabel dihapus dalam periode retensi data backup yang ditentukan untuk proyek tersebut. Untuk informasi lebih lanjut tentang fitur backup dan pemulihan, lihat Backup lokal.
Setelah menghapus tabel, volume data yang disimpan dalam proyek MaxCompute berkurang.
Sintaks
drop table [if exists] <table_name>;Parameter
if exists: opsional. Jika Anda tidak menentukan parameter if exists dan tabel yang ingin Anda hapus tidak ada, maka akan dikembalikan error. Jika Anda menentukan parameter if exists, pesan sukses akan dikembalikan terlepas dari apakah tabel tersebut ada atau tidak.
table_name: wajib. Nama tabel yang ingin Anda hapus.
Contoh
-- Hapus tabel sale_detail. Pesan sukses dikembalikan terlepas dari apakah tabel sale_detail ada atau tidak. drop table if exists sale_detail;
Lihat Informasi tentang Tabel atau View
Menampilkan informasi tentang tabel internal MaxCompute, view, tabel eksternal, tabel terkluster, atau tabel transaksional. Untuk informasi lebih lanjut tentang cara melihat informasi tabel secara detail, lihat Sintaks SELECT.
Sintaks
-- Lihat informasi tentang tabel atau view. desc <table_name|view_name> [partition (<pt_spec>)]; -- Lihat informasi tentang tabel eksternal, tabel terkluster, atau tabel transaksional. Anda juga dapat mengeksekusi pernyataan ini untuk melihat informasi tambahan tentang tabel internal. desc extended <table_name>;Parameter
table_name: wajib. Nama tabel yang ingin Anda lihat.
view_name: wajib. Nama view yang informasinya ingin Anda lihat.
pt_spec: opsional. Partisi dalam tabel partisi yang ingin Anda lihat. Nilai parameter ini dalam format
(partition_col1 = partition_col_value1, partition_col2 = partition_col_value2, ...).extended: Parameter ini wajib jika tabelnya adalah tabel eksternal, tabel terkluster, atau tabel transaksional. Parameter ini digunakan untuk mengkueri informasi tambahan tentang tabel. Anda juga dapat menggunakan parameter ini untuk melihat informasi tambahan tentang tabel internal, seperti apakah suatu kolom dalam tabel internal dapat berisi nilai NULL atau tidak.
Contoh
Contoh 1: Lihat informasi tentang tabel test1.
desc test1;Hasil berikut dikembalikan:
+------------------------------------------------------------------------------------+ | Owner: ALIYUN$maoXXX@alibaba-inc.com | Project: $project_name | | TableComment: | +------------------------------------------------------------------------------------+ | CreateTime: 2020-11-16 17:47:48 | | LastDDLTime: 2020-11-16 17:47:48 | | LastModifiedTime: 2020-11-16 17:47:48 | +------------------------------------------------------------------------------------+ | InternalTable: YES | Size: 0 | +------------------------------------------------------------------------------------+ | Native Columns: | +------------------------------------------------------------------------------------+ | Field | Type | Label | Comment | +------------------------------------------------------------------------------------+ | key | string | | | +------------------------------------------------------------------------------------+Contoh 2: Lihat informasi tentang tabel sale_detail.
desc sale_detail;Hasil berikut dikembalikan:
+--------------------------------------------------------------------+ | Owner: ALIYUN$maoXXX@alibaba-inc.com | Project: $project_name | | TableComment: | +--------------------------------------------------------------------+ | CreateTime: 2017-06-28 15:05:17 | | LastDDLTime: 2017-06-28 15:05:17 | | LastModifiedTime: 2017-06-28 15:05:17 | +--------------------------------------------------------------------+ | InternalTable: YES | Size: 0 | +--------------------------------------------------------------------+ | Native Columns: | +--------------------------------------------------------------------+ | Field | Type | Label | Comment | +--------------------------------------------------------------------+ | shop_name | string | | | | customer_id | string | | | | total_price | double | | | +--------------------------------------------------------------------+ | Partition Columns: | +--------------------------------------------------------------------+ | sale_date | string | | | region | string | | +--------------------------------------------------------------------+Contoh 3: Lihat informasi detail tentang tabel sale_detail_ctas1.
desc extended sale_detail_ctas1;Hasil berikut dikembalikan:
+------------------------------------------------------------------------------------+ | Owner: ALIYUN$maoXXX@alibaba-inc.com | Project: $project_name | | TableComment: | +------------------------------------------------------------------------------------+ | CreateTime: 2021-07-07 15:29:53 | | LastDDLTime: 2021-07-07 15:29:53 | | LastModifiedTime: 2021-07-07 15:29:53 | | Lifecycle: 10 | +------------------------------------------------------------------------------------+ | InternalTable: YES | Size: 0 | +------------------------------------------------------------------------------------+ | Native Columns: | +------------------------------------------------------------------------------------+ | Field | Type | Label | ExtendedLabel | Nullable | DefaultValue | Comment | +------------------------------------------------------------------------------------+ | shop_name | string | | | true | NULL | | | customer_id | string | | | true | NULL | | | total_price | double | | | true | NULL | | | sale_date | string | | | true | NULL | | | region | string | | | true | NULL | | +------------------------------------------------------------------------------------+ | Extended Info: | +------------------------------------------------------------------------------------+ | TableID: 98cb8a38733c49eabed4735173818147 | | IsArchived: false | | PhysicalSize: 0 | | FileNum: 0 | | StoredAs: AliOrc | | CompressionStrategy: normal | +------------------------------------------------------------------------------------+Kolom sale_date dan region dianggap sebagai kolom biasa. Kolom tersebut bukan kolom kunci partisi.
Contoh 4: Lihat informasi tentang tabel sale_detail_ctas2.
desc sale_detail_ctas2;Hasil berikut dikembalikan:
+--------------------------------------------------------------------+ | Owner: ALIYUN$xxxxx@alibaba-inc.com | Project: $project_name | | TableComment: | +--------------------------------------------------------------------+ | CreateTime: 2017-06-28 15:42:17 | | LastDDLTime: 2017-06-28 15:42:17 | | LastModifiedTime: 2017-06-28 15:42:17 | +--------------------------------------------------------------------+ | InternalTable: YES | Size: 0 | +--------------------------------------------------------------------+ | Native Columns: | +--------------------------------------------------------------------+ | Field | Type | Label | Comment | +--------------------------------------------------------------------+ | shop_name | string | | | | customer_id | string | | | | total_price | double | | | | sale_date | string | | | | region | string | | | +--------------------------------------------------------------------+Contoh 5: Lihat detail tentang tabel sale_detail_like.
desc extended sale_detail_like;Hasil berikut dikembalikan:
+------------------------------------------------------------------------------------+ | Owner: ALIYUN$xxxxx@alibaba-inc.com | Project: $project_name | | TableComment: | +------------------------------------------------------------------------------------+ | CreateTime: 2021-07-07 15:40:38 | | LastDDLTime: 2021-07-07 15:40:38 | | LastModifiedTime: 2021-07-07 15:40:38 | | Lifecycle: 10 | +------------------------------------------------------------------------------------+ | InternalTable: YES | Size: 0 | +------------------------------------------------------------------------------------+ | Native Columns: | +------------------------------------------------------------------------------------+ | Field | Type | Label | ExtendedLabel | Nullable | DefaultValue | Comment | +------------------------------------------------------------------------------------+ | shop_name | string | | | true | NULL | | | customer_id | string | | | true | NULL | | | total_price | double | | | true | NULL | | +------------------------------------------------------------------------------------+ | Partition Columns: | +------------------------------------------------------------------------------------+ | sale_date | string | | | region | string | | +------------------------------------------------------------------------------------+ | Extended Info: | +------------------------------------------------------------------------------------+ | TableID: 61782ff7713f426e9d6f91d5deeac99a | | IsArchived: false | | PhysicalSize: 0 | | FileNum: 0 | | StoredAs: AliOrc | | CompressionStrategy: normal | +------------------------------------------------------------------------------------+Selain konfigurasi lifecycle, properti seperti tipe field dan tipe partisi tabel sale_detail_like sama dengan tabel sale_detail.
CatatanUkuran data dalam output pernyataan
DESC table_namemencakup ukuran data di Keranjang daur ulang. Jika Anda ingin mengosongkan Keranjang daur ulang, eksekusi pernyataanPURGE TABLE table_name. Kemudian, eksekusi pernyataanDESC table_nameuntuk melihat ukuran data yang tidak termasuk ukuran data di Keranjang daur ulang. Anda juga dapat mengeksekusi pernyataanSHOW RECYCLEBINuntuk melihat detail data di Keranjang daur ulang untuk proyek saat ini.Contoh 6: Lihat informasi tentang tabel test_newtype.
desc test_newtype;Hasil berikut dikembalikan:
| Native Columns: | +------------------------------------------------------------------------------------+ | Field | Type | Label | Comment | +------------------------------------------------------------------------------------+ | c1 | tinyint | | | | c2 | smallint | | | | c3 | int | | | | c4 | bigint | | | | c5 | float | | | | c6 | double | | | | c7 | decimal | | | | c8 | binary | | | | c9 | timestamp | | | | c10 | array<map<bigint,bigint>> | | | | c11 | map<string,array<bigint>> | | | | c12 | struct<s1:string,s2:bigint> | | | | c13 | varchar(20) | | | +------------------------------------------------------------------------------------+ OKContoh 7: Lihat informasi tabel hash-clustered t1. Tabel ini adalah tabel non-partisi. Atribut pengelompokan ditampilkan di Extended Info.
desc extended t1;Hasil berikut dikembalikan:
+------------------------------------------------------------------------------------+ | Owner: ALIYUN$xxxxx@alibaba-inc.com | Project: $project_name | | TableComment: | +------------------------------------------------------------------------------------+ | CreateTime: 2020-11-16 18:00:56 | | LastDDLTime: 2020-11-16 18:00:56 | | LastModifiedTime: 2020-11-16 18:00:56 | +------------------------------------------------------------------------------------+ | InternalTable: YES | Size: 0 | +------------------------------------------------------------------------------------+ | Native Columns: | +------------------------------------------------------------------------------------+ | Field | Type | Label | ExtendedLabel | Nullable | DefaultValue | Comment | +------------------------------------------------------------------------------------+ | a | string | | | true | NULL | | | b | string | | | true | NULL | | | c | bigint | | | true | NULL | | +------------------------------------------------------------------------------------+ | Extended Info: | +------------------------------------------------------------------------------------+ | TableID: e6b06f705dc34a36a5b72e5af486cab7 | | IsArchived: false | | PhysicalSize: 0 | | FileNum: 0 | | StoredAs: AliOrc | | CompressionStrategy: normal | | ClusterType: hash | | BucketNum: 1024 | | ClusterColumns: [c] | | SortColumns: [c ASC] | +------------------------------------------------------------------------------------+ OKContoh 8: Lihat informasi tentang tabel hash-clustered t2. Tabel ini adalah tabel partisi. Atribut pengelompokan ditampilkan di Extended Info.
desc extended t2;Hasil berikut dikembalikan:
+------------------------------------------------------------------------------------+ | Owner: ALIYUN$xxxxx@alibaba-inc.com | Project: $project_name | | TableComment: | +------------------------------------------------------------------------------------+ | CreateTime: 2017-12-25 11:18:26 | | LastDDLTime: 2017-12-25 11:18:26 | | LastModifiedTime: 2017-12-25 11:18:26 | | Lifecycle: 2 | +------------------------------------------------------------------------------------+ | InternalTable: YES | Size: 0 | +------------------------------------------------------------------------------------+ | Native Columns: | +------------------------------------------------------------------------------------+ | Field | Type | Label | Comment | +------------------------------------------------------------------------------------+ | a | string | | | | b | string | | | | c | bigint | | | +------------------------------------------------------------------------------------+ | Partition Columns: | +------------------------------------------------------------------------------------+ | dt | string | | +------------------------------------------------------------------------------------+ | Extended Info: | +------------------------------------------------------------------------------------+ | TableID: 91a3395d3ef64b4d9ee1d2852755 | | IsArchived: false | | PhysicalSize: 0 | | FileNum: 0 | | ClusterType: hash | | BucketNum: 1024 | | ClusterColumns: [c] | | SortColumns: [c ASC] | +------------------------------------------------------------------------------------+ OKContoh 9: Lihat informasi tentang tabel range-clustered t3. Tabel ini adalah tabel non-partisi. Atribut pengelompokan ditampilkan di Extended Info.
desc extended t3;Hasil berikut dikembalikan:
+------------------------------------------------------------------------------------+ | Owner: ALIYUN$xxxxx@alibaba-inc.com | Project: $project_name | | TableComment: | +------------------------------------------------------------------------------------+ | CreateTime: 2020-11-16 18:01:05 | | LastDDLTime: 2020-11-16 18:01:05 | | LastModifiedTime: 2020-11-16 18:01:05 | +------------------------------------------------------------------------------------+ | InternalTable: YES | Size: 0 | +------------------------------------------------------------------------------------+ | Native Columns: | +------------------------------------------------------------------------------------+ | Field | Type | Label | ExtendedLabel | Nullable | DefaultValue | Comment | +------------------------------------------------------------------------------------+ | a | string | | | true | NULL | | | b | string | | | true | NULL | | | c | bigint | | | true | NULL | | +------------------------------------------------------------------------------------+ | Extended Info: | +------------------------------------------------------------------------------------+ | TableID: 38d170aca2684f4baadbbe1931a6ae1f | | IsArchived: false | | PhysicalSize: 0 | | FileNum: 0 | | StoredAs: AliOrc | | CompressionStrategy: normal | | ClusterType: range | | BucketNum: 1024 | | ClusterColumns: [c] | | SortColumns: [c ASC] | +------------------------------------------------------------------------------------+ OKContoh 10: Lihat informasi tentang tabel range-clustered t4. Tabel ini adalah tabel partisi. Atribut pengelompokan ditampilkan di Extended Info.
desc extended t4;Hasil berikut dikembalikan:
+------------------------------------------------------------------------------------+ | Owner: ALIYUN$xxxxx@alibaba-inc.com | Project: $project_name | | TableComment: | +------------------------------------------------------------------------------------+ | CreateTime: 2020-11-16 19:17:48 | | LastDDLTime: 2020-11-16 19:17:48 | | LastModifiedTime: 2020-11-16 19:17:48 | +------------------------------------------------------------------------------------+ | InternalTable: YES | Size: 0 | +------------------------------------------------------------------------------------+ | Native Columns: | +------------------------------------------------------------------------------------+ | Field | Type | Label | ExtendedLabel | Nullable | DefaultValue | Comment | +------------------------------------------------------------------------------------+ | a | string | | | true | NULL | | | b | string | | | true | NULL | | | c | bigint | | | true | NULL | | +------------------------------------------------------------------------------------+ | Partition Columns: | +------------------------------------------------------------------------------------+ | dt | string | | +------------------------------------------------------------------------------------+ | Extended Info: | +------------------------------------------------------------------------------------+ | TableID: 6ebc3432e283449188c861427bcd6ee4 | | IsArchived: false | | PhysicalSize: 0 | | FileNum: 0 | | StoredAs: AliOrc | | CompressionStrategy: normal | | ClusterType: range | | BucketNum: 0 | | ClusterColumns: [c] | | SortColumns: [c ASC] | +------------------------------------------------------------------------------------+ OKContoh 11: Periksa apakah tabel non-partisi t5 adalah tabel transaksional.
CatatanKami menyarankan agar Anda menggunakan client MaxCompute untuk memeriksa apakah suatu tabel adalah tabel transaksional. Versi client MaxCompute harus V0.35.4 atau lebih baru. Untuk informasi lebih lanjut tentang cara mengunduh dan menggunakan client MaxCompute, lihat Client MaxCompute. Alat lain mungkin belum diperbarui dan tidak menampilkan informasi transaksional.
desc extended t5;Hasil berikut dikembalikan:
+------------------------------------------------------------------------------------+ | Owner: ALIYUN$xxxxx@aliyun.com | Project: $project_name | | TableComment: | +------------------------------------------------------------------------------------+ | CreateTime: 2021-02-18 10:56:27 | | LastDDLTime: 2021-02-18 10:56:27 | | LastModifiedTime: 2021-02-18 10:56:27 | +------------------------------------------------------------------------------------+ | InternalTable: YES | Size: 0 | +------------------------------------------------------------------------------------+ | Native Columns: | +------------------------------------------------------------------------------------+ | Field | Type | Label | ExtendedLabel | Nullable | DefaultValue | Comment | +------------------------------------------------------------------------------------+ | id | bigint | | | true | NULL | | +------------------------------------------------------------------------------------+ | Extended Info: | +------------------------------------------------------------------------------------+ ... | Transactional: true | +------------------------------------------------------------------------------------+Contoh 12: Periksa apakah tabel partisi t6 adalah tabel transaksional. Contoh pernyataan:
CatatanKami menyarankan agar Anda menggunakan client MaxCompute untuk memeriksa apakah suatu tabel adalah tabel transaksional. Versi client MaxCompute harus V0.35.4 atau lebih baru. Untuk informasi lebih lanjut tentang cara mengunduh dan menggunakan client MaxCompute, lihat Client MaxCompute. Alat lain mungkin belum diperbarui dan tidak menampilkan informasi transaksional.
desc extended t6;Hasil berikut dikembalikan:
+------------------------------------------------------------------------------------+ | Owner: ALIYUN$xxxxx@test.aliyunid.com | Project: $project_name | | TableComment: | +------------------------------------------------------------------------------------+ | CreateTime: 2021-02-18 15:34:54 | | LastDDLTime: 2021-02-18 15:34:54 | | LastModifiedTime: 2021-02-18 15:34:54 | +------------------------------------------------------------------------------------+ | InternalTable: YES | Size: 0 | +------------------------------------------------------------------------------------+ | Native Columns: | +------------------------------------------------------------------------------------+ | Field | Type | Label | Comment | +------------------------------------------------------------------------------------+ | id | bigint | | | +------------------------------------------------------------------------------------+ | Partition Columns: | +------------------------------------------------------------------------------------+ | ds | string | | +------------------------------------------------------------------------------------+ | Extended Info: | +------------------------------------------------------------------------------------+ ... | Transactional: true | +------------------------------------------------------------------------------------+
Lihat Informasi Partisi
Menampilkan informasi partisi dari tabel partisi.
Sintaks
desc <table_name> partition (<pt_spec>);Parameter
table_name: wajib. Nama tabel partisi yang informasi partisinya ingin Anda lihat.
pt_spec: wajib. Informasi partisi yang ingin Anda lihat. Nilai parameter ini dalam format
partition_col1=col1_value1, partition_col2=col2_value1.... Jika suatu tabel memiliki partisi multi-level, Anda harus menentukan nilai semua kolom kunci partisi.
Contoh
-- Kueri informasi tentang tabel partisi sale_detail. desc sale_detail partition (sale_date='201310',region='beijing');Hasil berikut dikembalikan:
+------------------------------------------------------------------------------------+ | PartitionSize: 2109112 | +------------------------------------------------------------------------------------+ | CreateTime: 2015-10-10 08:48:48 | | LastDDLTime: 2015-10-10 08:48:48 | | LastModifiedTime: 2015-10-11 01:33:35 | +------------------------------------------------------------------------------------+ OK
Tampilkan Tabel dan View dalam Proyek
Menampilkan semua tabel dan view atau tabel dan view yang memenuhi aturan tertentu dalam suatu proyek.
Sintaks
-- Tampilkan semua tabel dan view dalam proyek. show tables; -- Tampilkan tabel atau view yang namanya mengandung kata kunci chart dalam proyek. show tables like '<chart>';Contoh
-- Tampilkan tabel yang namanya mengandung kata kunci sale* dalam proyek. Tanda bintang (*) menunjukkan karakter apa pun. show tables like 'sale*';Hasil berikut dikembalikan:
ALIYUN$account_name:sale_detail ...... -- ALIYUN adalah prompt sistem, yang menunjukkan bahwa tabel dibuat menggunakan Akun Alibaba Cloud. Jika tabel dibuat oleh pengguna RAM, prompt sistemnya adalah RAM.
Tampilkan Partisi
Menampilkan semua partisi dari suatu tabel. Jika tabel tidak ada atau tabel tersebut adalah tabel non-partisi, maka akan dikembalikan error.
Sintaks
show partitions <table_name>;Parameter
table_name: wajib. Nama tabel partisi yang informasi partisinya ingin Anda lihat.
Contoh
-- Tampilkan semua partisi dari tabel sale_detail. show partitions sale_detail;Hasil berikut dikembalikan:
sale_date=201310/region=beijing sale_date=201312/region=shenzhen sale_date=201312/region=xian sale_date=2014/region=shenzhen OK
Referensi
Untuk memodifikasi skema tabel yang sudah ada, seperti menambahkan kolom, menghapus kolom, atau mengubah tipe data kolom, lihat Operasi Partisi dan Kolom.
Untuk informasi lebih lanjut tentang cara mengkloning data dari satu tabel ke tabel lain, lihat CLONE TABLE.
Untuk informasi lebih lanjut tentang cara menghapus atau memperbarui data baris tertentu dalam tabel transaksional, lihat Perbarui atau hapus data (UPDATE | DELETE).