Tüm Ürünler
Search
Belge Merkezi

Hologres:Set up storage tiering

Son Güncelleme:Oct 06, 2026

Hologres V1.3.37 ve sonraki sürümler, sıcak ve soğuk veriler için katmanlı depolamayı destekler. Bu sayede veri katmanlarını etkili bir şekilde yönetebilirsiniz. Bu konuda katmanlı depolamanın nasıl kullanılacağı açıklanmaktadır.

Giriş

Hologres iki depolama türü sunar: Standard ve Infrequent Access.

  • Standard depolama, tamamen SSD tabanlı sıcak depolama kullanır. Hologres'teki varsayılan depolama türüdür ve düşük gecikme süresi ile yüksek performanslı veri erişimi gereksinimlerini karşılar. Çoğu senaryo için Standard depolama en etkili ve maliyet açısından verimli seçenektir. Bu belgede bu tür sıcak depolama olarak adlandırılır.

  • Infrequent Access depolama, tamamen HDD tabanlı soğuk depolama kullanır. Nadiren erişilen veriler için düşük maliyetli depolama ihtiyaçlarını karşılar ve gecikme süresine duyarlı olmayan veya nadiren erişilen çok büyük veri kümeleri için uygundur. Bu belgede bu tür soğuk depolama olarak adlandırılır.

  • Birincil/ikincil örnekler için soğuk depolamayı etkinleştirmek üzere Hologres V1.3.55 veya sonraki bir sürüme yükseltin.

Hologres ayrıca tablo düzeyinde katmanlı depolamayı destekler. Bölüm alt tabloları için depolama ortamını dinamik olarak ayarlamak üzere CREATE PARTITION TABLE özelliğini kullanabilirsiniz.

Hologres V2.1'den itibaren, soğuk depolama erişim hızını artırmak için SSD tabanlı önbellek hızlandırma desteklenir. Şu anda yalnızca varsayılan olarak ayrılan önbellek alanı desteklenmektedir. Önbellek hızlandırma varsayılan olarak etkindir ve erişim performansını iki kattan fazla artırır.

Ön koşullar

  • Yalnızca Hologres V1.3.37 ve sonraki sürümler sıcak ve soğuk depolama katmanlarını destekler. Örneğiniz daha eski bir sürüm çalıştırıyorsa, hata bildiriminde bulunmak için Common upgrade preparation failure errors kılavuzunu kullanın veya Hologres DingTalk grubuna katılın. Daha fazla bilgi için bkz. How do I get more online support?.

  • Abonelik örneklerinde, daha eski sürümlerden Hologres V1.3.37'ye yükseltme yapıldığında Infrequent Access depolama kotası varsayılan olarak 0 GB olur.

Notlar

  • Hologres tablo depolaması Data ve Meta bileşenlerinden oluşur. Data kullanıcı verilerinizi saklarken Meta tablo meta verilerini saklar. Katmanlı depolamada yalnızca Data kısmının depolama ortamını ayarlayabilirsiniz. Performans nedenleriyle Meta her zaman sıcak depolamada tutulur. Bu nedenle, bir tablonun depolama ilkesini soğuk depolama olarak ayarlasanız bile küçük miktarda sıcak depolama tüketir ve cüzi bir sıcak depolama ücreti yansıtılır.

  • Hizmetlerinizi etkilememek için sıcaktan soğuğa veri geçiş görevleri düşük öncelikle çalışır. Bir tablonun Data depolama ilkesini değiştirdikten sonra değişiklik hemen etkili olmaz. Hologres arka planda eşzamansız olarak veri geçişi yapar. Varsayılan olarak geçiş gece yarısı başlar. Hologres V2.2'den itibaren geçiş zamanını özelleştirebilirsiniz. Daha fazla bilgi için bkz. Dynamic partition management.

  • Soğuk depolama tablosuna yeni veri yazıldığında veriler önce sıcak depolamaya yazılır. Arka plan görevi verileri eşzamansız olarak soğuk depolamaya geçirir; bu durum belirli bir sıcak depolama ücretine neden olur.

  • Disk arama süresi sınırlamaları nedeniyle Flink boyut tabloları veya sunum senaryoları gibi nokta sorgusu senaryolarında soğuk depolama tablolarını kullanmayın. Soğuk depolama tabloları, sıcak depolama tablolarına kıyasla iki büyüklük derecesi daha düşük okuma aktarım hızını destekler.

  • Satır yönelimli tabloları soğuk depolama kullanacak şekilde ayarlamayın.

  • Toplu sıcak-soğuk veri dönüştürme işlemi sırasında tüm tablo tabletleri açılır ve bu da bellek kullanımını artırır. Aynı anda en fazla 200 tablo dönüştürün.

