Tüm Ürünler
Search
Belge Merkezi

AnalyticDB:Table Storage Format Definitions

Son Güncelleme:Oct 05, 2026

AnalyticDB for PostgreSQL; satır yönelimli, sütun yönelimli ve karma satır-sütun olmak üzere üç depolama modelini destekler. Bir tablo oluştururken doğru modeli seçin.

Depolama modeli seçin

Seçtiğiniz model yazma aktarım hızını, sorgu performansını ve sıkıştırma oranını etkiler. Karar vermek için aşağıdaki ölçütleri kullanın.


Ölçüt


Satır yönelimli


Sütun yönelimli


Karma satır-sütun


Yazma deseni


Sık güncellemeler, gerçek zamanlı INSERT


Toplu iş yükleme (COPY, INSERT INTO SELECT)


Karma: Hem gerçek zamanlı yazma hem de toplu iş yüklemeleri


Sorgu deseni


Nokta sorguları, tam satır erişimi


Birkaç sütunda toplama işlemleri, örn. SELECT SUM(amount) ... WHERE region = 'us'


Her ikisi


Sıkıştırma


Standart


Satır yönelimliye göre 3–5 kat daha yüksek


Yazma yöntemine göre otomatik


Sürüm gereksinimi


Tüm sürümler


Tüm sürümler


Yalnızca V7.0


Data Transmission Service (DTS) uyumluluğu


Gerekli (hedef tablolar satır yönelimli olmalıdır)


Desteklenmez


Desteklenmez

Not

Karma satır-sütun depolama yalnızca AnalyticDB for PostgreSQL V7.0'da kullanılabilir.

Depolama modelini belirtin

Depolama modelini ayarlamak ve sıkıştırmayı yapılandırmak için CREATE TABLE içindeki WITH yan tümcesini kullanın. Aşağıdaki parametreler desteklenir.


Parametre


Açıklama


Varsayılan


Geçerli değerler


orientation


Depolama modeli. Karma satır-sütun depolama burada ayarlanamaz; bunun yerine USING beam kullanın.


row


row, column


appendonly


Ekleme optimize edilmiş depolamayı etkinleştirir. Sütun yönelimli tablolar için gereklidir.


false


true, false


compresstype


Sıkıştırma algoritması.


V4.3 ve V6.0: none; V7.0: auto


Bkz. Veri sıkıştırma


compresslevel


Sıkıştırma düzeyi. Daha yüksek değerler daha düşük hızda daha iyi sıkıştırma sağlar.


1


1–9 (tamsayı)

Satır yönelimli tablolar

AnalyticDB for PostgreSQL varsayılan olarak PostgreSQL yığın depolama modelini kullanarak satır yönelimli tablolar oluşturur. Satır yönelimli tablolar şu durumlar için optimize edilmiştir:

  • INSERT yoluyla gerçek zamanlı yazma işlemleri

  • Sık UPDATE ve DELETE işlemleri

  • B-tree dizini kullanan nokta sorguları

Yığın tablosu (varsayılan)

CREATE TABLE foo (a int, b text) DISTRIBUTED BY (a);

Ekleme optimize edilmiş satır yönelimli (AORO) tablo

CREATE TABLE bar (a int, b text)
WITH (appendonly=true, orientation=row)
DISTRIBUTED BY (a);
Not

Data Transmission Service (DTS) kullanarak AnalyticDB for PostgreSQL'e veri yazarken hedef tablolar satır yönelimli olmalıdır. DTS, INSERT, UPDATE ve DELETE işlemleri için neredeyse gerçek zamanlı eşitlemeyi destekler.

Sütun yönelimli tablolar

Sütun yönelimli tablolar verileri sütun bazında depolar ve yalnızca bir sorguda başvurulan sütunları okur. Bu durum, onları veri ambarı iş yükleri için özellikle uygun hale getirir; örneğin az sayıda sütunu toplayan sorgular:

SELECT SUM(revenue), AVG(cost) FROM orders WHERE region = 'us';

Sütun yönelimli tablolar, satır yönelimli tablolara kıyasla 3–5 kat daha yüksek bir sıkıştırma oranı sağlar. Sık satır düzeyinde ekleme veya güncelleme işlemleri için daha az verimlidirler; en iyi performansı elde etmek için COPY gibi toplu iş yükleme yöntemlerini kullanın.

