рдХрдИ рд▓реЛрдЧ рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ, рдмрджрд▓рдиреЗ рдФрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓реЙрдЧ рдХреА рдЬрд╛рддреА рд╣реИ, рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдареАрдХ рдХреА рдЬрд╛рддреА рд╣реИрдВред
рддреНрд░реБрдЯрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд▓реЙрдЧ рдореЗрдВ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ рдХрд┐ рдЙрдкрдХрд░рдг рдХрд╛рд░реНрдп рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ рдФрд░ рдХреМрди рд╕реЗ рдореЙрдбреНрдпреВрд▓ (рдЕрдХреНрд╕рд░ рдЬрд╛рд╡рд╛) рдХрд╣рд╛рдБ рд░реБрдХреЗред рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ, рдЖрдк рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рддреНрд░реБрдЯрд┐ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдЕрджреНрд╡рд┐рддреАрдп рдХреБрдВрдЬреА рдЙрд▓реНрд▓рдВрдШрдиред
рдЗрд╕ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдИрдЯреАрдПрд▓ рддреНрд░реБрдЯрд┐ рдЬрд╛рдирдХрд╛рд░реА рдХреНрдпрд╛ рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддреА рд╣реИ, рдореИрдВрдиреЗ рдкрд┐рдЫрд▓реЗ рджреЛ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рд╣реБрдИ рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдПрдХ рдмрдбрд╝реЗ рднрдВрдбрд╛рд░ рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рд╣реИред
рдбреЗрдЯрд╛рдмреЗрд╕ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдерд╛рди рди рд╣реЛрдирд╛, рдХрдиреЗрдХреНрд╢рди рдЦреЛ рдЬрд╛рдирд╛, рд╕рддреНрд░ рд░реБрдХрд╛ рд╣реЛрдирд╛ рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди, рдЧреИрд░-рдорд╛рдиреНрдп рд╡рд╕реНрддреБрдПрдВ, рд╡рд╕реНрддреБрдУрдВ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдХрдореА рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд╢реЗрдбреНрдпреВрд▓рд░ рд╕рдордп рдкрд░ рдкреНрд░рд╛рд░рдВрдн рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд╣ рд░реБрдХ рд╕рдХрддрд╛ рд╣реИ, рдЖрджрд┐ред
рд╕рд╛рдзрд╛рд░рдг рдЧрд▓рддрд┐рдпрд╛рдБ рдареАрдХ рд╣реЛрдиреЗ рдореЗрдВ рджреЗрд░ рдирд╣реАрдВ рд▓рдЧрддреАред рдПрдХ рдЕрдЪреНрдЫрд╛ рдИрдЯреАрдПрд▓ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛ рдЕрдкрдиреЗ рдЖрдк рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред
рдЬрдЯрд┐рд▓ рдмрдЧ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ, рдбреЗрдЯрд╛ рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдЦреЛрдЬ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдмрдирд╛рддреЗ рд╣реИрдВред рдЕрдХреНрд╕рд░ рдкрд░рд┐рд╡рд░реНрддрди рдкрд░реАрдХреНрд╖рдг рдФрд░ рддреИрдирд╛рддреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рддреЛ, рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдЖрдзреА рд╕рдорд╕реНрдпрд╛рдПрдБ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рд╕рднреА рдЧрд▓рддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ 48% рд╕рд╛рдзрд╛рд░рдг рдЧрд▓рддрд┐рдпрд╛рдБ рд╣реИрдВред
рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рддрд┐рд╣рд╛рдИ рднрдВрдбрд╛рд░рдг рддрд░реНрдХ рдпрд╛ рдореЙрдбрд▓ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдЗрдирдореЗрдВ рд╕реЗ рдЖрдзреЗ рд╕реЗ рдЕрдзрд┐рдХ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЬрдЯрд┐рд▓ рд╣реИрдВред
рдФрд░ рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЪреМрдерд╛рдИ рд╕реЗ рднреА рдХрдо рд╕рдорд╕реНрдпрд╛рдПрдБ рдХрд╛рд░реНрдп рд╢реЗрдбреНрдпреВрд▓рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ 18% рд╕рд╛рдзрд╛рд░рдг рддреНрд░реБрдЯрд┐рдпрд╛рдБ рд╣реИрдВред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╕рднреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ 22% рдЬрдЯрд┐рд▓ рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рдФрд░ рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╡реЗ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рд▓рдЧрднрдЧ рдПрдХ рдмрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВред рдЬрдмрдХрд┐ рд╕рд╛рдзрд╛рд░рдг рдЧрд▓рддрд┐рдпрд╛рдБ рд▓рдЧрднрдЧ рд╣рд░ рджрд┐рди рд╣реЛрддреА рд╣реИрдВред
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдИрдЯреАрдПрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рддрдм рдкреНрд░рднрд╛рд╡реА рд╣реЛрдЧреА рдЬрдм рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕реНрдерд╛рди рд▓реЙрдЧ рдореЗрдВ рдпрдерд╛рд╕рдВрднрд╡ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕реНрд░реЛрдд рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рд╕рдордп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдкреНрд░рднрд╛рд╡реА рдирд┐рдЧрд░рд╛рдиреА
рдореИрдВ рдИрдЯреАрдПрд▓ рдирд┐рдЧрд░рд╛рдиреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреНрдпрд╛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛?
рд╢реБрд░реБрдЖрдд - рдЬрдм рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╛рдо рд╢реБрд░реВ рдХрд┐рдпрд╛,
рд╕реНрд░реЛрдд - рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд,
рдкрд░рдд - рдХрд┐рд╕ рд╕реНрддрд░ рдХрд╛ рднрдВрдбрд╛рд░рдг рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ,
рдИрдЯреАрдПрд▓ рдиреМрдХрд░реА рдХрд╛ рдирд╛рдо - рдЕрдкрд▓реЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдЫреЛрдЯреЗ рдЪрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВ,
рдЪрд░рдг рд╕рдВрдЦреНрдпрд╛ - рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдЪрд░рдг рдХреА рд╕рдВрдЦреНрдпрд╛,
рдкреНрд░рднрд╛рд╡рд┐рдд рдкрдВрдХреНрддрд┐рдпрд╛рдБ - рдХрд┐рддрдирд╛ рдбреЗрдЯрд╛ рдкрд╣рд▓реЗ рд╣реА рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ,
рдЕрд╡рдзрд┐ рд╕реЗрдХ - рдЗрд╕рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ,
рд╕реНрдерд┐рддрд┐ - рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ рдпрд╛ рдирд╣реАрдВ: рдареАрдХ рд╣реИ, рддреНрд░реБрдЯрд┐, рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд░реБрдХрд╛ рд╣реБрдЖ рд╣реИ
рд╕рдВрджреЗрд╢ - рдЕрдВрддрд┐рдо рд╕рдлрд▓ рд╕рдВрджреЗрд╢ рдпрд╛ рддреНрд░реБрдЯрд┐ рд╡рд┐рд╡рд░рдгред
рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдПрдХ рдИрдореЗрд▓ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдиреНрдп рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдкрддреНрд░. рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рди рд╣реЛ рддреЛ рдкрддреНрд░ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдШрдЯрдирд╛ рдХрд╛ рд╕реНрдерд╛рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХрднреА-рдХрднреА рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдЯреВрд▓ рд╣реА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реАрдзреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рджреГрд╢реНрдп (рджреГрд╢реНрдп) рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред
рдИрдЯреАрдПрд▓ рдирд┐рдЧрд░рд╛рдиреА рддрд╛рд▓рд┐рдХрд╛
рдИрдЯреАрдПрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдФрд░ рдПрдХ рджреГрд╢реНрдп рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╡рд╛рдкрд╕ рд▓реМрдЯ рд╕рдХрддреЗ рд╣реИрдВ
рдбреАрдбреАрдПрд▓ рдЯреЗрдмрд▓
CREATE TABLE UTL_JOB_STATUS (
/* Table for logging of job execution log. Important that the job has the steps ETL_START and ETL_END or ETL_ERROR */
UTL_JOB_STATUS_ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
SID INTEGER NOT NULL DEFAULT -1, /* Session Identificator. Unique for every Run of job */
LOG_DT INTEGER NOT NULL DEFAULT 0, /* Date time */
LOG_D INTEGER NOT NULL DEFAULT 0, /* Date */
JOB_NAME TEXT NOT NULL DEFAULT 'N/A', /* Job name like JOB_STG2DM_GEO */
STEP_NAME TEXT NOT NULL DEFAULT 'N/A', /* ETL_START, ... , ETL_END/ETL_ERROR */
STEP_DESCR TEXT, /* Description of task or error message */
UNIQUE (SID, JOB_NAME, STEP_NAME)
);
INSERT INTO UTL_JOB_STATUS (UTL_JOB_STATUS_ID) VALUES (-1);
рдбреАрдбреАрдПрд▓ рджреЗрдЦреЗрдВ/рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВ
CREATE VIEW IF NOT EXISTS UTL_JOB_STATUS_V
AS /* Content: Package Execution Log for last 3 Months. */
WITH SRC AS (
SELECT LOG_D,
LOG_DT,
UTL_JOB_STATUS_ID,
SID,
CASE WHEN INSTR(JOB_NAME, 'FTP') THEN 'TRANSFER' /* file transfer */
WHEN INSTR(JOB_NAME, 'STG') THEN 'STAGE' /* stage */
WHEN INSTR(JOB_NAME, 'CLS') THEN 'CLEANSING' /* cleansing */
WHEN INSTR(JOB_NAME, 'DIM') THEN 'DIMENSION' /* dimension */
WHEN INSTR(JOB_NAME, 'FCT') THEN 'FACT' /* fact */
WHEN INSTR(JOB_NAME, 'ETL') THEN 'STAGE-MART' /* data mart */
WHEN INSTR(JOB_NAME, 'RPT') THEN 'REPORT' /* report */
ELSE 'N/A' END AS LAYER,
CASE WHEN INSTR(JOB_NAME, 'ACCESS') THEN 'ACCESS LOG' /* source */
WHEN INSTR(JOB_NAME, 'MASTER') THEN 'MASTER DATA' /* source */
WHEN INSTR(JOB_NAME, 'AD-HOC') THEN 'AD-HOC' /* source */
ELSE 'N/A' END AS SOURCE,
JOB_NAME,
STEP_NAME,
CASE WHEN STEP_NAME='ETL_START' THEN 1 ELSE 0 END AS START_FLAG,
CASE WHEN STEP_NAME='ETL_END' THEN 1 ELSE 0 END AS END_FLAG,
CASE WHEN STEP_NAME='ETL_ERROR' THEN 1 ELSE 0 END AS ERROR_FLAG,
STEP_NAME || ' : ' || STEP_DESCR AS STEP_LOG,
SUBSTR( SUBSTR(STEP_DESCR, INSTR(STEP_DESCR, '***')+4), 1, INSTR(SUBSTR(STEP_DESCR, INSTR(STEP_DESCR, '***')+4), '***')-2 ) AS AFFECTED_ROWS
FROM UTL_JOB_STATUS
WHERE datetime(LOG_D, 'unixepoch') >= date('now', 'start of month', '-3 month')
)
SELECT JB.SID,
JB.MIN_LOG_DT AS START_DT,
strftime('%d.%m.%Y %H:%M', datetime(JB.MIN_LOG_DT, 'unixepoch')) AS LOG_DT,
JB.SOURCE,
JB.LAYER,
JB.JOB_NAME,
CASE
WHEN JB.ERROR_FLAG = 1 THEN 'ERROR'
WHEN JB.ERROR_FLAG = 0 AND JB.END_FLAG = 0 AND strftime('%s','now') - JB.MIN_LOG_DT > 0.5*60*60 THEN 'HANGS' /* half an hour */
WHEN JB.ERROR_FLAG = 0 AND JB.END_FLAG = 0 THEN 'RUNNING'
ELSE 'OK'
END AS STATUS,
ERR.STEP_LOG AS STEP_LOG,
JB.CNT AS STEP_CNT,
JB.AFFECTED_ROWS AS AFFECTED_ROWS,
strftime('%d.%m.%Y %H:%M', datetime(JB.MIN_LOG_DT, 'unixepoch')) AS JOB_START_DT,
strftime('%d.%m.%Y %H:%M', datetime(JB.MAX_LOG_DT, 'unixepoch')) AS JOB_END_DT,
JB.MAX_LOG_DT - JB.MIN_LOG_DT AS JOB_DURATION_SEC
FROM
( SELECT SID, SOURCE, LAYER, JOB_NAME,
MAX(UTL_JOB_STATUS_ID) AS UTL_JOB_STATUS_ID,
MAX(START_FLAG) AS START_FLAG,
MAX(END_FLAG) AS END_FLAG,
MAX(ERROR_FLAG) AS ERROR_FLAG,
MIN(LOG_DT) AS MIN_LOG_DT,
MAX(LOG_DT) AS MAX_LOG_DT,
SUM(1) AS CNT,
SUM(IFNULL(AFFECTED_ROWS, 0)) AS AFFECTED_ROWS
FROM SRC
GROUP BY SID, SOURCE, LAYER, JOB_NAME
) JB,
( SELECT UTL_JOB_STATUS_ID, SID, JOB_NAME, STEP_LOG
FROM SRC
WHERE 1 = 1
) ERR
WHERE 1 = 1
AND JB.SID = ERR.SID
AND JB.JOB_NAME = ERR.JOB_NAME
AND JB.UTL_JOB_STATUS_ID = ERR.UTL_JOB_STATUS_ID
ORDER BY JB.MIN_LOG_DT DESC, JB.SID DESC, JB.SOURCE;
SQL рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдирдпрд╛ рд╕рддреНрд░ рдХреНрд░рдорд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ
SELECT SUM (
CASE WHEN start_job.JOB_NAME IS NOT NULL AND end_job.JOB_NAME IS NULL /* existed job finished */
AND NOT ( 'y' = 'n' ) /* force restart PARAMETER */
THEN 1 ELSE 0
END ) AS IS_RUNNING
FROM
( SELECT 1 AS dummy FROM UTL_JOB_STATUS WHERE sid = -1) d_job
LEFT OUTER JOIN
( SELECT JOB_NAME, SID, 1 AS dummy
FROM UTL_JOB_STATUS
WHERE JOB_NAME = 'RPT_ACCESS_LOG' /* job name PARAMETER */
AND STEP_NAME = 'ETL_START'
GROUP BY JOB_NAME, SID
) start_job /* starts */
ON d_job.dummy = start_job.dummy
LEFT OUTER JOIN
( SELECT JOB_NAME, SID
FROM UTL_JOB_STATUS
WHERE JOB_NAME = 'RPT_ACCESS_LOG' /* job name PARAMETER */
AND STEP_NAME in ('ETL_END', 'ETL_ERROR') /* stop status */
GROUP BY JOB_NAME, SID
) end_job /* ends */
ON start_job.JOB_NAME = end_job.JOB_NAME
AND start_job.SID = end_job.SID
рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:
- рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╢реБрд░реБрдЖрдд рдФрд░ рдЕрдВрдд рдореЗрдВ ETL_START рдФрд░ ETL_END рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
- рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЙрд╕рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде ETL_ERROR рдЪрд░рдг рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
- рд╕рдВрд╕рд╛рдзрд┐рдд рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рддрд╛рд░рд╛рдВрдХрди рдХреЗ рд╕рд╛рде
- рдПрдХ рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ Force_restart=y рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рд╕рддреНрд░ рд╕рдВрдЦреНрдпрд╛ рдХреЗрд╡рд▓ рдкреВрд░реНрдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЬрд╛рд░реА рдХреА рдЬрд╛рддреА рд╣реИ
- рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдореЗрдВ, рдЖрдк рд╕рдорд╛рди рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ
рдХрд┐рд╕реА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЪрд╛рд▓рди рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
- рдЪрд▓ рд░рд╣реА рдИрдЯреАрдПрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рддреНрд░ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
- рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдбрд╛рд▓реЗрдВ
- рдИрдЯреАрдПрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдлрд▓ рд░рд┐рдХреЙрд░реНрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛
Oracle рдпрд╛ Postgres рдЬреИрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ, рдЗрди рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрд╕рдХреНрд▓рд╛рдЗрдЯ рдХреЛ рдПрдХ рдмрд╛рд╣рд░реА рддрдВрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕рдХреА
рдЙрддреНрдкрд╛рджрди
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЯреВрд▓ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдПрдХ рдмрд╣реБрдд рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рддреБрд░рдВрдд рдвреВрдВрдврдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЗрд╖реНрдЯрддрдо рдХрд╣рдирд╛ рдХрдард┐рди рд╣реИред рдЬрдм рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реМ рдХреЗ рдХрд░реАрдм рдкрд╣реБрдВрдЪ рдЬрд╛рддреА рд╣реИ, рддреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рдЧрд░рд╛рдиреА рдПрдХ рдЬрдЯрд┐рд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИред
рдЖрд▓реЗрдЦ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╕рдВрдкреВрд░реНрдг рдЫреЛрдЯрд╛ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЧрд┐рдЯрд▓реИрдм рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ
рд╕реНрд░реЛрдд: www.habr.com