全部产品
Search
文档中心

Hologres:Mengubah format penyimpanan data tabel berorientasi kolom

更新时间:Feb 04, 2026

Mulai dari Hologres V0.10, format penyimpanan data untuk tabel berorientasi kolom ditingkatkan menjadi AliORC. Format ini meningkatkan kompresi data dan mengurangi biaya penyimpanan. Topik ini menjelaskan cara mengubah format penyimpanan data tabel berorientasi kolom di Hologres.

Batasan

Batasan berikut berlaku saat Anda mengubah format penyimpanan data tabel berorientasi kolom di Hologres:

  • Fitur ini hanya didukung di Hologres V0.10 dan versi yang lebih baru. Periksa versi instans Anda pada halaman detail instans di Konsol Hologres. Jika versi instans Anda lebih lama dari V0.10, Anda harus melakukan upgrade. Jika mengalami error selama proses upgrade, lihat Error umum selama persiapan upgrade atau bergabunglah dengan grup DingTalk Hologres untuk memberikan masukan. Untuk informasi lebih lanjut, lihat Bagaimana cara mendapatkan dukungan online tambahan?.

  • Sebelum upgrade ke V0.10, format penyimpanan default untuk tabel berorientasi kolom adalah segment. Setelah upgrade, tabel berorientasi kolom yang baru secara default menggunakan format AliORC, yang memiliki nilai parameter orc. Tabel berorientasi baris secara default menggunakan format sst. Anda dapat mengonversi data historis dari sebelum upgrade, tetapi batasan berikut berlaku:

    • Anda hanya dapat mengonversi format penyimpanan satu tabel dalam satu waktu. Konversi batch tidak didukung.

    • Untuk tabel partisi, konversikan hanya format penyimpanan data tabel induk.

    • Setelah Anda mengubah format penyimpanan, sebuah thread latar belakang akan mengonversi data ke format baru secara asinkron. This asynchronous background process consumes system resources, seperti CPU, I/O, dan lebar pita jaringan. The conversion may affect the performance of online tasks. Durasi konversi tergantung pada volume data historis dan volume penulisan real-time. Perform this operation during off-peak hours.

  • Anda tidak dapat mengonversi tabel berorientasi kolom menjadi tabel berorientasi baris hanya dengan mengubah format penyimpanan. Untuk melakukannya, buat tabel baru dengan skema tabel yang sesuai.

Lihat format penyimpanan data

Gunakan pernyataan SQL berikut untuk melihat format penyimpanan setiap tabel di database:

  • Contoh sintaks

    SELECT  *
    FROM    hologres.hg_table_properties
    WHERE   property_key = 'storage_format'
    ;
  • Hasil kueri

     table_namespace |     table_name     |  property_key  | property_value 
    -----------------+--------------------+----------------+----------------
     public          | part               | storage_format | segment
     public          | partsupp           | storage_format | segment
     public          | customer           | storage_format | segment
     public          | orders_row         | storage_format | sst
     public          | sp_orders          | storage_format | segment
     public          | sp_orders_20161231 | storage_format | segment
     public          | sp_orders_20171231 | storage_format | segment
     public          | sp_orders_20181231 | storage_format | segment
     public          | lineitem           | storage_format | segment
     public          | nation             | storage_format | orc
     public          | region             | storage_format | orc
     public          | supplier           | storage_format | orc
     public          | orders             | storage_format | orc
    (13 rows)
  • Deskripsi metrik

    Parameter

    Deskripsi

    segment

    Format default untuk tabel berorientasi kolom di versi Hologres sebelumnya.

    sst

    Format default untuk tabel berorientasi baris.

    orc

    Format default untuk tabel berorientasi kolom di Hologres V0.10 dan versi yang lebih baru. Tabel dengan property_value bernilai orc menggunakan format AliORC untuk penyimpanan data.

Perbarui format penyimpanan data tabel

Setelah Anda meng-upgrade instans Hologres ke V0.10, tabel baru secara default menggunakan format AliORC. Anda harus memperbarui kelas penyimpanan untuk tabel yang sudah ada secara manual. Gunakan sintaks perintah berikut:

call set_table_property ('table_name', 'storage_format', 'orc');

Ganti table_name dengan nama tabel Anda. Contoh berikut mengubah kelas penyimpanan tabel part ke format AliORC.

call set_table_property ('public.part', 'storage_format', 'orc');

Konversi batch tabel dari format Segment ke ORC

Hologres V1.3 dan versi yang lebih baru tidak lagi mendukung pembuatan tabel dengan format penyimpanan Segment. Segera konversikan tabel dari Segment ke format ORC. Perubahan ini memengaruhi skenario berikut.

  • Tabel baru

    Mulai dari Hologres V1.3.29, jika Anda mencoba membuat tabel dengan format Segment, sistem secara otomatis mengonversi format tersebut ke ORC. Saat Anda mengeksekusi pernyataan CREATE TABLE, Anda akan menerima notifikasi berikut:

    NOTICE:storage format 'segment' is no longer supported,converted to 'orc'
  • Tabel Segment yang sudah ada

    Untuk tabel yang sudah ada dan menggunakan format Segment, ikuti langkah-langkah berikut untuk melakukan konversi batch ke format ORC.

    1. Lihat tabel yang menggunakan format Segment di database saat ini.

      Catatan

      Jika kueri mengembalikan hasil kosong, berarti tidak ada tabel di database saat ini yang perlu dikonversi, atau konversi untuk semua tabel yang diperlukan sedang berlangsung. Tidak diperlukan tindakan lebih lanjut.

      select * from hologres.hg_table_properties
      where property_key = 'storage_format' and property_value like '%segment%';
    2. Anda dapat melakukan konversi batch dari format Segment ke format ORC.

      Hologres V1.3.35 dan versi yang lebih baru mendukung konversi batch tabel dari format Segment ke format ORC. Sintaks perintahnya adalah sebagai berikut.

      call hg_convert_segment_orc([<BATCH_SIZE>]);

      BATCH_SIZE adalah parameter opsional yang menentukan jumlah tabel yang dikonversi secara konkuren. Jika Anda tidak menentukan parameter ini, nilai default 100 akan digunakan.

      Deskripsi perintah:

      • Perintah ini dijalankan secara asinkron. Perintah langsung mengembalikan pesan sukses meskipun proses konversi format berjalan di latar belakang. Proses konversi mengonsumsi sumber daya CPU dan memori, sehingga menyebabkan metrik terkait meningkat. Hal ini dapat memengaruhi layanan online Anda. Oleh karena itu, jalankan konversi pada jam sepi. Proses ini biasanya memakan waktu beberapa menit hingga beberapa jam. Anda dapat memantau metrik CPU dan memori. Penurunan metrik tersebut menandakan bahwa konversi telah selesai.

      • Jika perintah mengembalikan hasil kosong, berarti tidak ada tabel di database saat ini yang perlu dikonversi, atau konversi untuk semua tabel yang diperlukan sedang berlangsung. Tidak diperlukan tindakan lebih lanjut. Anda dapat melanjutkan ke database berikutnya.

      • Jika perintah mengembalikan pesan seperti continue to call hg_convert_segment_orc() if you want to convert all tables in current database., berarti masih ada tabel yang perlu dikonversi. Lanjutkan menjalankan perintah tersebut sesuai beban kluster Anda hingga perintah mengembalikan hasil kosong.