Change Native App Compute Pool: Difference between revisions

From QPR ProcessAnalyzer Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
QPR ProcessAnalyzer Native App uses the CPU_X64_S size Snowflake compute pool by default. The compute pool can be changed (for example to size CPU_X64_XS) using the instructions below.
QPR ProcessAnalyzer Native App uses by default either the CPU_X64_XS or CPU_X64_S size Snowflake compute pool, depending when the Native App has been installed. The current compute pool size can be checked in Snowsight in '''Compute''' > '''Compute pools''' where the '''QPR_PROCESSANALYZER_COMPUTE_POOL''' compute pool can be found.


The instructions are based on the procedure '''public.set_compute_pool''' which is part of the Native App. It recreates the Native App application service to a specified compute pool. Data in QPR ProcessAnalyzer database will be lost - use the snapshot to save and restore data. The application role ADMINISTRATOR is required to run the procedure.
The compute pool can be changed using the instructions in this article. The instructions use the '''public.set_compute_pool''' procedure which is part of the Native App. It recreates the Native App application service to a specified compute pool. In the process, QPR ProcessAnalyzer configuration database will be lost, so it's important to use a snapshot to save and restore data. The application role ADMINISTRATOR is required to run the procedure.


Follow these instructions and run the commands in a worksheet one-by-one:
To change the compute pool size, follow these step-by-step instructions by executing the commands in a Snowflake worksheet. This guide will switch the compute pool to the CPU_X64_XS size. If you prefer to change the compute pool size to CPU_X64_S, replace the INSTANCE_FAMILY with that value. Additionally, update the compute pool name to reflect its new size.


<pre>
<pre>
Line 10: Line 10:
CALL QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE!SPCS_WAIT_FOR('SUSPENDED', 600);
CALL QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE!SPCS_WAIT_FOR('SUSPENDED', 600);


-- 2. Take snapshot
-- 2. Create a database and schema for snapshots and take a snapshot
CREATE DATABASE QPRProcessAnalyzerBackups;
USE DATABASE QPRProcessAnalyzerBackups; 
CREATE SCHEMA Backups;
CREATE SNAPSHOT QPRProcessAnalyzerBackups.Backups.MySnapshot
CREATE SNAPSHOT QPRProcessAnalyzerBackups.Backups.MySnapshot
   FROM SERVICE QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE
   FROM SERVICE QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE
Line 24: Line 27:
       AUTO_RESUME = true;
       AUTO_RESUME = true;


-- 4. Wait until compute pool is in status IDLE
-- 4. Wait until compute pool is in status IDLE by usin the following command
SHOW COMPUTE POOLS LIKE 'QPR_PROCESSANALYZER_COMPUTE_POOL_S';


-- 5. Grant permissions to application
-- 5. Grant permissions to application
GRANT USAGE ON COMPUTE POOL QPR_PROCESSANALYZER_COMPUTE_POOL_S TO APPLICATION QPR_PROCESSANALYZER;
GRANT USAGE ON COMPUTE POOL QPR_PROCESSANALYZER_COMPUTE_POOL_XS TO APPLICATION QPR_PROCESSANALYZER;


-- 6. Call the SET_COMPUTE_POOL procedure
-- 6. Call the SET_COMPUTE_POOL procedure

Latest revision as of 14:42, 1 October 2025

QPR ProcessAnalyzer Native App uses by default either the CPU_X64_XS or CPU_X64_S size Snowflake compute pool, depending when the Native App has been installed. The current compute pool size can be checked in Snowsight in Compute > Compute pools where the QPR_PROCESSANALYZER_COMPUTE_POOL compute pool can be found.

The compute pool can be changed using the instructions in this article. The instructions use the public.set_compute_pool procedure which is part of the Native App. It recreates the Native App application service to a specified compute pool. In the process, QPR ProcessAnalyzer configuration database will be lost, so it's important to use a snapshot to save and restore data. The application role ADMINISTRATOR is required to run the procedure.

To change the compute pool size, follow these step-by-step instructions by executing the commands in a Snowflake worksheet. This guide will switch the compute pool to the CPU_X64_XS size. If you prefer to change the compute pool size to CPU_X64_S, replace the INSTANCE_FAMILY with that value. Additionally, update the compute pool name to reflect its new size.

-- 1. Stop application service
ALTER SERVICE QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE SUSPEND;
CALL QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE!SPCS_WAIT_FOR('SUSPENDED', 600);

-- 2. Create a database and schema for snapshots and take a snapshot
CREATE DATABASE QPRProcessAnalyzerBackups;
USE DATABASE QPRProcessAnalyzerBackups;  
CREATE SCHEMA Backups;
CREATE SNAPSHOT QPRProcessAnalyzerBackups.Backups.MySnapshot
  FROM SERVICE QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE
  VOLUME "data"
  INSTANCE 0;

-- 3. Create new compute pool for application
CREATE COMPUTE POOL QPR_PROCESSANALYZER_COMPUTE_POOL_XS
      FOR APPLICATION QPR_PROCESSANALYZER
      MIN_NODES = 1
      MAX_NODES = 1
      INSTANCE_FAMILY = CPU_X64_XS
      AUTO_RESUME = true;

-- 4. Wait until compute pool is in status IDLE by usin the following command
SHOW COMPUTE POOLS LIKE 'QPR_PROCESSANALYZER_COMPUTE_POOL_S';

-- 5. Grant permissions to application
GRANT USAGE ON COMPUTE POOL QPR_PROCESSANALYZER_COMPUTE_POOL_XS TO APPLICATION QPR_PROCESSANALYZER;

-- 6. Call the SET_COMPUTE_POOL procedure
CALL QPR_PROCESSANALYZER.PUBLIC.SET_COMPUTE_POOL('QPR_PROCESSANALYZER_COMPUTE_POOL_XS');

-- 7. In Snowsight, go to application Native App and press 'Activate'. Wait until activation is finished.

-- 8. Stop application service again to restore snapshot
ALTER SERVICE QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE SUSPEND;
CALL QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE!SPCS_WAIT_FOR('SUSPENDED', 600);

-- 9. Restore snapshot
ALTER SERVICE QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE RESTORE
  VOLUME "data"
  INSTANCES 0
  FROM SNAPSHOT QPRProcessAnalyzerBackups.Backups.MySnapshot;

-- 10. Start service
ALTER SERVICE QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE RESUME;
CALL QPR_PROCESSANALYZER.METADATA.QPR_PROCESSANALYZER_SERVICE!SPCS_WAIT_FOR('RUNNING', 600);

-- 11. Remove old compute pool
GRANT OWNERSHIP ON COMPUTE POOL QPR_PROCESSANALYZER_COMPUTE_POOL TO ROLE ACCOUNTADMIN;
DROP COMPUTE POOL QPR_PROCESSANALYZER_COMPUTE_POOL;

More information about Snowflake compute pools: https://docs.snowflake.com/en/developer-guide/snowpark-container-services/working-with-compute-pool.