全部产品
Search
文档中心

Hologres:Pemetaan tabel danau data

更新时间:Nov 10, 2025

Hologres V3.2 memperkenalkan pemetaan tabel danau data untuk mempercepat kueri danau data. Fitur ini mencerminkan metadata dan data dengan menyinkronkan perubahan dari sumber data eksternal ke Hologres secara mendekati real-time atau pada interval tertentu. Anda dapat mencerminkan seluruh tabel atau partisi tertentu dari tabel partisi menggunakan parameter untuk mengontrol ruang lingkup data yang dicerminkan.

Detail fitur

Saat mengakses tabel danau data melalui Hologres, sistem secara otomatis memicu tugas sinkronisasi cermin metadata. Tugas ini secara berkala menyinkronkan metadata terbaru dari tabel sumber dan menyimpannya di cache dalam Hologres. Interval default adalah satu menit. Pada akses berikutnya, Hologres secara otomatis menggunakan metadata yang dicerminkan untuk mempercepat akses metadata.

Untuk mencerminkan data dari tabel danau data, Anda harus secara manual mengaktifkan fitur ini menggunakan perintah ALTER EXTERNAL TABLE. Kemampuan yang didukung meliputi:

  • Mendukung pengaktifan pemetaan untuk tabel append-only Paimon dan tabel kunci utama dengan vektor penghapusan.

  • Mendukung pemetaan untuk seluruh tabel partisi dan non-partisi, serta untuk partisi tertentu.

  • Mendukung evolusi skema untuk tabel eksternal. Operasi yang didukung termasuk menambah, menghapus, mengurutkan ulang, dan mengganti nama kolom. Untuk operasi yang tidak didukung, sistem secara otomatis kembali ke membaca tabel eksternal secara langsung.

  • Mendukung penemuan otomatis dan sinkronisasi partisi tabel danau data.

  • Mendukung pengaturan indeks tabel internal umum pada cermin tabel. Ini memungkinkan kueri SQL dengan cepat menemukan data, yang mengurangi konsumsi I/O dan mencapai kinerja kueri yang lebih cepat dengan lebih sedikit sumber daya komputasi. Untuk informasi lebih lanjut, lihat Atur Properti Tabel dan Indeks. Indeks yang didukung meliputi:

    • data_mirroring_clustering_key

    • data_mirroring_bitmap_columns

    • data_mirroring_dictionary_encoding_columns

  • Mendukung kueri data yang dicerminkan menggunakan instans sekunder, kelompok komputasi instans, dan sumber daya Serverless.

  • Mendukung melihat kemajuan sinkronisasi cermin.

  • Mendukung melihat partisi terbaru dari cermin penuh.

  • Mendukung melihat penggunaan penyimpanan cermin pada tingkat instans, DB, dan tabel.

  • Mendukung memodifikasi konfigurasi cermin data untuk tabel tertentu.

  • Mendukung menonaktifkan fitur pemetaan data untuk tabel tertentu.

Keterbatasan

  • Tabel eksternal mendukung pemetaan metadata menggunakan metode External Database, tetapi tidak mendukung metode Foreign Table.

  • Mendukung tabel eksternal dengan metadata yang dikelola oleh Pembentukan Danau Data (DLF).

  • Pencermindakan data dari cabang Paimon saat ini tidak didukung.

Sintaksis

ALTER EXTERNAL TABLE <ext_db.ext_schema.ext_table> 
SET(
   -- Aktifkan pemetaan tabel untuk tabel eksternal
  data_mirroring_speed_up_enable = 'on|off', 
  [data_mirroring_partition_num='1~N|all',] |[data_mirroring_partition_list='pt1,pt2...',] 
  
  -- Tentukan sumber daya yang digunakan untuk proses pembuatan cermin
  [data_mirroring_guc_hg_computing_resource='[serverless | local]',]
  [data_mirroring_guc_hg_experimental_serverless_computing_required_cores='<num>',] 

  -- Atur indeks
  [data_mirroring_clustering_key='[columnName{:asc]} [,...]]',]
  [data_mirroring_dictionary_encoding_columns='[columnName [,...]]',]
  [data_mirroring_bitmap_columns='[columnName [,...]]',]
  );

