You are on page 1of 9

1.

) 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

--exec sp_LOG_end_etl_job_execution 38,2006,'2010-03-16 00:00:00',103


ALTER procedure [dbo].[sp_log_end_file_etl_job_execution]
@TARGET varchar(100)
,@JOB_ID varchar(50)
,@ENDTIME datetime
,@JOB_STATUS varchar(50)
,@ERROR_ROWS int
AS

--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
--*

SET @cursor = CURSOR FOR


Select distinct
A.FILE_ID,A.JOB_ID,A.TARGET_NAME
from Reporting.dbo.FILE_ETL_JOB_HIST A inner join Reporting.DBO.
[FILE_HIST] B
ON A.FILE_ID=B.FILE_ID WHERE A.TARGET_NAME=@TARGET
AND A.job_id=@job
order by
A.FILE_ID
OPEN @cursor

FETCH NEXT FROM @cursor INTO @FILE_ID,@vJOB_ID,@TARGET

WHILE @@FETCH_STATUS <> -1


BEGIN
--*
set @TABLE=@TARGET
EXEC dbo.sp_log_end_file_etl_job_hist_execution
@file_id,@vjob_status,@vjob_id,@TABLE,@ERROR_ROWS
-- ============
-- end cursor body
-- ============
FETCH NEXT FROM @cursor INTO @File_id, @vjob_id,@TARGET
END
CLOSE @cursor
DEALLOCATE @cursor

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)

--select top 10 * from FILE_ETL_JOB_HIST

/*
*/

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

SET @cnt_sql='SET '+@TABLE_FINAL_ROW_COUNT+'=(select COUNT(*) from


'+@target+')'
exec(@cnt_sql)
UPDATE operations.dbo.ETL_TABLE_PROCESSING
SET TABLE_FINAL_ROW_COUNT=@TABLE_FINAL_ROW_COUNT,
ERROR_ROW_COUNT=@ERROR_ROWS,
SUCCESSFUL_PROCESSING_IND=@vjob_status
WHERE TABLE_NAME=@TARGET and JOB_ID=@job

-->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)

--> INSERT dbo.INFORMATICA_JOB


INSERT INTO operations.dbo.INFORMATICA_JOB
(JOB_ID,WORKFLOW_RUN_ID,MAPPING_NAME)
VALUES (@JOB,@workflow_job_id,@MAPPING_NAME)

-->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

INSERT INTO operations.dbo.ETL_TABLE_PROCESSING


(JOB_ID,TABLE_NAME,TABLE_INITIAL_ROW_COUNT)
VALUES (@job,@TARGET,@SRCROWS)
END

-->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

IF @DELETE_ROWS IS NOT NULL


BEGIN
UPDATE operations.dbo.ETL_TABLE_PROCESSING
SET NUM_RECORDS_DELETE=@DELETE_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

--exec BUILD_KL_IN_VIEW 1,'KL_3_5_IN'


ALTER PROCEDURE [dbo].[BUILD_KL_IN_VIEW]
@batch_id bigint ,@sql_select_desc varchar(9)=NULL
AS
--

IF NULLIF(@sql_select_desc, '') IS NULL


BEGIN
SET @sql_select_desc='KL_3_5_IN'
END
--
IF EXISTS (SELECT * FROM landing.sys.views WHERE object_id =
OBJECT_ID(N'[landing].[dbo].[v_KL_IN]'))
DROP VIEW [dbo].[v_KL_IN]
-- dynamic sql variables
DECLARE @nsql VARCHAR(MAX)
, @sql VARCHAR(MAX)
, @sql_error INT
, @proc_error INT
, @row_count INT
, @crlf CHAR(2)
, @quote CHAR(1)
, @tab CHAR(1)
, @lkpsql varchar(max)

SET @crlf = CHAR(13) + CHAR(10)


SET @quote = CHAR(39)
SET @tab = CHAR(9)
SET @lkpsql=(select SQLSELECT FROM operations..etl_dynamic_sqlcall where
sql_select_desc=@sql_select_desc)
DECLARE @source_column_list VARCHAR(MAX)
, @source_pivot_list VARCHAR(MAX)

SET @source_column_list = ''

SELECT @source_column_list = @source_column_list


+ @crlf + @tab + ' UNION ALL ' +
'SELECT '+@lkpsql+' FROM [' + batch_table + ']'
FROM
(Select [table_name] as batch_table from
operations.dbo.ETL_PARAM_KL_SOURCE_TABLES
)sub

SET @source_column_list = SUBSTRING(@source_column_list, 15,


LEN(@source_column_list))

--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)

You might also like