全部产品
Search
文档中心

Hologres:Memperbarui format penyimpanan data tabel berorientasi kolom yang ada

更新时间:Jul 02, 2025

Untuk instance Hologres versi V0.10 atau lebih baru, format penyimpanan data tabel berorientasi kolom diperbarui menjadi AliORC. AliORC memberikan performa yang lebih baik dalam hal volume data yang disimpan sehingga dapat mengurangi biaya penyimpanan. Topik ini menjelaskan cara memperbarui format penyimpanan data tabel berorientasi kolom yang ada di Hologres.

Batasan

Perhatikan batasan berikut saat Anda memperbarui format penyimpanan data:

  • Fitur ini hanya didukung di Hologres V0.10 dan versi lebih baru. Anda dapat melihat versi instance Hologres Anda di halaman detail instance pada konsol Hologres. Jika versi instance Hologres Anda lebih lama dari V0.10, tingkatkan instance Hologres Anda secara manual di konsol Hologres atau bergabunglah dengan grup DingTalk Hologres untuk mengajukan peningkatan instance. Untuk informasi lebih lanjut tentang cara menaikkan versi instance Hologres secara manual, lihat Tingkatkan instance. Untuk informasi lebih lanjut tentang cara bergabung dengan grup DingTalk Hologres, lihat Dapatkan dukungan online untuk Hologres.

  • Format penyimpanan data tabel berorientasi kolom yang ada adalah segment, sedangkan format penyimpanan data tabel berorientasi baris adalah sst. Untuk tabel berorientasi kolom yang baru dibuat di instance Hologres versi V0.10 atau lebih baru, format penyimpanan data diperbarui menjadi AliORC. Nilai bidang orc menunjukkan format AliORC. Hologres V0.10 dan versi lebih baru memungkinkan Anda memperbarui format penyimpanan data tabel berorientasi kolom yang ada, tetapi batasan berikut diberlakukan:

    • Di Hologres V0.10 dan versi lebih baru, Anda hanya dapat memperbarui format penyimpanan data satu tabel berorientasi kolom pada satu waktu. Operasi batch tidak didukung.

    • Jika tabel berorientasi kolom adalah tabel terpartisi dan Anda ingin memperbarui format penyimpanan data tabel tersebut, Anda hanya perlu memperbarui format penyimpanan data tabel induk yang relevan.

    • Setelah Anda melakukan operasi pembaruan, data tabel berorientasi kolom dalam format penyimpanan sebelumnya secara asinkron beralih ke tabel dalam format penyimpanan yang diperbarui menggunakan thread latar belakang. Such asynchronous switchover performed at the backend consumes system resources, such as CPU, I/O, and network resources. During the switchover, the performance of online tasks may be affected. Selain itu, waktu yang diperlukan untuk pergantian bervariasi berdasarkan ukuran data yang ada dan ukuran data yang ditulis secara real-time. Oleh karena itu, we recommend that you update the data storage format during off-peak hours.

  • Anda tidak dapat mengonversi tabel berorientasi kolom menjadi tabel berorientasi baris dengan memperbarui format penyimpanan data tabel asli. Jika Anda ingin menggunakan tabel berorientasi baris, Anda harus membuat tabel dengan skema yang diperlukan.

Kueri format penyimpanan data

Anda dapat mengeksekusi pernyataan SQL berikut untuk menanyakan format penyimpanan data setiap tabel di database yang ditentukan.

  • Pernyataan contoh

    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 nilai bidang

    Nilai bidang

    Deskripsi

    segment

    Format penyimpanan data default tabel berorientasi kolom di instance Hologres versi lebih lama dari V0.10.

    sst

    Format penyimpanan data default tabel berorientasi baris.

    orc

    Format penyimpanan data default tabel berorientasi kolom di instance Hologres versi V0.10 dan lebih baru. Jika nilai bidang property_value adalah orc, format penyimpanan data tabel adalah AliORC.

Memperbarui format penyimpanan data