Parameter

Parameter

Diperlukan

Deskripsi

data_mirroring_speed_up_enable

Ya

Menentukan apakah akan mengaktifkan pemetaan tabel untuk tabel eksternal. Nilai valid:

  • on: Mengaktifkan pemetaan.

  • off: Menonaktifkan pemetaan.

data_mirroring_partition_num

Tidak

Menentukan n partisi terbaru untuk dicerminkan. Parameter ini hanya berlaku untuk tabel partisi. Nilai valid:

  • all: Semua partisi.

  • 1 hingga N: n partisi terbaru.

data_mirroring_partition_list

Tidak

Menentukan daftar partisi untuk dicerminkan. Parameter ini hanya berlaku untuk tabel partisi.

data_mirroring_guc_hg_computing_resource

Tidak

Menentukan sumber daya yang digunakan untuk proses pembuatan cermin. Nilai default adalah Local.

Serverless: Menggunakan sumber daya Serverless untuk pemetaan data.

Local: Menggunakan sumber daya dari instans saat ini.

data_mirroring_guc_hg_experimental_serverless_computing_required_cores

Tidak

Menentukan jumlah core yang diperlukan untuk sumber daya Serverless.

Catatan

Parameter ini hanya diperlukan ketika data_mirroring_guc_hg_computing_resource disetel ke Serverless.

Penggunaan

Prasyarat

  • Anda telah mengaktifkan DLF V2.5 atau yang lebih baru dan membuat katalog Paimon.

  • Anda telah menyelesaikan operasi berikut:

    1. Beli Instans Hologres dan aktifkan layanan percepatan danau data. Untuk informasi lebih lanjut, lihat Percepatan Danau Data OSS.

    2. Buat EXTERNAL DATABASE untuk memetakan metadata tabel danau data ke Hologres. Untuk informasi lebih lanjut, lihat CREATE EXTERNAL DATABASE.

Aktifkan pemetaan tabel untuk tabel eksternal

Tabel non-partisi

ALTER EXTERNAL TABLE <ext_db.ext_schema.ext_table> 
SET(
   -- Aktifkan pemetaan tabel untuk tabel eksternal
  data_mirroring_speed_up_enable = 'on', 
   
  -- Tentukan sumber daya untuk proses pembuatan cermin
  data_mirroring_guc_hg_computing_resource='local'
 
  -- Atur indeks
  data_mirroring_clustering_key='c_int:asc,c_char:desc',
  data_mirroring_dictionary_encoding_columns='c_int:on,c_char:auto',
  data_mirroring_bitmap_columns='c_int:on'
  );

