The storage engine of AnalyticDB for PostgreSQL is developed based on PostgreSQL, and delivers high scalability, high availability, and strong transaction processing capabilities. The storage engine also provides the following features:
- Hybrid storage: The storage engine supports hybrid row-column storage. Row stores are suitable for scenarios where you need to add, remove, modify, and perform point queries on frequently accessed data. Column stores are suitable for scenarios in which complex affinity propagation (AP) analysis is required.
- Rich index types: The storage engine supports B-tree indexes for equivalence and range queries, block range indexes (BRIN) for rough set filtering in combination with sorting, and generalized inverted indexes (GIN). Indexes improve data retrieval performance for point query and low-selectivity scenarios.
- Data compression: The storage engine supports various compression algorithms such as zlib, zstd, and LZ4. A high compression ratio helps reduce storage costs. High-bandwidth decompression helps improve I/O efficiency.
- OSS external tables: You can use OSS external tables to store data in Object Storage Service (OSS) at low costs. Reads and writes in external tables are performed in the same way as in local tables.
- Data partitioning: You can partition data at multiple levels to reduce I/O. In most cases, data is partitioned by time. You can also partition data by value or range. Data partitioning supports hybrid storage. This allows you to store active data in hot storage and store historical data in cold storage.
- Sorting and rough set filtering: You can specify fields that you want to sort when you create tables. You can combine sorting with min-max rough set filtering to reduce I/O. Sorting helps increase the data compression rate and reduce storage costs.