Skip to main content

Celonis Product Documentation

Engine limitations


In this section, you can find details of limitations on data types, object naming and data selection for each use case.

Process data model

The PQL engine queries process data models. A process data model is a selection of the data available in the platform. It is used to select and structure the relevant data in the platform by use case, process or business problem.

Certain limits apply to process data model instances which may require the partitioning of a use case. Note that these restrictions do not apply to the overall data you can manage in EMS. In most cases there is just one partition per use case. Note that cross-partition queries are not currently supported but require summary tables.

Limits per data selection

There is no hard limit on the number of rows within one data model. The upper limit for data selections per table per partition is 5 billion rows. Our recommended upper limit of rows for a single partition is 800 million. There is no hard limit on the number of total rows within one data model.

There is no hard upper limit on the number of activities per case. Nevertheless, we recommend an average case length of about 20 activities or less.

The hard upper limit of distinct activity types in an activity table is 32,767. To keep visualizations clear, we recommend that you don't exceed 1,000 distinct activities per activity table.

Object naming restrictions

Table names and table IDs must be unique. Within a table, the column names and IDs must be unique. Note that table and column names are case-insensitive. You can find more detail about supported table and column names here.

Data types

The DATE type represents timestamps. We support timestamps from the start of the year 1400 to the end of the year 9999 with millisecond precision. Values outside this range are mapped to NULL. You can find more detail here.


The implementation of floating point numbers follows the IEEE Standard for Floating-Point Arithmetic (IEEE 754) with 64-bit precision. You can find more detail here.


The INT type uses 64 bits to represent integers. It supports the range -9223372036854775808 (-263) to 9223372036854775807 (263-1). You can find more detail here.


The STRING type handles sequences of characters, typically text. STRING constants have to be quoted with single quotes ('...'). Single quotes within a STRING constant have to be escaped with a backslash (\'). A literal backslash within a STRING constant also has to be escaped with a backslash (\\). Unicode characters are supported in all functions which support the STRING type, unless specifically noted in the documentation for the given function. You can find more detail here. There are certain limits when it comes to the total size of all unique strings in a column. We recommend to limit the total size of unique strings in a column to 100 GB.

PQL queries
Length of queries

PQL queries are limited to 10 million characters. Queries or load scripts larger than this return an error. We recommend a limit of 50,000 characters.

A query can only produce 5,000,000 abstract syntax tree nodes. The abstract syntax tree is the internal representation of the query after parsing. One abstract syntax tree node roughly represents one operator in a query, but usage of certain operators or many nested KPIs within KPIs can increase the number of nodes rapidly.

Best practices for reducing the query length
  • You can replace IN followed by a long list of values, with a column that contains those values.