Setelah Anda meningkatkan instance Hologres Anda ke V0.10, tabel berorientasi kolom baru yang dibuat di instance tersebut mengadopsi format AliORC secara default. Namun, Anda harus mengeksekusi pernyataan berikut untuk memperbarui format penyimpanan data tabel berorientasi kolom yang ada:

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

Ganti parameter table_name dengan nama tabel. Sebagai contoh, Anda dapat menentukan tabel bernama part. Setelah Anda mengeksekusi pernyataan berikut, format penyimpanan data tabel part diperbarui menjadi AliORC.

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

Mengonversi format segment tabel berorientasi kolom ke format AliORC secara batch

Hologres V1.3 dan versi lebih baru tidak mengizinkan Anda menetapkan format penyimpanan tabel berorientasi kolom sebagai segment saat Anda membuat tabel. Kami menyarankan Anda mengonversi format penyimpanan ke AliORC sesegera mungkin. Konversi format tabel berorientasi kolom melibatkan skenario berikut:

  • Tabel berorientasi kolom yang baru dibuat

    Di Hologres V1.3.29 dan versi lebih baru, jika format tabel berorientasi kolom yang baru dibuat ditentukan sebagai segment, Hologres secara otomatis mengonversi format segment tabel tersebut ke format AliORC. Oleh karena itu, ketika Anda mengeksekusi pernyataan untuk membuat tabel dalam format segment, pesan berikut akan dikembalikan:

    NOTICE:storage format 'segment' is no longer supported,converted to 'orc'
  • Tabel berorientasi kolom yang ada dalam format segment

    Untuk tabel berorientasi kolom yang ada dalam format segment, Anda dapat melakukan langkah-langkah berikut untuk mengonversi format segment tabel tersebut ke format AliORC secara batch:

    1. Kueri tabel berorientasi kolom yang ada dalam format segment di database saat ini.

      Catatan

      Jika hasil kueri kosong, tabel berorientasi kolom di database saat ini tidak memerlukan konversi format, atau tabel berorientasi kolom yang memerlukan konversi format sedang diproses di backend.

      select * from hologres.hg_table_properties
      where property_key = 'storage_format' and property_value like '%segment%';
    2. Konversikan format segment tabel berorientasi kolom yang ada ke format AliORC secara batch.

      Di Hologres V1.3.35 dan versi lebih baru, Anda dapat mengeksekusi pernyataan berikut untuk mengonversi format segment tabel yang ada ke format AliORC secara batch:

      call hg_convert_segment_orc([<BATCH_SIZE>]);

      Parameter BATCH_SIZE bersifat opsional. Parameter ini menentukan jumlah tabel yang format penyimpanan datanya dikonversi pada saat yang sama. Nilai parameter ini dapat dibiarkan kosong, dan nilai defaultnya adalah 100.

      Deskripsi pernyataan:

      • Pernyataan call hg_convert_segment_orc dieksekusi secara asinkron. Oleh karena itu, setelah Anda mengeksekusi pernyataan ini, pesan sukses dikembalikan tetapi format sedang dikonversi di backend. Konversi format mengonsumsi sumber daya CPU dan memori serta memengaruhi bisnis online. Oleh karena itu, kami menyarankan Anda melakukan konversi format selama jam-jam sepi. Konversi format membutuhkan beberapa menit hingga beberapa jam untuk selesai. Anda dapat memeriksa metrik penggunaan CPU dan memori di konsol Hologres. Jika nilai metrik tersebut menurun, proses konversi format telah selesai.

      • Jika hasil kueri kosong, tabel di database saat ini tidak memerlukan konversi format, atau tabel yang memerlukan konversi format sedang diproses di backend.

      • Jika pesan serupa dengan pesan continue to call hg_convert_segment_orc() if you want to convert all tables in current database dikembalikan, beberapa tabel memerlukan konversi format. Dalam hal ini, Anda dapat terus mengeksekusi pernyataan untuk mengonversi format segment tabel berorientasi kolom berdasarkan beban kluster hingga hasil kueri kosong.