Data Lake Formation (DLF) mendukung Paimon, sebuah format lakehouse yang menyatukan penyimpanan real-time dan batch. Halaman ini mencakup tiga operasi untuk tabel Paimon di DLF: membuat, melihat, dan menghapus tabel.
Jenis tabel
DLF mendukung dua jenis tabel Paimon. Pilih berdasarkan apakah data Anda memiliki primary key dan apakah Anda memerlukan pembaruan aliran per baris.
| Jenis tabel | Primary key | Paling cocok untuk |
|---|---|---|
| Primary key table | Wajib | Pemrosesan stream, insert, update, dan delete real-time; kueri OLAP yang difilter berdasarkan primary key |
| Append-only table | Tidak ada | Pemrosesan batch, penulisan stream tanpa pembaruan per baris; OLAP dengan pengurutan dan indeks bitmap |
Tabel Paimon yang sepenuhnya dikelola
Semua tabel Paimon yang dibuat di DLF sepenuhnya dikelola. DLF mengontrol seluruh metadata dan file data yang mendasarinya. Menghapus tabel akan menghapus keduanya.
| Fitur | Fungsinya | Dikelola secara otomatis? |
|---|---|---|
| Compaction | Menggabungkan file kecil; berjalan terpisah dari penulisan data agar operasi tetap stabil | Ya |
| Concurrent writes | Beberapa job penulisan dapat menulis ke partisi yang sama secara bersamaan | Ya |
| Metrik tingkat partisi | Melacak jumlah baris, jumlah file, dan ukuran file secara real-time per partisi | Ya |
| Multi-versi (time travel) | Melacak riwayat tabel; mendukung insert, update, dan delete detail halus | Ya |
DLF menyimpan data di path yang di-generate secara otomatis dari universally unique identifier (UUID). Tidak diperlukan konfigurasi path manual.
Tabel Paimon yang dibuat di DLF menggunakan mode write-only secara default. Operasi latar belakang—compaction, pembersihan snapshot, dan pembersihan partisi—ditangani secara otomatis oleh DLF.
Prasyarat
Sebelum memulai, pastikan Anda telah:
-
Mengakses Konsol Data Lake Formation
-
Memiliki katalog dan database yang sudah ada di DLF
Buat tabel Paimon
Buat dari konsol
-
Login ke Konsol Data Lake Formation.
-
Di halaman daftar Data Catalog, klik nama katalog.
-
Di daftar Database, klik nama database untuk membuka daftar tabel.
-
Di table list, klik Create Table.
-
Konfigurasikan pengaturan berikut dan klik OK.
Item konfigurasi Deskripsi Table Format Pilih Paimon Table. Data Table Name Wajib diisi. Harus unik dalam database. Data Table Description Opsional. Columns Definisikan setiap kolom: nama, flag primary key, flag not null, flag bidang partisi, tipe data, panjang/tipe, dan deskripsi. Custom Table Properties Tambahkan properti yang mengganti parameter layanan meta default DLF saat pembuatan tabel. Untuk opsi yang tersedia, lihat dokumentasi resmi Paimon. Format file yang didukung: PARQUET, AVRO, ORC, CSV, TEXT, JSON, LANCE, dan BLOB. Contoh: file.format = LANCE.
Buat dari SQL
Jika Anda telah mengaitkan katalog pada Flink, EMR (E-MapReduce), atau platform lain, buat tabel langsung di platform tersebut—metadata akan ditulis langsung ke DLF. Untuk detailnya, lihat Integrasi engine.
Primary key tables
Primary key table menggunakan primary key sebagai pengidentifikasi unik baris. Tabel ini mendukung insert, update, dan delete real-time, serta secara otomatis menghasilkan change log untuk konsumen stream downstream. Gunakan jenis tabel ini untuk pemrosesan data stream dan kueri online analytical processing (OLAP) yang difilter berdasarkan primary key.
Flink SQL
CREATE TABLE orders (
order_id BIGINT,
price BIGINT,
customer STRING,
PRIMARY KEY NOT ENFORCED(order_id)
);
Spark SQL
CREATE TABLE orders (
order_id BIGINT,
price BIGINT,
customer STRING
) TBLPROPERTIES (
'primary-key' = 'order_id'
);
Alokasi bucket (mode Postpone Bucket)
DLF menggunakan mode Postpone Bucket secara default. Strategi adaptif ini secara dinamis menyesuaikan jumlah bucket berdasarkan volume data partisi, menghindari degradasi performa baca akibat terlalu banyak bucket dan bottleneck tulis akibat terlalu sedikit.
Visibilitas data dalam mode Postpone: Data yang baru ditulis tidak terlihat hingga compaction selesai. Untuk menghilangkan latensi ini:
-
Gunakan Flink (VVR 11.4 atau lebih baru) atau Spark (esr-4.5 atau lebih baru). Versi ini menulis batch langsung ke bucket, sehingga menghilangkan latensi.
-
Untuk tabel yang sensitif terhadap latensi, atur eksplisit jumlah bucket. Contoh:
'bucket' = '5'. Targetkan satu bucket per 1 GB data partisi.
Bucketing dinamis dan skalabilitas otomatis
Konfigurasi lanjutan
Konfigurasikan opsi Paimon berikut untuk tuning tambahan pada primary key table:
-
merge engine: Definisikan logika merge kustom untuk perhitungan kompleks selama compaction.
-
Deletion Vectors (
deletion-vectors.enabled = true): Secara signifikan meningkatkan performa kueri. Setelah diaktifkan, semua data yang baru ditulis hanya terlihat setelah compaction, terlepas dari mode bucket. Ini memerlukan lebih banyak sumber daya compaction tetapi memberikan performa kueri yang lebih stabil. -
changelog-producer (
changelog-producer = 'lookup'): Menghasilkan change log lengkap untuk pembacaan stream downstream. -
sequence.field: Menangani data out-of-order dan memastikan urutan pembaruan yang benar.
Jika data upstream Anda adalah data Change Data Capture (CDC), gunakan Flink CDC atau produk integrasi data untuk memuat data ke DLF. Alat ini mendukung sinkronisasi database penuh, pembuatan tabel otomatis, dan sinkronisasi skema.
Untuk kueri OLAP berkinerja tinggi, aktifkan mode deletion vectors. Meskipun mengonsumsi lebih banyak sumber daya compaction, mode ini memberikan kueri OLAP yang lebih stabil dan berkinerja lebih tinggi.
Append-only tables
Append-only table tidak memiliki primary key. Tabel ini tidak mendukung pembaruan stream per baris, tetapi performa pemrosesan batch-nya jauh lebih baik daripada primary key table. Gunakan untuk sebagian besar beban kerja batch atau skenario stream yang tidak memerlukan pembaruan per baris.
Append-only table mendukung:
-
Penulisan dan pembacaan stream, dengan DLF secara otomatis menggabungkan file kecil di latar belakang
-
Operasi
DELETE,UPDATE, danMERGE INTOdetail halus -
Manajemen versi dan time travel
-
Kueri dipercepat melalui pengurutan dan indeks bitmap, dengan performa baca langsung yang sangat baik untuk engine OLAP
Flink SQL
CREATE TABLE orders (
order_id BIGINT,
price BIGINT,
customer STRING
);
Spark SQL
CREATE TABLE orders (
order_id BIGINT,
price BIGINT,
customer STRING
);
Lihat tabel data
-
Di daftar Database, klik nama database untuk membuka daftar tabel.
-
Di table list, klik nama tabel untuk melihat bidang-bidangnya.
-
Klik tab Table Details untuk melihat informasi dasar tabel, daftar bidang, dan daftar partisi.
CatatanDi tab Table Details, Anda dapat mengubah kelas penyimpanan secara manual untuk tabel partisi maupun non-partisi. Untuk detailnya, lihat Ubah kelas penyimpanan secara manual.
-
Klik tab Permissions untuk memberikan izin tingkat tabel kepada pengguna atau peran. Untuk detailnya, lihat Manajemen otorisasi data.
Hapus tabel data
Menghapus tabel akan menghapus metadata dan datanya. Data disimpan selama satu hari sebagai perlindungan terhadap penghapusan tidak disengaja. Setelah satu hari, data dihapus secara permanen.
-
Di daftar Database, klik nama database untuk membuka daftar tabel.
-
Di table list, klik Delete di kolom Actions.
-
Di kotak dialog, klik OK.
Tabel data yang dihapus dapat dipulihkan selama periode retensi metadata. Untuk informasi lebih lanjut, lihat Recycle bin.