Professional Documents
Culture Documents
) sp_log_end_etl_job_execution
USE [landing]
GO
/****** Object: StoredProcedure [dbo].[sp_log_end_file_etl_job_execution]
Script Date: 09/16/2010 16:28:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--working variables
declare @job int
declare @file_id varchar(50)
declare @TABLE varchar(100)
DECLARE @cursor CURSOR
DECLARE @vjob_status varchar(50)
DECLARE @vjob_id int
--*
set @job=@JOB_ID
--*
set @vjob_status=(select case when ltrim(rtrim(@job_status))=103 then 1 else 0
end)
-->UPDATE dbo.ETL_JOB_EXECUTION
UPDATE Reporting.DBO.ETL_JOB_EXECUTION
SET EXECUTION_STOP=@ENDTIME,SUCCESSFUL_PROCESSING_IND=@vjob_status
WHERE JOB_ID=@job
--*
2.) sp_log_end_file_etl_job_hist_execution
USE [landing]
GO
/****** Object: StoredProcedure [dbo].
[sp_log_end_file_etl_job_hist_execution] Script Date: 09/16/2010 16:59:04
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--exec sp_log_end_file_etl_job_hist_execution 15,1,83,Land_Cognito,0
ALTER procedure [dbo].[sp_log_end_file_etl_job_hist_execution]
@file_id varchar(50)
,@vjob_status varchar(1)
,@vjob_id varchar(50)
,@target varchar(100)
,@error_rows varchar(50)
AS
--*
--Note etl user login needs min read access to all user db's for scan
--*
DECLARE @value int
DECLARE @SQLString nvarchar(500)
DECLARE @sql varchar(500)
DECLARE @variable_string nvarchar(500)
DECLARE @ParmDefinition nvarchar(500)
DECLARE @name varchar(50)
set @sql='
UPDATE Reporting.DBO.FILE_ETL_JOB_HIST
SET TARGET_ROWCOUNT=(SELECT COUNT(*) as CNT FROM '+@target+'
where file_id='+@file_id+' group by file_id)
,SUCCESSFUL_PROCESSING_IND='+@vjob_status+',ERROR_ROWCOUNT='+@error_rows
+'
WHERE FILE_ID='+@file_id+' AND JOB_ID='+@vjob_id+'
AND TARGET_NAME='''+@target+''''
exec (@sql)
/*
*/
3.) sp_log_end_file_etl_job_execution
USE [landing]
GO
/****** Object: StoredProcedure [dbo].[sp_log_end_etl_job_execution]
Script Date: 09/16/2010 17:00:19 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--exec sp_log_end_etl_job_execution 1,'5/24/2010',1,'cognito',0
ALTER procedure [dbo].[sp_log_end_etl_job_execution]
@JOB_ID varchar(255),
@ENDTIME datetime,
@JOB_STATUS varchar(255),
@TARGET varchar(100),
@ERROR_ROWS int
/*
@JOB_ID =job_id from ETL_JOB_EXECUTION
@ENDTIME =datetime of completion
@JOB_STATUS =job status as derived by success or failure
@TARGET varchar(100)=target table
@ERROR_ROWS =total error rows applied to target
*/
AS
--working variables
declare @job int
declare @TABLE_FINAL_ROW_COUNT varchar(50)
declare @cnt_sql varchar(2000)
DECLARE @vjob_status int
-->Fetch job_id
SET @JOB=@JOB_ID
-->
set @vjob_status=(select case when ltrim(rtrim(@job_status))=103 then 1 else 0
end)
-->TABLE LOGGING
-->UPDATE dbo.ETL_JOB_EXECUTION
UPDATE operations.dbo.ETL_JOB_EXECUTION
SET EXECUTION_STOP=@ENDTIME,SUCCESSFUL_PROCESSING_IND=@vjob_status
WHERE JOB_ID=@job
4.) sp_log_start_etl_job_execution
USE [landing]
GO
/****** Object: StoredProcedure [dbo].[sp_log_start_etl_job_execution]
Script Date: 09/16/2010 17:00:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[sp_log_start_etl_job_execution]
@SRCROWS int=null,
@FILE_ID int=null,
@WORKFLOW_JOB_ID varchar(255),
@STARTTIME datetime,
@TARGET varchar(100)=null,
@TABLE varchar(100)=null,
@MAPPING_NAME varchar(255),
@STAGE_CODE varchar(100),
@GROUP_ID int,
@JOB_ID_RETURN int OUTPUT
AS
/*
@SRCROWS: count of source input rows
@FILE_ID: file_id
@WORKFLOW_JOB_ID:
@STARTTIME: start time for workflow run
@TARGET: table target name
@TABLE: table source name
@MAPPING_NAME: etl mapping name
@STAGE_CODE: etl stage of execution
@GROUP_ID: master job (group) id, grouped step(s) of work
##RETURN VARS##
@JOB_ID: etl step execution job id, singular step of work
*/
--working variables
declare @job int
declare @TABLE_INITIAL_ROW_COUNT int
declare @cnt_sql varchar(2000)
-->INSERT dbo.ETL_JOB_EXECUTION
INSERT INTO operations.dbo.ETL_JOB_EXECUTION
(GROUP_ID,JOB_NAME,EXECUTION_START)
VALUES (@group_id,@workflow_job_id,@STARTTIME)
--*
SET @job=(SELECT JOB_ID FROM operations.dbo.ETL_JOB_EXECUTION
WHERE GROUP_ID=@group_id AND JOB_NAME=@WORKFLOW_JOB_ID and
EXECUTION_START=@STARTTIME)
-->TABLE LOGGING
IF NOT EXISTS (SELECT JOB_ID,TABLE_NAME FROM
operations.dbo.ETL_TABLE_PROCESSING WHERE JOB_ID=@job AND TABLE_NAME=@TARGET)
BEGIN
-->RETURN VARS
SELECT @JOB_ID_RETURN=@JOB
5.) sp_log_start_file_etl_job_execution
USE [landing]
GO
/****** Object: StoredProcedure [dbo].[sp_log_start_file_etl_job_execution]
Script Date: 09/16/2010 17:01:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[sp_log_start_file_etl_job_execution]
@SRCROWS int=null,
@file_id int=null,
@job_id varchar(255),
@STARTTIME datetime,
@TARGET varchar(100),
@MAPPING_NAME varchar(255)=NULL,
@STAGE_CODE varchar(100)=NULL
AS
/*
If file_id is null, then the logging procedure will skip file style logging
and execute as table style logging.
*/
--working variables
declare @group_type_id int
declare @group_id int
declare @job int
declare @TABLE_INITIAL_ROW_COUNT varchar(50)
declare @cnt_sql varchar(2000)
-->INSERT dbo.JOB_GROUP_TYPE
IF NOT EXISTS (SELECT GROUP_TYPE_CODE FROM operations.dbo.JOB_GROUP_TYPE WHERE
GROUP_TYPE_CODE=@job_id)
BEGIN
INSERT INTO operations.dbo.JOB_GROUP_TYPE
(GROUP_TYPE_CODE,GROUP_TYPE_DESCRIPTION)
VALUES (@job_id,'workflow run id')
END
--*
set @group_type_id=(SELECT GROUP_TYPE_CODE FROM operations.dbo.JOB_GROUP_TYPE
WHERE GROUP_TYPE_CODE=@job_id)
-->INSERT dbo.JOB_GROUP
IF NOT EXISTS (SELECT GROUP_TYPE_CODE FROM operations.dbo.JOB_GROUP WHERE
GROUP_TYPE_CODE=@group_type_id)
BEGIN
INSERT INTO operations.dbo.JOB_GROUP (GROUP_TYPE_CODE,EXECUTION_START)
VALUES (@group_type_id,@STARTTIME)
END
--*
set @group_id=(SELECT GROUP_ID FROM operations.dbo.JOB_GROUP WHERE
GROUP_TYPE_CODE=@group_type_id)
-->INSERT dbo.ETL_JOB_EXECUTION
IF NOT EXISTS (SELECT GROUP_ID FROM operations.dbo.ETL_JOB_EXECUTION WHERE
GROUP_ID=@group_id)
BEGIN
INSERT INTO operations.dbo.ETL_JOB_EXECUTION
(GROUP_ID,JOB_NAME,EXECUTION_START)
VALUES (@group_id,@job_id,@STARTTIME)
END
--*
set @job=(SELECT JOB_ID FROM operations.dbo.ETL_JOB_EXECUTION WHERE
GROUP_ID=@group_id)
--> INSERT dbo.INFORMATICA_JOB
IF NOT EXISTS (SELECT JOB_ID FROM operations.dbo.INFORMATICA_JOB WHERE
JOB_ID=@job)
BEGIN
INSERT INTO operations.dbo.INFORMATICA_JOB (JOB_ID,MAPPING_NAME)
VALUES (@job,@MAPPING_NAME)
END
-->FILE LOGGING
-->INSERT dbo.FILE_ETL_JOB_HIST
IF @STAGE_CODE IN ('PRELAND','LAND','KL_IN','KL_OUT')
BEGIN
IF NOT EXISTS (SELECT JOB_ID,FILE_ID,STAGE_CODE,TARGET_NAME FROM
operations.dbo.FILE_ETL_JOB_HIST WHERE FILE_ID=@file_id AND JOB_ID=@job AND
STAGE_CODE=@STAGE_CODE AND TARGET_NAME=@TARGET)
BEGIN
INSERT INTO operations.dbo.FILE_ETL_JOB_HIST
(FILE_ID,JOB_ID,STAGE_CODE,SOURCE_ROWCOUNT,TARGET_NAME)
VALUES (@file_id,@job,@STAGE_CODE,@SRCROWS,@TARGET)
END
END
-->TABLE LOGGING
-->INSERT ETL_TABLE_PROCESSING
IF @STAGE_CODE IN ('WH')
BEGIN
IF NOT EXISTS (SELECT JOB_ID,TABLE_NAME FROM
operations.dbo.ETL_TABLE_PROCESSING WHERE JOB_ID=@job AND TABLE_NAME=@TARGET)
BEGIN
SET @cnt_sql='
SET '+@TABLE_INITIAL_ROW_COUNT+'=(select COUNT(*) from '+@target+')'
exec (@cnt_sql)
INSERT INTO operations.dbo.ETL_TABLE_PROCESSING
(JOB_ID,TABLE_NAME,TABLE_INITIAL_ROW_COUNT)
VALUES (@job,@TARGET,@TABLE_INITIAL_ROW_COUNT)
END
END
6. ) sp_log_update_etl_job_execution
USE [landing]
GO
/****** Object: StoredProcedure [dbo].[sp_log_update_etl_job_execution]
Script Date: 09/16/2010 17:01:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[sp_log_update_etl_job_execution]
@UPDATE_ROWS INT=NULL,
@INSERT_ROWS INT=NULL,
@DELETE_ROWS INT=NULL,
@ERROR_ROWS INT=NULL,
@JOB_ID varchar(50),
@TARGET varchar(100)=NULL
AS
/*
@UPDATE_ROWS=number of updated rows on target
@INSERT_ROWS INT=number of inserted rows on target
@DELETE_ROWS INT=number of deleted rows on target
@ERROR_ROWS INT=number of error rows on target
@JOB_ID=job execution id on operations.dbo.ETL_TABLE_PROCESSING
@TARGET varchar(100)=target name
*/
--working variables
declare @job int
SET @JOB=@JOB_ID
-->TABLE LOGGING
-->UPDATE ETL_TABLE_PROCESSING
IF @INSERT_ROWS IS NOT NULL
BEGIN
UPDATE operations.dbo.ETL_TABLE_PROCESSING
SET NUM_RECORDS_INSERT=@INSERT_ROWS
WHERE TABLE_NAME =@TARGET AND JOB_ID=@JOB
END
IF @UPDATE_ROWS IS NOT NULL
BEGIN
UPDATE operations.dbo.ETL_TABLE_PROCESSING
SET NUM_RECORDS_UPDATE=@UPDATE_ROWS
WHERE TABLE_NAME =@TARGET AND JOB_ID=@JOB
END
7.) BUILD_KL_IN_VIEW
USE [landing]
GO
/****** Object: StoredProcedure [dbo].[BUILD_KL_IN_VIEW] Script Date:
09/16/2010 17:07:00 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--filter?
declare @filter nvarchar(100)
set @filter='inner join dbo.filter_250_zips on input_postal_code=zip_code'
--print @source_column_list
SET @nsql='CREATE VIEW v_KL_IN AS '+@source_column_list+''--'+@filter+''
print @nsql
EXECUTE (@nsql)