Sütun yönelimli tablolar ekleme optimize edilmiş olmalıdır. Oluştururken appendonly=true ayarlayın.

CREATE TABLE bar (a int, b text)
WITH (appendonly=true, orientation=column)
DISTRIBUTED BY (a);

Karma satır-sütun depolama tabloları

Önemli

Karma satır-sütun depolama yalnızca AnalyticDB for PostgreSQL V7.0 örneklerinde desteklenir.

Karma satır-sütun depolama modeli, iki dahili depolama katmanını birleştiren Beam depolama motorunu kullanır:

  • Delta depolama (satır yönelimli): INSERT INTO ... VALUES aracılığıyla gerçek zamanlı akış yazma işlemlerini yönetir. Satır yönelimli tablolarla karşılaştırılabilir yazma performansı sunar.

  • Temel depolama (PAX tabanlı, sütun yönelimli): COPY veya INSERT INTO ... SELECT aracılığıyla toplu iş yazma işlemlerini yönetir. Toplu veriler için daha yüksek aktarım hızı sağlar.

Beam, gelen verileri yazma yöntemine göre uygun katmana otomatik olarak yönlendirir.

Bölümlenmemiş tablolar

Beam depolama motoruyla bir tablo oluşturun

CREATE TABLE testtable (a int) USING beam;

Mevcut bir tabloyu beam depolama motorunu kullanacak şekilde değiştirin

ALTER TABLE testtable SET ACCESS METHOD beam;

Bölümlenmiş tablolar

Aşağıdaki örneklerde, yığın depolama kullanılarak oluşturulan temel bir bölümlenmiş tablo kullanılmıştır:

CREATE TABLE am_partitioned(x INT, y INT)
PARTITION BY HASH (x) USING heap;

Bir bölüm oluştururken depolama modelini belirtin

Ekleme optimize edilmiş sütun yönelimli (AOCO) depolama ile bir bölüm oluşturun:

CREATE TABLE am_partitioned_1 PARTITION OF am_partitioned
FOR VALUES WITH (MODULUS 3, REMAINDER 0) USING ao_column;

Karma satır-sütun (beam) depolama ile bir bölüm oluşturun:

CREATE TABLE amm_partitioned_2 PARTITION OF amm_partitioned
FOR VALUES WITH (MODULUS 3, REMAINDER 1) USING beam;

Mevcut bir bölümün depolama modelini değiştirin

ALTER TABLE am_partitioned_1 SET ACCESS METHOD ao_row;

Veri sıkıştırma

Sıkıştırma, sütun yönelimli tablolar ve ekleme optimize edilmiş satır yönelimli (AORO) tablolar (appendonly=true) için kullanılabilir. İki düzeyde sıkıştırma desteklenir:

  • Tablo düzeyinde sıkıştırma: Tek bir algoritmayı tüm tabloya uygular

  • Sütun düzeyinde sıkıştırma: Her sütuna benzersiz bir sıkıştırma algoritması uygular

Sürüme göre desteklenen algoritmalar


Algoritma


V4.3


V6.0


V7.0


Notlar


zstd


Hayır


Evet


Evet


zlib


Evet


Evet


Hayır


lz4


Hayır


Evet


Evet


rle_type


Evet


Evet


Hayır


Yalnızca sütun yönelimli tablolar


none


Evet


Evet


Evet


Sıkıştırma yok


auto


Evet


Evet


Evet


V7.0 için varsayılan; veri niteliklerine göre algoritma seçer

Not

QuickLZ algoritmasını belirtirseniz bu otomatik olarak zlib ile değiştirilir. rle_type algoritması yalnızca sütun yönelimli tablolar için geçerlidir.

Örnekler

Varsayılan sıkıştırma ayarlarıyla bir sütun yönelimli tablo oluşturun:

CREATE TABLE am_testtable(x INT, y INT)
WITH (orientation=column);

5. düzeyde zlib sıkıştırma ile bir sütun yönelimli tablo oluşturun:

CREATE TABLE foo (a int, b text)
WITH (appendonly=true, orientation=column, compresstype=zlib, compresslevel=5);

9. düzeyde zstd sıkıştırma ile bir sütun yönelimli tablo oluşturun:

CREATE TABLE foo (a int, b text)
WITH (appendonly=true, orientation=column, compresstype=zstd, compresslevel=9);