全部产品
Search
文档中心

MaxCompute:Format data tabel

更新时间:Jul 06, 2025

Untuk mendukung arsitektur terintegrasi penyimpanan dan pemrosesan penuh serta bertahap, tabel Delta menyediakan format data tabel yang seragam. Tabel Delta mendukung semua fitur tabel standar MaxCompute dan cocok untuk skenario baru seperti kueri time travel dan operasi UPSERT. Topik ini menjelaskan format data tabel dari tabel Delta.

Properti utama tabel Delta

Hanya tabel Delta yang mendukung kunci utama. Untuk mengeksekusi pernyataan CREATE TABLE guna membuat tabel Delta dengan kunci utama, Anda dapat mengonfigurasi properti berikut dalam pernyataan: kunci utama dan tblproperties ("transactional"="true").

  • kunci utama: Setelah mengonfigurasi properti ini, Anda dapat mengimpor data dalam mode UPSERT secara efisien. Beberapa baris rekaman dengan kunci utama yang sama digabungkan menjadi satu baris setelah kueri berbasis snapshot atau operasi compaction, hanya status terbaru yang dipertahankan.

  • tblproperties ("transactional"="true"): Properti transaksional menunjukkan karakteristik ACID (atomicity, consistency, isolation, and durability) untuk memastikan isolasi snapshot dan kontrol atas operasi baca dan tulis bersamaan. Bidang properti transaksional ditambahkan ke setiap baris data yang ditulis ke tabel. Sebagai contoh, bidang timestamp ditambahkan ke setiap baris untuk mendapatkan versi data yang diperlukan dalam kueri time travel.

Anda juga dapat mengonfigurasi properti lainnya, seperti write.bucket.num untuk menentukan tingkat paralelisme penulisan dan acid.data.retain.hours untuk menentukan rentang waktu efektif kueri data historis. Untuk informasi lebih lanjut tentang properti tabel, lihat Parameter untuk tabel Delta.

Format file yang didukung oleh tabel Delta

Tabel Delta mendukung beberapa format file untuk memastikan efisiensi tinggi dalam skenario baca dan tulis penuh serta bertahap hampir real-time. Format file yang didukung mencakup file dasar dan file delta.

image.png

Berikut deskripsi file dasar dan file delta:

  • File delta: File ini dihasilkan setiap kali transaksi dikomit dan data ditulis dalam mode UPDATE atau DELETE. File delta menyimpan status historis antara dari setiap baris data untuk mendukung baca dan tulis bertahap hampir real-time. File delta juga dihasilkan selama operasi clustering. File delta menggunakan penyimpanan berorientasi kolom dan kompresi.

  • File dasar: File ini dihasilkan setelah operasi compaction pada file delta. Dalam file dasar, status historis antara dihapus dan hanya satu baris data disimpan untuk rekaman dengan kunci utama yang sama. File dasar menggunakan penyimpanan berorientasi kolom dan kompresi untuk mendukung kueri data penuh yang efisien.

Saat menanyakan data dalam tabel Transaction Table 2.0, perhatikan hal-hal berikut:

  • MaxCompute mencari file dasar terbaru saat melakukan kueri berbasis snapshot. Kemudian, MaxCompute mencari semua file delta tempat data ditulis setelah file dasar dihasilkan dan menggabungkan data tersebut. Oleh karena itu, mode kueri adalah Merge On Read (MOR). Untuk informasi lebih lanjut, lihat Kueri time travel dan kueri bertahap.

  • Semua file data diurutkan berdasarkan nilai kolom kunci utama. Hal ini meningkatkan efisiensi penggabungan dan membantu mengoptimalkan kueri pengabaian data. File data menggunakan penyimpanan berorientasi kolom dan kompresi, yang mengurangi jumlah data yang disimpan, menghemat biaya, dan meningkatkan efisiensi I/O.

Buckets

Untuk meningkatkan efisiensi baca dan tulis, tabel Delta memungkinkan data dibagi berdasarkan kolom indeks bucket. Secara default, kolom indeks bucket menggunakan data dari kolom kunci utama. Anda dapat mengonfigurasi properti write.bucket.num untuk menentukan jumlah bucket tempat data ditulis. Data yang ditulis ke tabel atau partisi yang sama dibagi berdasarkan nilai kolom kunci utama, dan rekaman dengan kunci utama yang sama disimpan dalam bucket yang sama.

Impor bertahap hampir real-time mendukung konkurensi tinggi melalui penskalaan horizontal jumlah bucket. Oleh karena itu, evaluasilah dan tentukan jumlah bucket yang masuk akal berdasarkan lalu lintas penulisan data dan ukuran penyimpanan total data tabel. Jika jumlah bucket terlalu besar, terlalu banyak file kecil mungkin dihasilkan, memengaruhi efisiensi baca dan tulis serta stabilitas penyimpanan. Jika jumlah bucket terlalu kecil, persyaratan impor hampir real-time dengan lalu lintas dan kecepatan tinggi mungkin tidak terpenuhi.

Fitur ini juga meningkatkan efisiensi kueri data. Jika kondisi filter diterapkan pada kolom indeks bucket, pemangkasan bucket dapat dilakukan secara efisien untuk mengurangi jumlah data yang dikueri. Jika kolom kunci dalam klausa GROUP BY atau operasi JOIN sama dengan kolom indeks bucket, Anda dapat langsung melakukan operasi local join atau GROUP BY, mengurangi pengacakan, menghemat sumber daya komputasi, dan meningkatkan kinerja kueri.

Operasi manajemen optimasi data, seperti pengelompokan ulang dan penggabungan file kecil, dapat dilakukan secara paralel berdasarkan bucket untuk meningkatkan efisiensi eksekusi dan memperpendek waktu pemrosesan.

Jenis rekaman

Hanya rekaman data jenis UPSERT dan DELETE yang dapat ditulis dan disimpan. Jenis UPSERT mencakup dua semantik implisit: INSERT dan UPDATE. Jika sebuah rekaman sebelumnya tidak ada, jenis rekaman tersebut adalah INSERT. Jika sebuah rekaman sudah ada, jenis rekaman tersebut adalah UPDATE.