Katmanlı depolama tabloları oluşturun

Tablo oluştururken SET_TABLE_PROPERTY içindeki storage_mode parametresini ayarlayarak veri depolama ilkesini belirtin. Daha fazla bilgi için bkz. CREATE TABLE.

Bölümlenmemiş tablolar

Bölümlenmemiş tablolar için depolama ilkesi ayarlama

Bölümlenmemiş tablolar için depolama ilkesini ayarlamak üzere SET_TABLE_PROPERTY kullanın. Desteklenen seçenekler şunlardır:

  • hot (sıcak depolama).

  • cold (soğuk depolama).

Örneğin, tbl1 tablosunu soğuk depolama kullanacak şekilde ayarlamak için aşağıdaki kodu çalıştırın:

-- Specify cold storage when creating the table
BEGIN;
CREATE TABLE tbl1 (
 "id" INT NOT NULL,
 "name" TEXT NOT NULL
);
CALL set_table_property('tbl1', 'storage_mode', 'cold');
COMMIT;

Bölümlenmemiş tablolar için depolama ortamını değiştirme

Hologres tablo oluşturulduktan sonra depolama ortamının değiştirilmesini destekler. Örneğin, tbl1 tablosunu sıcak depolamaya değiştirmek istediğinizde sistem verileri eşzamansız olarak sıcak depolamaya geçirir. Örnek:

-- Change storage medium to hot storage after table creation
CALL set_table_property('tbl1', 'storage_mode', 'hot');

Bölümlenmiş tablolar

Bölümlenmiş tablolar için depolama ilkesi ayarlama

Bölümlenmiş tablolar da depolama ilkelerini ayarlamak için SET_TABLE_PROPERTY kullanır. Alt bölümler varsayılan olarak üst tablonun depolama özelliğini devralır ancak ayrı ayrı da ayarlanabilir. Desteklenen seçenekler şunlardır:

  • hot (sıcak depolama).

  • cold (soğuk depolama).

Örneğin, üst bölüm tablosunu (tbl2) soğuk depolama olarak ayarlamak onun tüm alt bölümlerinin (örneğin tbl2_v1) soğuk depolama kullanmasına neden olur. Kod:

-- Specify cold storage when creating the table
BEGIN;
CREATE TABLE tbl2(
  c1 TEXT NOT NULL,
  c2 TEXT
)
PARTITION BY LIST(c2);
CALL set_table_property('tbl2', 'storage_mode', 'cold');
CREATE TABLE tbl2_v1 PARTITION OF tbl2 FOR VALUES IN ('v1');
COMMIT;

Bölümlenmiş tablolar için depolamayı değiştirme

Hologres tablo oluşturulduktan sonra depolama ortamının değiştirilmesini destekler. Örneğin, üst bölüm tablosu tbl2'yi sıcak depolamaya değiştirmek onun tüm alt bölümlerinin eşzamansız olarak sıcak depolamaya geçirilmesine neden olur. Örnek:

-- Change storage policy to hot storage after table creation
CALL set_table_property('tbl2', 'storage_mode', 'hot');

Belirli bir alt bölümü soğuk depolama olarak ayarlamak için o bölümün storage_mode özelliğini değiştirin. Sistem o bölümü derhal soğuk depolamaya geçirmeye başlar. Örnek:

-- Create multiple child partitions

CREATE TABLE tbl2_v2 PARTITION OF tbl2 FOR VALUES IN ('v2');
CREATE TABLE tbl2_v3 PARTITION OF tbl2 FOR VALUES IN ('v3');

-- Query table properties; they currently inherit the parent's hot storage setting

SELECT * FROM hg_table_storage_status('public', 'tbl2');

-- Change a child partition to cold storage

CALL set_table_property('tbl2_v3', 'storage_mode', 'cold');
                

