AnalyticDB for MySQL memungkinkan Anda menggunakan fungsi MAX_PT() untuk mendapatkan nilai terbesar dari kolom kunci partisi tingkat-1 dalam tabel eksternal MaxCompute yang dipartisi. Fungsi ini menghindari pemindaian seluruh partisi, sehingga meningkatkan kinerja kueri dan efisiensi komputasi secara signifikan.
Prasyarat
Kluster AnalyticDB for MySQL versi V3.2.4.0 atau lebih baru telah dibuat.
CatatanUntuk melihat dan memperbarui versi minor dari kluster AnalyticDB for MySQL, masuk ke Konsol AnalyticDB for MySQL dan pergi ke bagian Configuration Information pada halaman Cluster Information.
Untuk melihat dan memperbarui versi minor dari kluster AnalyticDB for MySQL, masuk ke Konsol AnalyticDB for MySQL dan pergi ke bagian Configuration Information pada halaman Cluster Information.
Sebuah proyek MaxCompute dibuat di wilayah yang sama dengan kluster AnalyticDB for MySQL.
Catatan Penggunaan
Fungsi
MAX_PT()hanya berlaku untuk tabel eksternal MaxCompute. Jika Anda memanggil fungsi MAX_PT() pada tabel internal atau jenis tabel eksternal lainnya, akan muncul kesalahan. Untuk informasi lebih lanjut tentang cara membuat tabel eksternal MaxCompute, lihat CREATE EXTERNAL TABLE.Tabel eksternal MaxCompute tempat fungsi
MAX_PT()digunakan harus merupakan tabel partisi dan memiliki data di setidaknya satu partisi. Jika persyaratan tersebut tidak terpenuhi, fungsi MAX_PT() gagal dieksekusi.
Sintaksis
MAX_PT(<table_full_name>)Parameter
<table_full_name>: nama tabel eksternal MaxCompute yang dipartisi. Formatnya adalah: <database>.<tableName> atau <tableName>. Parameter ini harus bertipe STRING.
Nilai Kembali
Nilai alfabetik terbesar dari kolom kunci partisi tingkat-1 dikembalikan. Tipe data nilai kembali ditentukan oleh tipe data kolom kunci partisi yang didefinisikan dalam tabel eksternal MaxCompute. Tipe data yang didukung meliputi: BOOLEAN, BIGINT, dan STRING.
Contoh
Buat tabel eksternal bernama customer yang memiliki partisi berikut: 20241209, 20241210, dan 20241211. Atur nama kolom kunci partisi menjadi dt.
CREATE EXTERNAL TABLE IF NOT EXISTS customer (
id int,
name varchar(1023),
age int,
dt STRING
) ENGINE='ODPS'
TABLE_PROPERTIES='{
"accessid":"LTAILd4****",
"endpoint":"http://service.cn-hangzhou.maxcompute.aliyun.com/api",
"accesskey":"4A5Q7ZVzcYnWMQPysX****",
"partition_column":"dt",
"project_name":"test_adb",
"table_name":"person"
}';Kueri jumlah baris dalam partisi yang memiliki nilai kolom kunci partisi terbesar di tabel customer.
SELECE COUNT(*) FROM customer WHERE dt=MAX_PT('customer');Dalam contoh ini, AnalyticDB for MySQL hanya mengakses partisi 20241211 dari tabel eksternal MaxCompute. Hal ini mencegah pemindaian seluruh partisi, sehingga secara signifikan meningkatkan kinerja kueri dan efisiensi komputasi keseluruhan.