Tabel partisi

  • Tentukan jumlah partisi

    ALTER EXTERNAL TABLE <ext_db.ext_schema.ext_table> 
    SET(
       -- Aktifkan pemetaan tabel untuk tabel eksternal
      data_mirroring_speed_up_enable = 'on', 
      data_mirroring_partition_num='7', 
      
      -- Tentukan sumber daya untuk proses pembuatan cermin
      data_mirroring_guc_hg_computing_resource='serverless'
      data_mirroring_guc_hg_experimental_serverless_computing_required_cores='16', 
    
      -- Atur indeks
      data_mirroring_clustering_key='c_int:asc,c_char:desc',
      data_mirroring_dictionary_encoding_columns='c_int:on,c_char:auto',
      data_mirroring_bitmap_columns='c_int:on'
      );
  • Tentukan semua partisi

    ALTER EXTERNAL TABLE <ext_db.ext_schema.ext_table> 
    SET(
       -- Aktifkan pemetaan tabel untuk tabel eksternal
      data_mirroring_speed_up_enable = 'on', 
      data_mirroring_partition_num='all', 
      
      -- Tentukan sumber daya untuk proses pembuatan cermin
      data_mirroring_guc_hg_computing_resource='local',
    
      -- Atur indeks
      data_mirroring_clustering_key='c_int:asc,c_char:desc,
      data_mirroring_dictionary_encoding_columns='c_int:on,c_char:auto',
      data_mirroring_bitmap_columns='c_int:on'
      );
  • Tentukan daftar partisi

    ALTER EXTERNAL TABLE <ext_db.ext_schema.ext_table> 
    SET(
       -- Aktifkan pemetaan tabel untuk tabel eksternal
      data_mirroring_speed_up_enable = 'on', 
      data_mirroring_partition_list='pt1,pt2...', 
      
      -- Tentukan sumber daya untuk proses pembuatan cermin
      data_mirroring_guc_hg_computing_resource='local',
    
      -- Atur indeks
      data_mirroring_clustering_key='c_int:asc,c_char:desc,
      data_mirroring_dictionary_encoding_columns='c_int:on,c_char:auto',
      data_mirroring_bitmap_columns='c_int:on'
      );
  • Tentukan jumlah partisi dan partisi tertentu untuk mempertahankan cermin partisi historis

    ALTER EXTERNAL TABLE <ext_db.ext_schema.ext_table> 
    SET(
       -- Aktifkan pemetaan tabel untuk tabel eksternal
      data_mirroring_speed_up_enable = 'on',
      data_mirroring_partition_num='7', 
      data_mirroring_partition_list='pt1', 
      
      -- Tentukan sumber daya untuk proses pembuatan cermin
      data_mirroring_guc_hg_computing_resource='local',
    
      -- Atur indeks
      data_mirroring_clustering_key='c_int:asc,c_char:desc,
      data_mirroring_dictionary_encoding_columns='c_int:on,c_char:auto',
      data_mirroring_bitmap_columns='c_int:on'
      );

Lihat status pembuatan cermin

Jalankan perintah berikut untuk melihat status pembuatan cermin.

SELECT * FROM hologres.hg_datalake_get_mirror_status();

Tabel berikut menjelaskan bidang dalam output.

Bidang

Deskripsi

external_db_name

Database Eksternal tempat tabel untuk tugas pembuatan cermin berada.

external_schema_name

Skema eksternal tempat tabel untuk tugas pembuatan cermin berada.

external_table_name

Tabel eksternal untuk tugas pembuatan cermin.

partition

Partisi dalam tabel eksternal untuk tugas pembuatan cermin.

mirror_data_size

Ukuran file cermin untuk tabel atau partisi.

mirror_start_time

Waktu mulai tugas pembuatan cermin.

mirror_last_update_time

Waktu pembaruan terakhir data yang dicerminkan.

total_file_count

Total ukuran file

mirrored_file_count

Ukuran file cermin.

Ubah konfigurasi mirror

ALTER EXTERNAL TABLE <ext_db.ext_schema.ext_table> 
SET(
   -- Aktifkan pemetaan tabel untuk tabel eksternal
  data_mirroring_speed_up_enable = 'on', 
  data_mirroring_partition_num='12'
  );

Periksa apakah kueri menggunakan file cermin

explain analyze  SELECT xx FROM <holo_ext_db.ext_schema.ext_table>;

Hasil berikut dikembalikan.

QUERY PLAN
Gather  (cost=0.00..5.80 rows=1000 width=116)
[128:1 id=100002 dop=1 time=26/26/26ms rows=107995(107995/107995/107995) mem=0/0/0B open=0/0/0ms get_next=26/26/26ms * ]
  ->  Local Gather  (cost=0.00..5.01 rows=1000 width=116)
      [id=2 dop=128 time=13/0/0ms rows=107995(97688/843/0) mem=0/0/0B open=0/0/0ms get_next=13/0/0ms local_dop=0/0/0]
        ->  Seq Scan on sls_ads_table  (cost=0.00..5.01 rows=1000 width=116)
              Foreign Table Type: DLF
            [id=1 split_count=128 time=13/0/0ms rows=107995(97688/8999/671) mem=37/5/4KB open=0/0/0ms get_next=13/0/0ms physical_reads=154(140/77/14) scan_rows=107995(97688/8999/671)]

