全部产品
Search
文档中心

Realtime Compute for Apache Flink:Tabel sistem

更新时间:Jul 02, 2025

Apache Paimon (Paimon) menggunakan tabel sistem untuk menyimpan metadata dan informasi konsumsi data dari setiap tabel Paimon. Topik ini menjelaskan kolom-kolom dalam berbagai tabel sistem.

Tabel sistem terkait dengan metadata tabel

Tabel snapshots

Tabel snapshots memungkinkan Anda menanyakan informasi tentang setiap file snapshot dari tabel Paimon, seperti ID dan waktu pembuatan file snapshot.

Sebagai contoh, Anda dapat menggunakan pernyataan SQL berikut untuk menanyakan tabel snapshots dari tabel Paimon mycatalog.mydb.mytbl.

SELECT * FROM mycatalog.mydb.`mytbl$snapshots`;

Tabel berikut menjelaskan kolom-kolom dalam tabel snapshots.

Kolom

Tipe data

Deskripsi

snapshot_id

Long

ID file snapshot.

schema_id

Long

ID file skema yang digunakan oleh file snapshot. Anda bisa mendapatkan informasi skema dari tabel skema.

commit_time

Timestamp

Waktu ketika file snapshot dibuat.

total_record_count

Long

Jumlah total rekaman dalam file data yang ditunjuk oleh file snapshot.

Catatan

Nilai dalam kolom ini tidak menunjukkan jumlah rekaman data yang disimpan secara logis dalam tabel Paimon. Hal ini karena file data dikompaksi di memori sebelum ditangkap dalam file snapshot.

delta_record_count

Long

Jumlah rekaman data yang ditambahkan dibandingkan dengan file snapshot sebelumnya.

changelog_record_count

Long

Jumlah rekaman changelog yang dihasilkan dibandingkan dengan file snapshot sebelumnya.

Tabel schemas

Tabel schemas memungkinkan Anda menanyakan informasi skema saat ini dan historis dari tabel Paimon. Jika Anda mengubah skema tabel Paimon menggunakan pernyataan ALTER TABLE, CREATE TABLE AS, atau CREATE DATABASE AS, setiap modifikasi menghasilkan catatan dalam tabel schemas. Sebagai contoh, Anda dapat menggunakan pernyataan SQL berikut untuk menanyakan tabel schemas dari tabel Paimon mycatalog.mydb.mytbl:

SELECT * FROM mycatalog.mydb.`mytbl$schemas`;

Tabel berikut menjelaskan kolom-kolom dalam tabel schemas.

Kolom

Tipe data

Deskripsi

schema_id

Long

ID skema.

fields

String

Nama dan tipe data setiap kolom.

partition_keys

String

Nama kunci partisi.

primary_keys

String

Nama kunci utama.

options

String

Nilai-nilai opsi tabel.

comment

String

Komentar yang ditambahkan ke tabel untuk memberikan informasi tambahan.

update_time

Timestamp

Waktu ketika skema terakhir dimodifikasi.

Tabel options

Tabel options memungkinkan Anda menanyakan konfigurasi saat ini dari opsi tabel.

Sebagai contoh, Anda dapat menggunakan pernyataan SQL berikut untuk menanyakan tabel options dari tabel Paimon mycatalog.mydb.mytbl.

SELECT * FROM mycatalog.mydb.`mytbl$options`;

Tabel berikut menjelaskan kolom-kolom dalam tabel options.

Kolom

Tipe data

Deskripsi

key

String

Nama opsi tabel.

value

String

Nilai opsi tabel.

Catatan

Jika opsi tabel tidak termasuk dalam tabel, maka opsi tersebut diatur ke nilai default.

Tabel partitions

Tabel partitions memungkinkan Anda menanyakan partisi dalam tabel Paimon, jumlah total rekaman data dalam setiap partisi, dan ukuran total file dalam setiap partisi.

Sebagai contoh, Anda dapat menggunakan pernyataan SQL berikut untuk menanyakan tabel partitions dari tabel Paimon mycatalog.mydb.mytbl:

SELECT * FROM mycatalog.mydb.`mytbl$partitions`;

Tabel berikut menjelaskan kolom-kolom dalam tabel partitions.

Kolom

Tipe data

Deskripsi

partition

String

Partisi dalam format [nilai partisi 1, nilai partisi 2, ...].

record_count

Long

Jumlah total rekaman data dalam partisi.

Catatan

Nilai dalam kolom ini tidak menunjukkan jumlah rekaman data yang disimpan secara logis dalam partisi. Hal ini karena file data dikompaksi di memori sebelum ditangkap dalam file snapshot.

file_size_in_bytes

Long

Ukuran total file dalam partisi. Satuan: byte.

Hanya file data yang ditunjuk oleh file snapshot saat ini yang dihitung.

Tabel files

Tabel files memungkinkan Anda menanyakan semua file data yang ditunjuk oleh file snapshot, termasuk format file, jumlah rekaman dalam file, dan ukuran file.

Sebagai contoh, Anda dapat menggunakan pernyataan SQL berikut untuk menanyakan tabel files yang dibuat untuk snapshot paling baru dari tabel Paimon mycatalog.mydb.mytbl:

