QPR ProcessAnalyzer Native App in Snowflake: Difference between revisions

From QPR ProcessAnalyzer Wiki
Jump to navigation Jump to search
 
(123 intermediate revisions by the same user not shown)
Line 1: Line 1:
QPR ProcessAnalyzer can run as Snowflake Native App which allows process mining analyses for data in Snowflake Data Cloud. To get started, QPR ProcessAnalyzer Native App needs to be installed by following the Snowflake instructions:
* [https://other-docs.snowflake.com/en/native-apps/consumer-installing-container#install-an-application-from-a-snowflake-marketplace-listing Install app from the marketplace listing].
* [https://other-docs.snowflake.com/en/native-apps/consumer-installing-container#install-an-app-with-containers-from-a-privately-shared-listing Install app from a private listing]


QPR ProcessAnalyzer can run as Snowflake Native App. To get started, go to the [https://app.snowflake.com/marketplace Snowflake Marketplace] and search "QPR ProcessAnalyzer". Install the QPR ProcessAnalyzer Native App and click the '''Launch App''' button
== User access to application ==
You can give access to the QPR ProcessAnalyzer Native App by opening the '''Access management''' tab in the application page and click the '''Add''' button to assign the application roles to account roles. There are the following application roles available:
* '''USER''': With this application role, user can open and use the application. Note that users can still perform administrative operations in the QPR ProcessAnalyzer [[Manage_Users_and_Groups|User Management]], unless more restrictive permissions has been set.
* '''ADMINISTRATOR''': With this application role, user has permissions to:
** open and use the application
** operate the container service (suspend and resume the service)
** perform backup operations (take and restore backups of the service)


== Get started ==
Note that granting permissions to the Native App and removing the Native App requires the ACCOUNTADMIN role.


== Load data ==
QPR ProcessAnalyzer has a [[Manage_Users_and_Groups|User Management]] which is integrated into Snowflake users. When QPR ProcessAnalyzer is installed, the Snowflake user who installed the application, is automatically created to QPR ProcessAnalyzer user management as system administrator. This user needs to open QPR ProcessAnalyzer, go to the [[Manage_Users_and_Groups|User Management]], and create other users. If you see the QPR ProcessAnalyzer login page when trying to access the QPR ProcessAnalyzer Native App, there is no user available in the QPR ProcessAnalyzer user management corresponding to your Snowflake user name.
QPR ProcessAnalyzer Native App is initially empty. You can use existing eventlog data in Snowflake or import example eventlogs as follows:
# [[QPR_ProcessAnalyzer_Project_Workspace#Creating_Project|Create project]].
# [[QPR_ProcessAnalyzer_Project_Workspace#Importing_Model|Import model]]. ([[Sample_Eventlog_Files|Sample eventlogs]])
# [[QPR_ProcessAnalyzer_Project_Workspace#Creating_Dashboard|Create dashboard]].


== Manage permissions ==
== Application access to data ==
QPR ProcessAnalyzer has a separate [[Manage_Users_and_Groups|User Management]] which is integrated into Snowflake user management. When a Snowflake user login to QPR ProcessAnalyzer Native App, the user is automatically created to QPR ProcessAnalyzer. New users get by default administrator permissions to QPR ProcessAnalyzer. If you need to restrict user permissions, create the users beforehand to QPR ProcessAnalyzer and set their permissions as desired.
QPR ProcessAnalyzer Native App needs an access to data in Snowflake tables, limited by permissions given to the QPR ProcessAnalyzer Native App. For example, following SQL commands grant permission to read a specific table in Snowflake:
<pre>
GRANT USAGE ON DATABASE <database> TO APPLICATION QPR_PROCESSANALYZER;
GRANT USAGE ON SCHEMA <database>.<schema> TO APPLICATION QPR_PROCESSANALYZER;
GRANT SELECT ON TABLE <database>.<schema>.<table> TO APPLICATION QPR_PROCESSANALYZER;
</pre>
 
Following example grants access to all tables in a specific schema:
<pre>
GRANT USAGE ON DATABASE <database> TO APPLICATION QPR_PROCESSANALYZER;
GRANT USAGE ON SCHEMA <database>.<schema> TO APPLICATION QPR_PROCESSANALYZER;
GRANT SELECT ON ALL TABLES IN SCHEMA <database>.<schema> TO APPLICATION QPR_PROCESSANALYZER;
</pre>
 
If you also want to modify data using QPR ProcessAnalyzer (e.g., import CSV files), following privileges are needed:
<pre>
GRANT USAGE ON DATABASE <database> TO APPLICATION QPR_PROCESSANALYZER;
GRANT USAGE ON SCHEMA <database>.<schema> TO APPLICATION QPR_PROCESSANALYZER;
GRANT SELECT,UPDATE,INSERT,DELETE,TRUNCATE ON ALL TABLES IN SCHEMA <database>.<schema> TO APPLICATION QPR_PROCESSANALYZER;
</pre>
 
If you already have the data, see how to [https://www.qpr.com/hubfs/Quick%20Start%20Guide_Getting%20Started%20with%20QPR%20ProcessAnalyzer%20-%20Connecting%20to%20Snowflake-1.pdf create datatables and model (PDF)].
 
== Quick start with example data ==
QPR ProcessAnalyzer Native App requires eventlog data extracted from source systems. Data in Snowflake need to be converted into the suitable eventlog format.
 
To get started, you can also import example eventlogs as follows:
# [[QPR_ProcessAnalyzer_Project_Workspace#Creating_Project|Create project]] in the Workspace.
# Go to the project and [[QPR_ProcessAnalyzer_Project_Workspace#Importing_Model|import model]] from [[Sample_Eventlog_Files|sample eventlog files]].
# Double-click the model to start Process Discovery or [[QPR_ProcessAnalyzer_Project_Workspace#Creating_Dashboard|create dashboard]].
 
== Manage warehouse ==
QPR ProcessAnalyzer Native App includes an XS-size virtual warehouse by default named '''QPR_PROCESSANALYZER_WAREHOUSE'''. Its size and other settings can be changed in Snowsight (''Admin'' -> ''Warehouses''), like for any other warehouse. However, changing the default warehouse to another warehouse is not possible.
 
If you need to use several warehouses in the app, you can set [[QPR_ProcessAnalyzer_Project_Workspace#Snowflake_Native_App|project-specific connection strings]].
 
== Compute pool size ==
QPR ProcessAnalyzer Server runs as a Snowflake service in a compute pool. When the native app is installed, the compute pool is automatically created and it has one node with instance family CPU_X64_XS (1 vCPU and 6 GB memory). This is the smallest available instance size which is sufficient for small number of simultaneous users. If the QPR ProcessAnalyzer Server becomes a performance bottleneck, the instance size can be increased to CPU_X64_S (3 vCPU and 13 GB memory) or even CPU_X64_M (6 vCPU and 28 GB memory) as follows:
<pre>
ALTER COMPUTE POOL QPR_PROCESSANALYZER_APP_COMPUTE_POOL SET INSTANCE_FAMILY = CPU_X64_S
</pre>
 
Note that the QPR ProcessAnalyzer service can use only one node in the compute pool, so increasing the MAX_NODES setting doesn't affect performance.
 
More information about compute pool size: https://docs.snowflake.com/en/developer-guide/snowpark-container-services/working-with-compute-pool#creating-a-compute-pool
 
== Required privileges ==
QPR ProcessAnalyzer requires following Snowflake account level privileges:
* BIND SERVER ENDPOINT: Required to create a http web endpoint to access QPR ProcessAnalyzer.
* CREATE COMPUTE POOL: Required to create a compute pool to run QPR ProcessAnalyzer service.
* CREATE WAREHOUSE: Required to create a warehouse where QPR ProcessAnalyzer can run analytics queries.
 
Granting these privileges is requested during the installation.
 
More information: https://docs.snowflake.com/en/developer-guide/native-apps/requesting-privs#privileges-the-provider-can-request-from-the-consumer
 
== Optional privilege for AI Agent ==
If the [[AI Agent]] dashboard component will be used, the SNOWFLAKE.CORTEX_USER database user needs to be granted to QPR ProcessAnalyzer application. It enables to use Snowflake Cortex functions, such as the Complete function (https://docs.snowflake.com/en/sql-reference/functions/complete-snowflake-cortex).
 
The permission can be granted with following SQL command:
<pre>
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO APPLICATION QPR_PROCESSANALYZER;
</pre>
 
The permission can be removed as follows:
<pre>
REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_USER FROM APPLICATION QPR_PROCESSANALYZER;
</pre>
 
== Backup configuration data ==
QPR ProcessAnalyzer Native App stores its own configuration data which requires regular backups in case data or the entire native app is accidentally deleted. The configuration data is located in the container block storage of the native app, and it contains for example projects, dashboards, model settings, datatable settings, users and groups. Note that the eventlog data (cases and events) are located in Snowflake tables which don't require backups because they are protected by the Time Travel (https://docs.snowflake.com/en/user-guide/data-time-travel).
 
''Snapshots'' can be taken from the native app for backup purposes and the native app can be restored to an earlier state from a snapshot. The owner role of the native app has the permissions to take and restore snapshots.
 
=== Take snapshot ===
Following command takes a snapshot from the QPR ProcessAnalyzer Native App configuration data. Snapshot name is MySnapshot and it's stored to database/schema QPRProcessAnalyzerBackups/Backups.
<pre>
CREATE SNAPSHOT QPRProcessAnalyzerBackups.Backups.MySnapshot
  FROM SERVICE QPR_PROCESSANALYZER_APP.METADATA.QPR_PROCESSANALYZER_SERVICE
  VOLUME "data"
  INSTANCE 0;
</pre>
 
Note that each snapshot stored to the same schema needs to have a unique name.
 
More information: https://docs.snowflake.com/en/sql-reference/sql/create-snapshot


To use the QPR ProcessAnalyzer Native App, Snowflake users need to be given the USAGE privilege to the QPR ProcessAnalyzer service. More information: https://docs.snowflake.com/en/developer-guide/snowpark-container-services/working-with-services#granting-the-usage-privilege-on-all-endpoints-using-the-default-service-role
=== Restore snapshot ===
QPR ProcessAnalyzer Native App can be restored from a snapshot as follows:
<pre>
ALTER SERVICE QPR_PROCESSANALYZER_APP.METADATA.QPR_PROCESSANALYZER_SERVICE SUSPEND;
ALTER SERVICE QPR_PROCESSANALYZER_APP.METADATA.QPR_PROCESSANALYZER_SERVICE RESTORE
  VOLUME "data"
  INSTANCES 0
  FROM SNAPSHOT QPRProcessAnalyzerBackups.Backups.MySnapshot;
ALTER SERVICE QPR_PROCESSANALYZER_APP.METADATA.QPR_PROCESSANALYZER_SERVICE RESUME;
</pre>


QPR ProcessAnalyzer Native App need to have access to data in Snowflake and it's limited by the permissions given to the owner role of the QPR ProcessAnalyzer service. Give permissions to that role for databases containing eventlog data that will be analyzed in the QPR ProcessAnalyzer Native App. At least following privileges are needed:
Note that the service is suspended before the restore and resumed after snapshot is restored.
* Database: USAGE
* Schema : USAGE
* Table/view: SELECT


== Use virtual warehouses ==
More information: https://docs.snowflake.com/en/sql-reference/sql/alter-service
When QPR ProcessAnalyzer Native App installed, XS-size virtual warehouse is created and it's used by default. Different warehouse can be used by changing it with the following command:


=== Show snapshots ===
Following command lists all snapshots in database/schema QPRProcessAnalyzerBackups/Backups:
<pre>
<pre>
ALTER SERVICE <service_name> SET QUERY_WAREHOUSE = <warehouse_name>;
SHOW SNAPSHOTS IN DATABASE QPRProcessAnalyzerBackups SCHEMA Backups;
</pre>
</pre>
This command can be used to find the snapshot to be restored.
More information: https://docs.snowflake.com/en/sql-reference/sql/show-snapshots
=== Drop snapshot ===
Following command drops a snapshot:
<pre>
DROP SNAPSHOT MySnapshot;
</pre>
More information: https://docs.snowflake.com/en/sql-reference/sql/drop-snapshot
== Logging ==
QPR ProcessAnalyzer Native App writes logs to the default Snowflake Event table (https://docs.snowflake.com/en/developer-guide/logging-tracing/event-table-setting-up). Only log entries at the warning level and more severe are logged (to avoid excessive logging). Logs can be viewed in Snowsight in '''Monitoring''' -> '''Traces & Logs''' -> '''Logs'''. To filter only log entries from the QPR ProcessAnalyzer Native App, select database '''QPR_PROCESSANALYZER''' and schema '''METADATA'''.
QPR ProcessAnalyzer Native App writes traces which is controlled by TRACE_LEVEL option for the QPR_PROCESSANALYZER database METADATA schema. If it is not set, ALWAYS level is used. More information: https://docs.snowflake.com/en/sql-reference/parameters#label-trace-level.
QPR ProcessAnalyzer Native App writes following metrics:
* _system_: to track CPU and memory usage
* _system_limits_: to check CPU and memory limits for container
* _storage_: to track storage volume used by SqlServer
More information about metrics: https://docs.snowflake.com/en/developer-guide/snowpark-container-services/monitoring-services#label-spcs-available-platform-metrics
Writing metrics is controlled by the METRIC_LEVEL option for the QPR_PROCESSANALYZER database METADATA schema. If it is not set, ALL level used. More information: https://docs.snowflake.com/en/sql-reference/parameters#label-metric-level.
== Notes for Snowflake behavior ==
=== SQL queries hidden ===
Queries done by QPR ProcessAnalyzer Native App appear in the Snowsight Query History as user ''QPR_PROCESSANALYZER_SERVICE''. The SQL text is not shown in the Query History for queries originating from QPR ProcessAnalyzer which is Snowflake's intended functionality (more information: https://docs.snowflake.com/en/developer-guide/native-apps/redacted-content).
=== Stopping service ===
QPR ProcessAnalyzer Native App automatically starts up when a user logs in. QPR ProcessAnalyzer doesn't stop automatically, but it can be stopped manually if desired as follows:
<pre>
ALTER COMPUTE POOL QPR_PROCESSANALYZER_APP_COMPUTE_POOL SUSPEND;
</pre>
=== Web endpoint timeout ===
Snowflake has a one minute timeout for http requests, so long running operations may reach this timeout and fail. For example, importing large model from pacm or json file may encounter this situation. However, CSV data import doesn't have this issue.
== Unavailable functionality ==
Following functionality is not available in the QPR ProcessAnalyzer Native App:
* In-memory models
* Datatables stored to SQL Server
* Connections to external sources, such as SAP, Salesforce, ODBC, and Web Service
* Scripts using SQL language
* AI Assistant
== Update application ==
QPR ProcessAnalyzer Native app is updated automatically, so no actions from the users is required. New functionality can be seen in the [[QPR_ProcessAnalyzer_Release_Notes|new version release notes]].
== Uninstall application ==
QPR ProcessAnalyzer Native App can be uninstalled by selecting '''Uninstall''' for the app. Note that if QPR ProcessAnalyzer is uninstalled, the configuration data contained by the application is lost (such as projects, models, dashboards and scripts). However, the eventlog data residing in Snowflake tables are preserved because they are located outside the app.
== Native App costs ==
Running QPR ProcessAnalyzer Native App in Snowflake has the following costs:
* Native App license: $4.000 - $12.000/month based on the number of queries.
* Analytics queries: Cost for running process mining queries using a Snowflake warehouse (that is part of the Native App).
* Data storage: Cost of storing the data in Snowflake tables. There is no extra cost if the data is already in Snowflake.
* Compute pool: Cost for running the compute pool where the QPR ProcessAnalyzer application container service runs. There is also a small cost for storage of the container block storage and data transfer.
* Data extract, transform and load (ETL): Cost for loading data into Snowflake and executing ETL operations in a Snowflake warehouse to create the eventlogs.
You can see all the costs generated from '''Data Products''' -> '''Apps''' -> '''QPR ProcessAnalyzer''' -> '''Cost Management''' page-

Latest revision as of 22:15, 18 May 2025

QPR ProcessAnalyzer can run as Snowflake Native App which allows process mining analyses for data in Snowflake Data Cloud. To get started, QPR ProcessAnalyzer Native App needs to be installed by following the Snowflake instructions:

User access to application

You can give access to the QPR ProcessAnalyzer Native App by opening the Access management tab in the application page and click the Add button to assign the application roles to account roles. There are the following application roles available:

  • USER: With this application role, user can open and use the application. Note that users can still perform administrative operations in the QPR ProcessAnalyzer User Management, unless more restrictive permissions has been set.
  • ADMINISTRATOR: With this application role, user has permissions to:
    • open and use the application
    • operate the container service (suspend and resume the service)
    • perform backup operations (take and restore backups of the service)

Note that granting permissions to the Native App and removing the Native App requires the ACCOUNTADMIN role.

QPR ProcessAnalyzer has a User Management which is integrated into Snowflake users. When QPR ProcessAnalyzer is installed, the Snowflake user who installed the application, is automatically created to QPR ProcessAnalyzer user management as system administrator. This user needs to open QPR ProcessAnalyzer, go to the User Management, and create other users. If you see the QPR ProcessAnalyzer login page when trying to access the QPR ProcessAnalyzer Native App, there is no user available in the QPR ProcessAnalyzer user management corresponding to your Snowflake user name.

Application access to data

QPR ProcessAnalyzer Native App needs an access to data in Snowflake tables, limited by permissions given to the QPR ProcessAnalyzer Native App. For example, following SQL commands grant permission to read a specific table in Snowflake:

GRANT USAGE ON DATABASE <database> TO APPLICATION QPR_PROCESSANALYZER;
GRANT USAGE ON SCHEMA <database>.<schema> TO APPLICATION QPR_PROCESSANALYZER;
GRANT SELECT ON TABLE <database>.<schema>.<table> TO APPLICATION QPR_PROCESSANALYZER;

Following example grants access to all tables in a specific schema:

GRANT USAGE ON DATABASE <database> TO APPLICATION QPR_PROCESSANALYZER;
GRANT USAGE ON SCHEMA <database>.<schema> TO APPLICATION QPR_PROCESSANALYZER;
GRANT SELECT ON ALL TABLES IN SCHEMA <database>.<schema> TO APPLICATION QPR_PROCESSANALYZER;

If you also want to modify data using QPR ProcessAnalyzer (e.g., import CSV files), following privileges are needed:

GRANT USAGE ON DATABASE <database> TO APPLICATION QPR_PROCESSANALYZER;
GRANT USAGE ON SCHEMA <database>.<schema> TO APPLICATION QPR_PROCESSANALYZER;
GRANT SELECT,UPDATE,INSERT,DELETE,TRUNCATE ON ALL TABLES IN SCHEMA <database>.<schema> TO APPLICATION QPR_PROCESSANALYZER;

If you already have the data, see how to create datatables and model (PDF).

Quick start with example data

QPR ProcessAnalyzer Native App requires eventlog data extracted from source systems. Data in Snowflake need to be converted into the suitable eventlog format.

To get started, you can also import example eventlogs as follows:

  1. Create project in the Workspace.
  2. Go to the project and import model from sample eventlog files.
  3. Double-click the model to start Process Discovery or create dashboard.

Manage warehouse

QPR ProcessAnalyzer Native App includes an XS-size virtual warehouse by default named QPR_PROCESSANALYZER_WAREHOUSE. Its size and other settings can be changed in Snowsight (Admin -> Warehouses), like for any other warehouse. However, changing the default warehouse to another warehouse is not possible.

If you need to use several warehouses in the app, you can set project-specific connection strings.

Compute pool size

QPR ProcessAnalyzer Server runs as a Snowflake service in a compute pool. When the native app is installed, the compute pool is automatically created and it has one node with instance family CPU_X64_XS (1 vCPU and 6 GB memory). This is the smallest available instance size which is sufficient for small number of simultaneous users. If the QPR ProcessAnalyzer Server becomes a performance bottleneck, the instance size can be increased to CPU_X64_S (3 vCPU and 13 GB memory) or even CPU_X64_M (6 vCPU and 28 GB memory) as follows:

ALTER COMPUTE POOL QPR_PROCESSANALYZER_APP_COMPUTE_POOL SET INSTANCE_FAMILY = CPU_X64_S

Note that the QPR ProcessAnalyzer service can use only one node in the compute pool, so increasing the MAX_NODES setting doesn't affect performance.

More information about compute pool size: https://docs.snowflake.com/en/developer-guide/snowpark-container-services/working-with-compute-pool#creating-a-compute-pool

Required privileges

QPR ProcessAnalyzer requires following Snowflake account level privileges:

  • BIND SERVER ENDPOINT: Required to create a http web endpoint to access QPR ProcessAnalyzer.
  • CREATE COMPUTE POOL: Required to create a compute pool to run QPR ProcessAnalyzer service.
  • CREATE WAREHOUSE: Required to create a warehouse where QPR ProcessAnalyzer can run analytics queries.

Granting these privileges is requested during the installation.

More information: https://docs.snowflake.com/en/developer-guide/native-apps/requesting-privs#privileges-the-provider-can-request-from-the-consumer

Optional privilege for AI Agent

If the AI Agent dashboard component will be used, the SNOWFLAKE.CORTEX_USER database user needs to be granted to QPR ProcessAnalyzer application. It enables to use Snowflake Cortex functions, such as the Complete function (https://docs.snowflake.com/en/sql-reference/functions/complete-snowflake-cortex).

The permission can be granted with following SQL command:

GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO APPLICATION QPR_PROCESSANALYZER;

The permission can be removed as follows:

REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_USER FROM APPLICATION QPR_PROCESSANALYZER;

Backup configuration data

QPR ProcessAnalyzer Native App stores its own configuration data which requires regular backups in case data or the entire native app is accidentally deleted. The configuration data is located in the container block storage of the native app, and it contains for example projects, dashboards, model settings, datatable settings, users and groups. Note that the eventlog data (cases and events) are located in Snowflake tables which don't require backups because they are protected by the Time Travel (https://docs.snowflake.com/en/user-guide/data-time-travel).

Snapshots can be taken from the native app for backup purposes and the native app can be restored to an earlier state from a snapshot. The owner role of the native app has the permissions to take and restore snapshots.

Take snapshot

Following command takes a snapshot from the QPR ProcessAnalyzer Native App configuration data. Snapshot name is MySnapshot and it's stored to database/schema QPRProcessAnalyzerBackups/Backups.

CREATE SNAPSHOT QPRProcessAnalyzerBackups.Backups.MySnapshot
  FROM SERVICE QPR_PROCESSANALYZER_APP.METADATA.QPR_PROCESSANALYZER_SERVICE
  VOLUME "data"
  INSTANCE 0;

Note that each snapshot stored to the same schema needs to have a unique name.

More information: https://docs.snowflake.com/en/sql-reference/sql/create-snapshot

Restore snapshot

QPR ProcessAnalyzer Native App can be restored from a snapshot as follows:

ALTER SERVICE QPR_PROCESSANALYZER_APP.METADATA.QPR_PROCESSANALYZER_SERVICE SUSPEND;
ALTER SERVICE QPR_PROCESSANALYZER_APP.METADATA.QPR_PROCESSANALYZER_SERVICE RESTORE
  VOLUME "data"
  INSTANCES 0
  FROM SNAPSHOT QPRProcessAnalyzerBackups.Backups.MySnapshot;
ALTER SERVICE QPR_PROCESSANALYZER_APP.METADATA.QPR_PROCESSANALYZER_SERVICE RESUME;

Note that the service is suspended before the restore and resumed after snapshot is restored.

More information: https://docs.snowflake.com/en/sql-reference/sql/alter-service

Show snapshots

Following command lists all snapshots in database/schema QPRProcessAnalyzerBackups/Backups:

SHOW SNAPSHOTS IN DATABASE QPRProcessAnalyzerBackups SCHEMA Backups;

This command can be used to find the snapshot to be restored.

More information: https://docs.snowflake.com/en/sql-reference/sql/show-snapshots

Drop snapshot

Following command drops a snapshot:

DROP SNAPSHOT MySnapshot;

More information: https://docs.snowflake.com/en/sql-reference/sql/drop-snapshot

Logging

QPR ProcessAnalyzer Native App writes logs to the default Snowflake Event table (https://docs.snowflake.com/en/developer-guide/logging-tracing/event-table-setting-up). Only log entries at the warning level and more severe are logged (to avoid excessive logging). Logs can be viewed in Snowsight in Monitoring -> Traces & Logs -> Logs. To filter only log entries from the QPR ProcessAnalyzer Native App, select database QPR_PROCESSANALYZER and schema METADATA.

QPR ProcessAnalyzer Native App writes traces which is controlled by TRACE_LEVEL option for the QPR_PROCESSANALYZER database METADATA schema. If it is not set, ALWAYS level is used. More information: https://docs.snowflake.com/en/sql-reference/parameters#label-trace-level.

QPR ProcessAnalyzer Native App writes following metrics:

  • _system_: to track CPU and memory usage
  • _system_limits_: to check CPU and memory limits for container
  • _storage_: to track storage volume used by SqlServer

More information about metrics: https://docs.snowflake.com/en/developer-guide/snowpark-container-services/monitoring-services#label-spcs-available-platform-metrics

Writing metrics is controlled by the METRIC_LEVEL option for the QPR_PROCESSANALYZER database METADATA schema. If it is not set, ALL level used. More information: https://docs.snowflake.com/en/sql-reference/parameters#label-metric-level.

Notes for Snowflake behavior

SQL queries hidden

Queries done by QPR ProcessAnalyzer Native App appear in the Snowsight Query History as user QPR_PROCESSANALYZER_SERVICE. The SQL text is not shown in the Query History for queries originating from QPR ProcessAnalyzer which is Snowflake's intended functionality (more information: https://docs.snowflake.com/en/developer-guide/native-apps/redacted-content).

Stopping service

QPR ProcessAnalyzer Native App automatically starts up when a user logs in. QPR ProcessAnalyzer doesn't stop automatically, but it can be stopped manually if desired as follows:

ALTER COMPUTE POOL QPR_PROCESSANALYZER_APP_COMPUTE_POOL SUSPEND;

Web endpoint timeout

Snowflake has a one minute timeout for http requests, so long running operations may reach this timeout and fail. For example, importing large model from pacm or json file may encounter this situation. However, CSV data import doesn't have this issue.

Unavailable functionality

Following functionality is not available in the QPR ProcessAnalyzer Native App:

  • In-memory models
  • Datatables stored to SQL Server
  • Connections to external sources, such as SAP, Salesforce, ODBC, and Web Service
  • Scripts using SQL language
  • AI Assistant

Update application

QPR ProcessAnalyzer Native app is updated automatically, so no actions from the users is required. New functionality can be seen in the new version release notes.

Uninstall application

QPR ProcessAnalyzer Native App can be uninstalled by selecting Uninstall for the app. Note that if QPR ProcessAnalyzer is uninstalled, the configuration data contained by the application is lost (such as projects, models, dashboards and scripts). However, the eventlog data residing in Snowflake tables are preserved because they are located outside the app.

Native App costs

Running QPR ProcessAnalyzer Native App in Snowflake has the following costs:

  • Native App license: $4.000 - $12.000/month based on the number of queries.
  • Analytics queries: Cost for running process mining queries using a Snowflake warehouse (that is part of the Native App).
  • Data storage: Cost of storing the data in Snowflake tables. There is no extra cost if the data is already in Snowflake.
  • Compute pool: Cost for running the compute pool where the QPR ProcessAnalyzer application container service runs. There is also a small cost for storage of the container block storage and data transfer.
  • Data extract, transform and load (ETL): Cost for loading data into Snowflake and executing ETL operations in a Snowflake warehouse to create the eventlogs.

You can see all the costs generated from Data Products -> Apps -> QPR ProcessAnalyzer -> Cost Management page-