Engine limitations
Description
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
DATE
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.
FLOAT
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.
INT
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.
STRING
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 KPI
s 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.