SELECT * FROM mycatalog.mydb.`mytbl$files`;

Anda juga dapat menanyakan tabel files yang dibuat untuk snapshot tertentu dari tabel Paimon mycatalog.mydb.mytbl. Anda dapat menggunakan pernyataan SQL berikut untuk menanyakan tabel files yang dibuat untuk snapshot dengan ID 5.

SELECT * FROM mycatalog.mydb.`mytbl$files` /*+ OPTIONS('scan.snapshot-id'='5') */;

Tabel berikut menjelaskan kolom-kolom dalam tabel files.

Kolom

Tipe data

Deskripsi

partition

String

Partisi yang berisi file. Format: [nilai partisi 1, nilai partisi 2, ...].

bucket

Integer

Bucket yang berisi file. Kolom ini hanya berlaku untuk tabel kunci utama yang menggunakan mode bucket tetap.

file_path

String

Path file.

file_format

String

Format file.

schema_id

Long

ID file skema yang digunakan oleh file snapshot. Anda bisa mendapatkan informasi skema dari tabel skema.

level

Integer

Tingkat log-structured merge-tree (LSM) dari file. Kolom ini hanya berlaku untuk tabel kunci utama.

Nilai 0 menunjukkan file kecil. Anda dapat menanyakan jumlah file kecil dalam bucket untuk memantau kemajuan kompaksi dalam bucket.

record_count

Long

Jumlah rekaman dalam file.

file_size_in_bytes

Long

Ukuran file. Satuan: byte.

Catatan

Tabel files tidak berisi informasi tentang file data historis yang tidak ditunjuk oleh file snapshot yang ditanyakan.

Tabel tags

Tabel tags memungkinkan Anda menanyakan informasi tentang tag dari tabel Paimon, seperti nama tag dan snapshot yang terkait dengan tag.

Sebagai contoh, Anda dapat menggunakan pernyataan SQL berikut untuk menanyakan tabel tags dari tabel Paimon mycatalog.mydb.mytbl.

SELECT * FROM mycatalog.mydb.`mytbl$tags`;

Tabel berikut menjelaskan kolom-kolom dalam tabel tags.

Kolom

Tipe data

Deskripsi

tag_name

String

Nama tag.

snapshot_id

Long

ID snapshot yang terkait dengan tag.

schema_id

Long

ID skema yang digunakan oleh tag. Anda bisa mendapatkan informasi skema dari tabel skema.

commit_time

Timestamp

Waktu ketika snapshot yang terkait dengan tag dibuat.

record_count

Long

Jumlah rekaman dalam file data.

Tabel sistem terkait dengan konsumsi data

Tabel read-optimized

File data dari tabel Paimon harus dikompaksi di memori sebelum tersedia untuk konsumsi, yang memengaruhi efisiensi baca. Jika Anda menggunakan tabel kunci utama dan ingin meningkatkan efisiensi pembacaan batch atau kueri OLAP ad hoc, Anda dapat mengonsumsi data dari tabel read-optimized yang sesuai. Dengan cara ini, hanya file yang tidak memerlukan kompaksi yang dibaca, yang menghilangkan proses kompaksi dan meningkatkan efisiensi kueri. Perhatikan bahwa tabel read-optimized menghasilkan data dengan latensi yang lebih tinggi karena file kecil dikompaksi lebih jarang. Anda dapat mengonfigurasi parameter berikut untuk mengompaksi file kecil pada interval reguler dan mencapai keseimbangan antara efisiensi tulis, efisiensi baca, dan latensi data.

Parameter

Deskripsi

Tipe data

Nilai default

Catatan

compaction.optimization-interval

Interval di mana file kecil dikompaksi.

Duration

Tidak ada

Pengompaksian file kecil yang sering mungkin memengaruhi efisiensi tulis. Kami merekomendasikan Anda mengatur parameter ini ke nilai lebih besar dari 30 min.

Sebagai contoh, Anda dapat menggunakan pernyataan SQL berikut untuk menanyakan tabel read-optimized yang dibuat untuk snapshot paling baru dari tabel Paimon mycatalog.mydb.mytbl:

SELECT * FROM mycatalog.mydb.`mytbl$ro`;

Tabel log audit

Jika Anda perlu mengetahui operasi spesifik dari setiap rekaman dalam tabel Paimon, Anda dapat mengonsumsi data dari tabel log audit yang sesuai. Dibandingkan dengan tabel Paimon asli, tabel log audit menyisipkan kolom bernama rowkind di awal setiap rekaman untuk menyimpan tipe operasi. Nilai valid dalam kolom rowkind adalah +I (insert), -U (update sebelum), +U (update setelah), dan -D (delete). Untuk setiap rekaman dalam tabel log audit, tipe operasinya adalah +I (insert).

Sebagai contoh, Anda dapat menggunakan pernyataan SQL berikut untuk menanyakan tabel log audit yang dibuat untuk snapshot paling baru dari tabel Paimon mycatalog.mydb.mytbl:

SELECT * FROM mycatalog.mydb.`mytbl$audit_log`;

Referensi

Untuk informasi tentang struktur lengkap setiap tabel sistem, lihat dokumentasi resmi Apache Paimon.