Skip to main content

Celonis Product Documentation

Engine Limitations


In this section, you can find the limitations on data types, object naming and data selection per use case.

Process Data Model

Process data models are queried by the PQL engine. 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 partitioning a use case. Note that these restrictions do not apply to the overall data you can manage in the EMS platform. In most cases there is just one partition per use case. Note that at the moment, cross-partition queries are not supported but require providing 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 however is 2.1 billion rows. The 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. Nevertheless, we recommend not to exceed the number of 1,000 distinct activities per activity table for visualization reasons.

Object naming restrictions

Table names and table IDs have to be unique. Within a table the column names and IDs have to be unique. Please also note that table and column names are case-insensitive. Information about supported table and column names can be found here.

Data Types

The DATE type represents timestamps that can range from year 1400 (including) to the year 10000 (excluding) on millisecond precision. Values outside this range will be mapped to NULL. A detailed description of the DATE type can be found here.


The implementation of floating point numbers follows the IEEE Standard for Floating-Point Arithmetic (IEEE 754) with a 64 bit precision. Further information can be found here.


The INT type represents integers with 64 bits which supports a range from -9223372036854775808 (-263) to 9223372036854775807 (263-1). Further information on the INT type can be found here.


The STRING type allows handling 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. A more detailed description of STRING can be found here.

PQL queries
Length of queries

The length of PQL queries is limited to 10 million characters. Queries or load scripts larger than this limit will return an error. We recommend to not exceed a length of 50.000 characters.

Additionally a query may only produce up to 20.000.000 abstract syntax tree nodes. The abstract syntax tree is the internal representation of the query after parsing. One AST node roughly represents one operator in a query, but usage of certain operators or a lot of nested KPIs within KPIs can increase the number of nodes rapidly.

Best practices for reducing the query length
  • IN with a long list of values can be replaced by a column that contains those values.