From c4a4018bcf46071fbf691a52cd5474ed71efcbbb Mon Sep 17 00:00:00 2001 From: Umang Mistry Date: Wed, 27 Mar 2024 16:13:18 -0500 Subject: [PATCH] Created new file for Biz config sp --- .../R__008_LOAD_BUSINESS_CONFIG_SP.sql | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 snowflake/scripts/training_interface/R__008_LOAD_BUSINESS_CONFIG_SP.sql diff --git a/snowflake/scripts/training_interface/R__008_LOAD_BUSINESS_CONFIG_SP.sql b/snowflake/scripts/training_interface/R__008_LOAD_BUSINESS_CONFIG_SP.sql new file mode 100644 index 0000000..13a750e --- /dev/null +++ b/snowflake/scripts/training_interface/R__008_LOAD_BUSINESS_CONFIG_SP.sql @@ -0,0 +1,61 @@ + +CREATE OR REPLACE PROCEDURE STG.LOAD_BUSINESS_CONFIG(file_name VARCHAR) +RETURNS STRING +LANGUAGE SQL +EXECUTE AS CALLER +AS +$$ +DECLARE + procedure_name varchar; +BEGIN + + procedure_name := 'LOAD_BUSINESS_CONFIG'; + + call stg.log_audit(:procedure_name, 'Section 1', 99, 'START'); + + -- Create or replace stage with dynamic file name + EXECUTE IMMEDIATE 'CREATE OR REPLACE STAGE STG.BUSINESS_CONFIG_STAGE + STORAGE_INTEGRATION = dev_bucket_integration + URL = ''s3://doczy-dev-infra-raw-data-ingestion/training_data_raw/' || :file_name || ''' + FILE_FORMAT = (FORMAT_NAME = ''STG.CSV_HEADER'');'; + + call stg.log_audit(:procedure_name, 'Section 1', 99, 'END'); + + call stg.log_audit(:procedure_name, 'Section 2', 99, 'START'); + + -- Truncate table as we are using the KILL & FILL approach + TRUNCATE TABLE STG.BUSINESS_CONFIG; + + call stg.log_audit(:procedure_name, 'Section 2', 99, 'END'); + + call stg.log_audit(:procedure_name, 'Section 3', 99, 'START'); + + -- Copy command to load data + COPY INTO STG.BUSINESS_CONFIG FROM ( + SELECT + NULLIF(TRIM($1), '') AS FIELD_NAME, + NULLIF(TRIM($2), '') AS SF_COL_NAME, + NULLIF(TRIM($3), '') AS QUESTION, + NULLIF(TRIM($4), '') AS PRIORITY, + NULLIF(TRIM($5), '') AS GROUP_NO, + NULLIF(TRIM($6), '') AS THEME + FROM @STG.BUSINESS_CONFIG_STAGE + ) + FILE_FORMAT = (FORMAT_NAME = 'STG.CSV_HEADER') + ON_ERROR = ABORT_STATEMENT; + + call stg.log_audit(:procedure_name, 'Section 3', 99, 'END'); + + call stg.log_audit(:procedure_name, 'Section 4', 99, 'START'); + + INSERT INTO DOCZY_DEV.STG.DIM_AUDIT (AUDIT_SID, TABLE_NAME, SOURCE_FILE_NAME, LOAD_DATE, SOURCE_COUNT) + SELECT STG.AUDIT_SID.NEXTVAL, :procedure_name,* + FROM + (SELECT DISTINCT METADATA$FILENAME, CURRENT_TIMESTAMP(), max(METADATA$FILE_ROW_NUMBER) from @STG.BUSINESS_CONFIG_STAGE group by 1,2); + + call stg.log_audit(:procedure_name, 'Section 4', 99, 'END'); + + RETURN 'Setup, Load, and Audit Complete'; +END; +$$; +