ADVICE: 
"[node id : 1] Table default."sls_ads_table" Miss Stats! please run 'analyze default."sls_ads_table"'. "

Query id:[1002007457093288810]
QE version: 2.0
Query Queue: init_warehouse.default_queue
======================cost======================
Total cost:[150] ms
Fast statistics cost:[0] ms
Optimizer cost:[73] ms
Build execution plan cost:[10] ms
Init execution plan cost:[9] ms
Start query cost:[13] ms
- Queue cost: [0] ms
- Wait schema cost:[0] ms
- Lock query cost:[0] ms
- Create dataset reader cost:[0] ms
- Create split reader cost:[3] ms
Get result cost:[45] ms
- Get the first block cost:[1] ms
====================resource====================
Memory: total 7 MB. Worker stats: max 3 MB, avg 3 MB, min 3 MB, max memory worker id: 1889346452478863373.
CPU time: total 96 ms. Worker stats: max 82 ms, avg 48 ms, min 14 ms, max CPU time worker id: 1889346412692090879.
DAG CPU time stats: max 77 ms, avg 38 ms, min 0 ms, cnt 2, max CPU time dag id: 1.
Fragment CPU time stats: max 66 ms, avg 25 ms, min 0 ms, cnt 3, max CPU time fragment id: 2.
Ec wait time: total 139 ms. Worker stats: max 79 ms, max(max) 2 ms, avg 69 ms, min 60 ms, max ec wait time worker id: 1889346452478863373, max(max) ec wait time worker id: 1889346412692090879.
Physical read bytes: total 1 MB. Worker stats: max 1 MB, avg 0 MB, min 0 MB, max physical read bytes worker id: 1889346412692090879.
Read bytes: total 7 MB. Worker stats: max 7 MB, avg 3 MB, min 0 MB, max read bytes worker id: 1889346412692090879.
DAG instance count: total 3. Worker stats: max 2, avg 1, min 1, max DAG instance count worker id: 1889346452478863373.
Fragment instance count: total 257. Worker stats: max 129, avg 128, min 128, max fragment instance count worker id: 1889346452478863373.
Meta mirror table count: use 1 miss 0.
Data mirror file count: use 12 miss 0.

Hit gambar ditunjukkan oleh dua metrik terakhir dalam hasil yang dikembalikan: gunakan dan hitung.

Nonaktifkan pemetaan tabel untuk tabel eksternal

Setelah Anda menonaktifkan pemetaan, sistem berhenti menyinkronkan data ke Hologres. Kueri pada tabel eksternal langsung mengakses data danau data. File data cermin internal dihapus secara asinkron setelah 30 menit.

ALTER EXTERNAL TABLE <holo_ext_db.ext_schema.ext_table> SET(
  data_mirroring_speed_up_enable = 'off'
  );

Lihat konfigurasi cermin

Jalankan pernyataan SQL berikut untuk melihat tabel mana yang memiliki pemetaan data diaktifkan. SELECT * FROM hologres.hg_datalake_get_mirror_config();

SELECT * FROM hologres.hg_datalake_get_mirror_config();

Lihat kemajuan cermin

Jalankan pernyataan SQL berikut untuk melihat kemajuan proses pemetaan.

SELECT * 
FROM hologres.hg_user_datalake_mirror_cron_tasks 
WHERE command::jsonb->>'external_db_name'='external_database_name'
ORDER BY start_time DESC;

Dalam pernyataan tersebut, external_database_name adalah nama dari External Database.