Todos los productos
Search
Centro de documentos

AnalyticDB:Table Storage Format Definitions

Última actualización: Sep 04, 2026

AnalyticDB for PostgreSQL admite tres modelos de almacenamiento: orientado a filas, orientado a columnas e híbrido fila-columna. Elija el modelo adecuado cuando cree una tabla.

Elegir un modelo de almacenamiento

El modelo que elija afecta el rendimiento de escritura, el rendimiento de las consultas y la tasa de compresión. Utilice los siguientes criterios para decidir.

Criteria

Row-oriented

Column-oriented

Hybrid row-column

Patrón de escritura

Actualizaciones frecuentes, INSERT en tiempo real

Carga por lotes (COPY, INSERT INTO SELECT)

Mixto: escrituras en tiempo real y cargas por lotes

Patrón de consulta

Consultas puntuales, acceso a filas completas

Agregaciones en pocas columnas, por ejemplo, SELECT SUM(amount) ... WHERE region = 'us'

Ambos

Compresión

Estándar

De 3 a 5 veces mayor que el orientado a filas

Automática según el método de escritura

Requisito de versión

Todas las versiones

Todas las versiones

Solo V7.0

Compatibilidad con Data Transmission Service (DTS)

Obligatorio (las tablas de destino deben estar orientadas a filas)

No compatible

No compatible

Nota

El almacenamiento híbrido fila-columna solo está disponible en AnalyticDB for PostgreSQL V7.0.

Especificar el modelo de almacenamiento

Utilice la cláusula WITH en CREATE TABLE para establecer el modelo de almacenamiento y configurar la compresión. Se admiten los siguientes parámetros.

Parameter

Description

Default

Valid values

orientation

Modelo de almacenamiento. El almacenamiento híbrido fila-columna no se puede configurar aquí; use USING beam en su lugar.

row

row, column

appendonly

Habilita el almacenamiento optimizado para anexiones. Obligatorio para tablas orientadas a columnas.

false

true, false

compresstype

Algoritmo de compresión.

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

Consulte Data compression

compresslevel

Nivel de compresión. Los valores más altos logran una mejor compresión a menor velocidad.

1

1–9 (entero)

Tablas orientadas a filas

De forma predeterminada, AnalyticDB for PostgreSQL crea tablas orientadas a filas mediante el modelo de almacenamiento heap de PostgreSQL. Las tablas orientadas a filas están optimizadas para:

  • Escrituras en tiempo real mediante INSERT

  • Operaciones UPDATE y DELETE frecuentes

  • Consultas puntuales con un índice B-tree

Tabla heap (predeterminada)

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

Tabla orientada a filas optimizada para anexiones (AORO)

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

Al utilizar Data Transmission Service (DTS) para escribir datos en AnalyticDB for PostgreSQL, las tablas de destino deben estar orientadas a filas. DTS admite sincronización casi en tiempo real para operaciones INSERT, UPDATE y DELETE.

Tablas orientadas a columnas

Las tablas orientadas a columnas almacenan datos por columna y leen únicamente las columnas a las que se hace referencia en una consulta. Esto las hace ideales para cargas de trabajo de almacén de datos, especialmente para consultas que agregan un número reducido de columnas, como:

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

Las tablas orientadas a columnas ofrecen una tasa de compresión de 3 a 5 veces superior a la de las tablas orientadas a filas. Son menos eficientes para inserciones o actualizaciones frecuentes a nivel de fila; utilice métodos de carga por lotes como COPY para obtener el mejor rendimiento.

Las tablas orientadas a columnas deben estar optimizadas para anexiones. Establezca appendonly=true al crear una.

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

Tablas con almacenamiento híbrido fila-columna

Importante

El almacenamiento híbrido fila-columna solo es compatible con instancias de AnalyticDB for PostgreSQL V7.0.

El modelo de almacenamiento híbrido fila-columna utiliza el motor de almacenamiento Beam, que combina dos capas de almacenamiento internas:

  • Almacenamiento delta (orientado a filas): gestiona escrituras de streaming en tiempo real mediante INSERT INTO ... VALUES. Ofrece un rendimiento de escritura comparable al de las tablas orientadas a filas.

  • Almacenamiento base (basado en PAX, orientado a columnas): gestiona escrituras por lotes mediante COPY o INSERT INTO ... SELECT. Proporciona un mayor rendimiento para datos masivos.

Beam enruta automáticamente los datos entrantes a la capa adecuada según el método de escritura.

Tablas sin particionar

Crear una tabla con el motor de almacenamiento beam

CREATE TABLE testtable (a int) USING beam;

Cambiar una tabla existente para usar el motor de almacenamiento beam

ALTER TABLE testtable SET ACCESS METHOD beam;

Tablas particionadas

Los siguientes ejemplos utilizan una tabla base particionada creada con almacenamiento heap:

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

Especificar el modelo de almacenamiento al crear una partición

Cree una partición con almacenamiento orientado a columnas optimizado para anexiones (AOCO):

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

Cree una partición con almacenamiento híbrido fila-columna (beam):

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

Cambiar el modelo de almacenamiento de una partición existente

ALTER TABLE am_partitioned_1 SET ACCESS METHOD ao_row;

Compresión de datos

La compresión está disponible para tablas orientadas a columnas y tablas orientadas a filas optimizadas para anexiones (AORO) (appendonly=true). Se admiten dos niveles de compresión:

  • Compresión a nivel de tabla: aplica un único algoritmo a toda la tabla

  • Compresión a nivel de columna: aplica un algoritmo de compresión único a cada columna

Algoritmos compatibles por versión

Algorithm

V4.3

V6.0

V7.0

Notes

zstd

No

Sí

Sí

zlib

Sí

Sí

No

lz4

No

Sí

Sí

rle_type

Sí

Sí

No

Solo tablas orientadas a columnas

none

Sí

Sí

Sí

Sin compresión

auto

Sí

Sí

Sí

Predeterminado para V7.0; selecciona el algoritmo según los atributos de los datos

Nota

Si especifica el algoritmo QuickLZ, se reemplaza automáticamente por zlib. El algoritmo rle_type solo se aplica a tablas orientadas a columnas.

Ejemplos

Cree una tabla orientada a columnas con la configuración de compresión predeterminada:

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

Cree una tabla orientada a columnas con compresión zlib en el nivel 5:

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

Cree una tabla orientada a columnas con compresión zstd en el nivel 9:

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