Running complex reports or analytical queries on an ApsaraDB RDS for PostgreSQL instance can consume significant resources and degrade the performance of your transactional workloads. A DuckDB-based analytical instance gives you a dedicated node that separates analytical processing (AP) from online transactional processing (TP), so you can run heavy queries without affecting the primary instance.
How it works
A DuckDB-based analytical instance is a special type of read-only instance. Data from the primary instance is synchronized in real time through a combination of physical replication and logical subscription, then automatically converted to columnar storage. The instance stores two copies of the data: one in row store format for query compatibility, and one in columnar format optimized for analytical queries.
When you run a query, complex analytical queries are automatically routed to the columnar engine. If the columnar engine cannot process a query, the instance falls back to the row store engine to maintain compatibility. You can also compress the row store copy to control storage costs.
Use cases
Offload reporting queries: Run dashboards, scheduled reports, and ad hoc OLAP queries on the analytical instance without affecting the transactional performance of the primary instance.
Zero-ETL analytics pipeline: Eliminate ETL pipelines for analytical workloads. Data is synchronized in real time with automatic columnar conversion—no manual transformation required.
Cost-controlled columnar acceleration: The primary instance already supports columnar acceleration through the rds_duckdb extension. Use a dedicated analytical instance for complete workload isolation when your analytical workloads grow beyond what the primary instance can handle.
Key features
| Feature | Description |
|---|---|
| Read/write splitting and workload isolation | The instance runs as a separate node, completely isolating resource-intensive analytical queries from transactional operations on the primary instance. |
| Zero-ETL real-time columnar conversion | Data is synchronized in real time using physical replication and logical subscription, and automatically converted to columnar storage. Synchronization policies are configurable per database. |
| Hybrid row and columnar storage | The instance maintains both a row store copy (for compatibility) and a columnar copy (for analytics). Columnar acceleration is enabled by default, with automatic fallback to the row store engine for unsupported queries. |
Billing
A DuckDB-based analytical instance is billed the same way as a read-only instance. The cost depends on the edition, instance type, storage type, and storage capacity. The exact cost is shown on the purchase page.
Prerequisites
The primary ApsaraDB RDS for PostgreSQL instance must meet all of the following requirements before you create a DuckDB-based analytical instance.
Before you begin, make sure that:
Instance status is Running
Major engine version is ApsaraDB RDS for PostgreSQL 17.0
Edition is High-availability Edition
Billing method is Subscription or pay-as-you-go
Minor engine version is 20250830 or later
The instance is not a disaster recovery instance
The following instance parameters are set correctly:
Parameter Required value wal_levellogicalshared_preload_librariesMust include rds_duckdbhot_standby_feedbackonmax_replication_slots1024or greatermax_worker_processes1024or greatermax_wal_senders1024or greater
If any of these parameters are not set correctly, the pre-check during instance creation will fail. Use the One-click Fix option to let the system configure them automatically.
Create a DuckDB-based analytical instance
Log in to the ApsaraDB RDS console. In the top navigation bar, select a region. Then click the ID of the target instance.
On the Basic Information page, in the Instance Distribution area, click Add to the right of DuckDB-based analytical instance.

A pre-check runs automatically. After the pre-check passes, click Confirm and Activate. If the pre-check fails, click One-click Fix and select a time for the fix. The system automatically configures the dependencies that failed the pre-check. After the fix is applied, click Add again, then click Confirm and Activate.
ImportantIf the major engine version does not meet the requirements, you must manually upgrade the major engine version before proceeding.
Configure the instance parameters.
Parameter Description Billing method Subscription: One-time payment, suitable for long-term use. Pay-as-you-go: Hourly billing, suitable for short-term use. Start with pay-as-you-go and convert to subscription after confirming the instance meets your requirements. Edition Basic Edition: Single-node, cost-effective. Suitable for learning or testing. Fault recovery takes longer. High-availability Edition (default): Primary and secondary nodes for high availability. Suitable for production environments and covers more than 80% of user scenarios. If you select High-availability Edition, also set the primary node zone, deployment type (multi-zone or single-zone), and secondary node zone. Product type Only Standard Edition is supported. For details, see Product types. Zone A zone is an independent physical area within a region. Multi-zone deployment provides zone-level disaster recovery. Instance type Only Dedicated instance types are supported. The available types are the same as ApsaraDB RDS for PostgreSQL read-only instance types. Storage capacity Includes data space, system file space, write-ahead log (WAL) file space, and transaction file space. The minimum adjustment increment is 5 GB. Storage capacity cannot be smaller than the primary instance's storage. See ApsaraDB RDS for PostgreSQL read-only instance types for the storage space of each instance type. Click Next: Instance Configurations and set the following parameters.
Parameter Description Network type Defaults to the same VPC and vSwitch of Primary Node as the primary instance. Release protection Available for pay-as-you-go instances only. Enable this to prevent accidental release. For details, see Enable or disable release protection. Resource group Defaults to the same resource group as the primary instance and cannot be changed. Time zone Defaults to the same time zone as the primary instance. SLR authorization No action required. Authorization was granted when you purchased the primary instance. Instance name Set a name to identify the instance. Click Next: Confirm Order.
Review the Parameter Configurations. Select the Quantity and Subscription Duration (for subscription instances only). Click Confirm Order and complete the payment.
Configure columnar databases
Before running analytical queries, specify which databases on the primary instance to convert to columnar storage.
Prerequisites
Before you begin, make sure that:
A DuckDB-based analytical instance has been created and is in the Running state
A privileged account has been created
The target database contains at least one table
Enable columnar storage for databases
Log in to the ApsaraDB RDS console. In the left navigation pane, click Instances. In the top navigation bar, select a region.
In the instance list, find the primary instance (indicated by the
icon) and expand its drop-down list.Click the ID of the DuckDB-based analytical instance.

In the left navigation pane, click Database Management.
On the Database Management page, select the databases to enable for automatic columnar conversion, then click Batch Configure Columnar Storage.
In the dialog box, click OK.
Usage notes
After creating a DuckDB-based analytical instance, do not modify the related parameters of the primary instance.
If you create multiple DuckDB-based analytical instances for the same primary instance, the columnar storage configuration (such as which databases are enabled for automatic row-to-column conversion) applies to all of them.
If the primary instance has columnar acceleration already enabled through the rds_duckdb extension, disable it on the primary instance after creating the DuckDB-based analytical instance. This ensures complete workload isolation between the primary and analytical instances.
The analytical instance keeps a row store copy of the data for query compatibility. Compress this copy to reduce storage costs.