34.2. Considerations and Limitations #

The built-in analytical platform has the following limitations that must be considered when executing OLAP operations:

  • The pgpro_duckdb extension executes SQL queries within a single server and is limited by the server capacity. Typically, the limit of data that the pgpro_duckdb extension can process in a single SQL query on an average server (64 CPU, 256 GB RAM) does not exceed 1-3 TB. To process a larger data scope, split the initial data into smaller parts. Process each part in a separate analytical query and save the result in a temporary table. After processing all parts, unite the results in a final analytical query.

  • Currently, the pgpro_duckdb extension uses a basic access model managed by the role specified in the duckdb.postgres_role configuration parameter. Members of this role have full access to pgpro_duckdb functions. To differentiate data access for multiple analyst groups, use external tools. For example, you can configure access on the level of the application that verifies access rights of a particular user and then creates and sends an analytical query to pgpro_duckdb.

  • The pgpro_duckdb extension provides high speed processing of analytical queries only on supported columnar data sources, such as Parquet files. When using heap tables, the processing speed is comparable to a regular query executing within the Postgres Pro Enterprise core.

  • Reading data from heap tables is single-threaded and cannot be increased to a number of threads provided by the pgpro_duckdb extension.

  • There are limitations on the Postgres Pro Enterprise data types support. For more information, see Section G.3.5.1.

  • The pgpro_duckdb syntax is similar to but does not fully match the Postgres Pro Enterprise syntax. Certain queries operating within Postgres Pro Enterprise must be modified to be executable in the pgpro_duckdb extension.

  • A user that has access rights to Parquet files within the pgpro_duckdb extension in the local storage has the same privileges as the postgres user.

  • When exporting data to Parquet files, the successful export completion and exported data consistency must be controlled by a user.