All Products
Search
Document Center

ApsaraDB RDS:DuckDB-based analytical instance

Last Updated:Mar 28, 2026

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

FeatureDescription
Read/write splitting and workload isolationThe instance runs as a separate node, completely isolating resource-intensive analytical queries from transactional operations on the primary instance.
Zero-ETL real-time columnar conversionData 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 storageThe 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:

    ParameterRequired value
    wal_levellogical
    shared_preload_librariesMust include rds_duckdb
    hot_standby_feedbackon
    max_replication_slots1024 or greater
    max_worker_processes1024 or greater
    max_wal_senders1024 or greater
Note

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

  1. Log in to the ApsaraDB RDS console. In the top navigation bar, select a region. Then click the ID of the target instance.

  2. On the Basic Information page, in the Instance Distribution area, click Add to the right of DuckDB-based analytical instance.

    image

  3. 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.

    Important

    If the major engine version does not meet the requirements, you must manually upgrade the major engine version before proceeding.

  4. Configure the instance parameters.

    ParameterDescription
    Billing methodSubscription: 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.
    EditionBasic 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 typeOnly Standard Edition is supported. For details, see Product types.
    ZoneA zone is an independent physical area within a region. Multi-zone deployment provides zone-level disaster recovery.
    Instance typeOnly Dedicated instance types are supported. The available types are the same as ApsaraDB RDS for PostgreSQL read-only instance types.
    Storage capacityIncludes 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.
  5. Click Next: Instance Configurations and set the following parameters.

    ParameterDescription
    Network typeDefaults to the same VPC and vSwitch of Primary Node as the primary instance.
    Release protectionAvailable for pay-as-you-go instances only. Enable this to prevent accidental release. For details, see Enable or disable release protection.
    Resource groupDefaults to the same resource group as the primary instance and cannot be changed.
    Time zoneDefaults to the same time zone as the primary instance.
    SLR authorizationNo action required. Authorization was granted when you purchased the primary instance.
    Instance nameSet a name to identify the instance.
  6. Click Next: Confirm Order.

  7. 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

  1. Log in to the ApsaraDB RDS console. In the left navigation pane, click Instances. In the top navigation bar, select a region.

  2. In the instance list, find the primary instance (indicated by the image icon) and expand its drop-down list.

  3. Click the ID of the DuckDB-based analytical instance.

    image

  4. In the left navigation pane, click Database Management.

  5. On the Database Management page, select the databases to enable for automatic columnar conversion, then click Batch Configure Columnar Storage.

  6. 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.

What's next