Bölümlenmiş tablolar için depolama ortamını dinamik olarak yönetin

Bölüm depolama ortamlarını akıllıca yönetmek için sıcaktan soğuğa veri dönüşüm kurallarını tanımlamak üzere dinamik bölümlemeyi kullanın. Bu yaklaşım maliyet ve performansı etkili bir şekilde dengeleyen akıllı katmanlı depolamayı sağlar. Dinamik bölüm yönetimi hakkında daha fazla bilgi için bkz. Dynamic partition management.

Depolama ortamı durumunu sorgulama

Tablo depolama durumunu kontrol etmek için hg_table_storage_status işlevini çağırın. hg_table_storage_status yalnızca veri depolama boyutunu gösterir, Meta depolama boyutunu içermez. Kullanım şekli:

SELECT * FROM hg_table_storage_status('<schema_name>', '<table_name>');


Parametre


Açıklama


schema_name


Tablonun şema adı


table_name


Tablo adı

Aşağıdaki sonuç döndürülür:

Sütun Adı

İçerik

table_name

  • Bölümlenmemiş tablo: tablo adı

  • Üst bölüm tablosu: alt bölüm adı. Her alt bölüm için bir satır döndürür

  • Alt bölüm tablosu: alt bölüm adı

hot_size

Bayt cinsinden sıcak depolama boyutu

cold_size

Bayt cinsinden soğuk depolama boyutu

status

Durum:

  • hot: veriler sıcak depolamadadır

  • cold: veriler soğuk depolamadadır

  • transferring: veriler geçirilmektedir

Örnekler:

-- Non-partitioned table
SELECT * FROM hg_table_storage_status('public', 'tbl1');-- returns size in bytes
 table_name | hot_size |   cold_size   | status
------------+----------+---------------+--------
 tbl1       |  145643  |      3685     | transferring

-- Parent partition table
SELECT * FROM hg_table_storage_status('public', 'tbl2');-- returns size in bytes
   table_name    | hot_size | cold_size | status
-----------------+----------+-----------+--------
 tbl2_2022062222 |        0 |         0 | hot
 tbl2_2022062221 |     1125 |         0 | hot
 tbl2_2022062220 |     1245 |         0 | hot
 tbl2_2022062219 |     1358 |         0 | hot
 tbl2_2022062218 |        0 |      1875 | cold
 tbl2_2022062217 |        0 |      1143 | cold
 tbl2_2022062216 |        0 |      1299 | cold

Tablo erişim sıklığını sorgulama

Hologres V1.3.37'den itibaren günlük sistemi tablosu hologres.hg_table_info bir örnek içindeki tablolar için günlük istatistikler toplar. Hedefe yönelik optimizasyon için tablo bilgilerini görüntülemek ve analiz etmek üzere bu verileri kullanın. Daha fazla bilgi için bkz. View and analyze table statistics. Sıcak/soğuk depolama hacmini, tablo erişim sıklığını ve bölüm erişim sıklığını elde etmek ve sıcaktan soğuğa veri dönüşümü yapılıp yapılmayacağına karar vermek için bu tabloyu sorgulayın. Örnek sorgular:

Bölümlenmemiş tablolar

SELECT a.table_name,
       (a.total_read_count - b.total_read_count) AS read_count,
       (a.total_write_count - b.total_write_count) AS write_count,
       a.hot_storage_size
FROM (SELECT * FROM hologres.hg_table_info
      WHERE type='TABLE' AND collect_time::DATE = CURRENT_DATE - interval '1 day') a
JOIN
    (SELECT * FROM hologres.hg_table_info
    WHERE type='TABLE' AND collect_time::DATE = CURRENT_DATE - interval '${days} day') b
ON a.table_name = b.table_name
ORDER BY hot_storage_size DESC;

Bölümlenmiş tablolar

Tüm bölümleri sorgulayın:

SELECT parent_table_name,COUNT(*) AS partition_cnt, 
       sum(hot_storage_size)/1024/1024/1024 AS hot_size_gb 
FROM hologres.hg_table_info
WHERE type = 'PARTITION' AND collect_time::DATE = CURRENT_DATE - interval '1 day'
GROUP BY parent_table_name
ORDER BY hot_size_gb DESC;