Topik ini menjelaskan cara mengkueri struktur tabel dinamis, semua tabel dinamis dalam instans saat ini, serta alur data dan detail penyimpanan tabel dinamis, bersama dengan cara mengelola tabel status.
Kueri struktur tabel dinamis
Sintaksis
SELECT hg_dump_script('[<schema_name>.]<table_name>');Parameter
schema_name: opsional. Nama skema.
table_name: wajib. Nama tabel dinamis.
Kueri semua tabel dinamis di instance saat ini
Anda dapat mengeksekusi perintah SQL berikut pada tabel sistem hologres.hg_dynamic_table_properties untuk melihat semua tabel dinamis dalam instans saat ini dan mode refresh yang dikonfigurasikan.
SELECT dynamic_table_name, property_value FROM hologres.hg_dynamic_table_properties WHERE property_key = 'refresh_mode';Anda juga dapat mengeksekusi pernyataan berikut untuk mengkueri semua metadata tabel dinamis tertentu:
SELECT * FROM hologres.hg_dynamic_table_properties WHERE dynamic_table_name='<dynamic_table_name>';Kueri garis keturunan data tabel dinamis
Visualisasi
Anda dapat melihat alur data tabel dinamis di HoloWeb dan DataWorks Data Map.
SQL
Lihat alur data satu tabel dinamis
Anda dapat mengeksekusi pernyataan berikut untuk mengkueri garis keturunan data tabel dinamis tertentu:
-- Kueri garis keturunan data satu tabel dinamis.
SELECT
d.*,
CASE WHEN k.dynamic_table_namespace IS NOT NULL THEN
'd'
ELSE
c.relkind
END
FROM
hologres.hg_dynamic_table_dependencies d
LEFT JOIN pg_namespace n ON n.nspname = d.table_namespace
LEFT JOIN pg_class c ON c.relnamespace = n.oid
AND c.relname = d.table_name
LEFT JOIN (
SELECT
dynamic_table_namespace,
dynamic_table_name
FROM
hologres.hg_dynamic_table_properties
GROUP BY
1,
2) k ON k.dynamic_table_namespace = d.table_namespace
AND k.dynamic_table_name = d.table_name
WHERE
d.dynamic_table_namespace = '<schema_name>'
AND d.dynamic_table_name = '<dynamic_table_name>'
AND d.dependency <> 'internal_table';Lihat alur data semua tabel dinamis
Anda dapat mengeksekusi pernyataan berikut untuk mengkueri garis keturunan data semua tabel dinamis:
SELECT
d.*,
CASE WHEN k.dynamic_table_namespace IS NOT NULL THEN
'd'
ELSE
c.relkind
END
FROM
hologres.hg_dynamic_table_dependencies d
LEFT JOIN pg_namespace n ON n.nspname = d.table_namespace
LEFT JOIN pg_class c ON c.relnamespace = n.oid
AND c.relname = d.table_name
LEFT JOIN (
SELECT
dynamic_table_namespace,
dynamic_table_name
FROM
hologres.hg_dynamic_table_properties
GROUP BY
1,
2) k ON k.dynamic_table_namespace = d.table_namespace
AND k.dynamic_table_name = d.table_name
WHERE
d.dependency <> 'internal_table';Informasi berikut menjelaskan nilai parameter base_table_type:
r: menunjukkan tabel standar.
v: menunjukkan tampilan.
m: menunjukkan tampilan materialized.
f: menunjukkan tabel asing.
d: menunjukkan tabel dinamis.
Kueri detail penyimpanan tabel dinamis
Anda dapat menggunakan fungsi hologres.hg_relation_size untuk melihat ukuran penyimpanan dan detail tabel dinamis. Untuk informasi lebih lanjut tentang fungsi hologres.hg_relation_size, lihat Lihat detail penyimpanan tabel.
Kelola tabel status
Saat membuat tabel dinamis dalam mode refresh data inkremental, sistem menghasilkan tabel status di lapisan bawah untuk menyimpan hasil agregasi data. Tabel status membantu mempercepat komputasi data. Secara default, tabel status disimpan dalam kelompok tabel default dan tidak mendukung resharding. Untuk informasi lebih lanjut, lihat Tabel dinamis. Jika Anda mengubah mode refresh dari refresh data inkremental menjadi refresh data penuh, tabel status secara default akan dihapus.
Kueri ukuran penyimpanan tabel status
Anda dapat mengeksekusi pernyataan berikut untuk mengkueri ukuran penyimpanan tabel status. Aturan penagihan penyimpanan untuk tabel status sama dengan aturan untuk tabel standar. Untuk informasi lebih lanjut, lihat Ikhtisar Penagihan.
SELECT pg_size_pretty(hologres.hg_dynamic_table_state_size('<dynamic_table_name>'));