рд░рд┐рд▓реЗрд╢рдирд▓ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдбреЗрдЯрд╛ рдХрд╛рдврдгреНрдпрд╛рд╕рд╛рдареА, рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдиреЗрдХ рд╡рд┐рд╢реЗрд╖ рд╕рд╛рдзрдиреЗ рд╡рд╛рдкрд░рддрд╛рдд. рдХрд╛рд░реНрдпрд░рдд рд╕рд╛рдзрдирд╛рдВрдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓реЙрдЧ рдХреЗрд▓реА рдЖрд╣реЗ, рддреНрд░реБрдЯреА рдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд.
рддреНрд░реБрдЯреА рдЖрдврд│рд▓реНрдпрд╛рд╕, рд▓реЙрдЧрдордзреНрдпреЗ рдорд╛рд╣рд┐рддреА рдЕрд╕рддреЗ рдХреА рдЯреВрд▓ рдХрд╛рд░реНрдп рдкреВрд░реНрдг рдХрд░рдгреНрдпрд╛рдд рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реЗ рдЖрдгрд┐ рдХреЛрдгрддреЗ рдореЙрдбреНрдпреВрд▓ (рдмрд╣реБрддреЗрдХрджрд╛ java) рдХреБрдареЗ рдерд╛рдВрдмрд▓реЗ. рд╢реЗрд╡рдЯрдЪреНрдпрд╛ рдУрд│реАрдВрдордзреНрдпреЗ, рдЖрдкрдг рдбреЗрдЯрд╛рдмреЗрд╕ рддреНрд░реБрдЯреА рд╢реЛрдзреВ рд╢рдХрддрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЯреЗрдмрд▓ рдЕрджреНрд╡рд┐рддреАрдп рдХреА рдЙрд▓реНрд▓рдВрдШрди.
рдИрдЯреАрдПрд▓ рддреНрд░реБрдЯреА рдорд╛рд╣рд┐рддреА рдХрд╛рдп рднреВрдорд┐рдХрд╛ рдмрдЬрд╛рд╡рддреЗ рдпрд╛ рдкреНрд░рд╢реНрдирд╛рдЪреЗ рдЙрддреНрддрд░ рджреЗрдгреНрдпрд╛рд╕рд╛рдареА, рдореА рдЧреЗрд▓реНрдпрд╛ рджреЛрди рд╡рд░реНрд╖рд╛рдд рдЙрджреНрднрд╡рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рд╕рдорд╕реНрдпрд╛ рдореЛрдареНрдпрд╛ рднрд╛рдВрдбрд╛рд░рд╛рдд рд╡рд░реНрдЧреАрдХреГрдд рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд.
рдбреЗрдЯрд╛рдмреЗрд╕ рддреНрд░реБрдЯреАрдВрдордзреНрдпреЗ рдкреБрд░реЗрд╢реА рдЬрд╛рдЧрд╛ рдирд╕рдгреЗ, рдХрдиреЗрдХреНрд╢рди рдЧрдорд╛рд╡рдгреЗ, рд╕рддреНрд░ рд╣рдБрдЧ рдЗ.
рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯреАрдВрдордзреНрдпреЗ рдЯреЗрдмрд▓ рдХреА рдЪреЗ рдЙрд▓реНрд▓рдВрдШрди, рдЧреИрд░-рд╡реИрдз рд╡рд╕реНрддреВ, рд╡рд╕реНрддреВрдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдирд╕рдгреЗ рдЗрддреНрдпрд╛рджреАрдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рд╣реЛрддреЛ.
рд╢реЗрдбреНрдпреБрд▓рд░ рд╡реЗрд│реЗрд╡рд░ рд╕реБрд░реВ рд╣реЛрдК рд╢рдХрдд рдирд╛рд╣реА, рддреЗ рдЧреЛрдард╡реВ рд╢рдХрддреЗ рдЗ.
рд╕рд╛рдзреНрдпрд╛ рдЪреБрдХрд╛ рд╕реБрдзрд╛рд░рд╛рдпрд▓рд╛ рд╡реЗрд│ рд▓рд╛рдЧрдд рдирд╛рд╣реА. рдПрдХ рдЪрд╛рдВрдЧрд▓рд╛ рдИрдЯреАрдПрд▓ рддреНрдпрд╛рдкреИрдХреА рдмрд╣реБрддреЗрдХ рд╕реНрд╡рддрдГрдЪ рд╣рд╛рддрд╛рд│реВ рд╢рдХрддреЛ.
рдХреЙрдореНрдкреНрд▓реЗрдХреНрд╕ рдмрдЧреНрд╕ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдПрдХреНрд╕рдкреНрд▓реЛрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбреЗрдЯрд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реЛрдзрдгреЗ рдЖрдгрд┐ рдЪрд╛рдЪрдгреА рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдмрдирд╡рддреЗ. рдЕрдиреЗрдХрджрд╛ рдмрджрд▓ рдЪрд╛рдЪрдгреА рдЖрдгрд┐ рдЙрдкрдпреЛрдЬрди рдЧрд░рдЬ рд╣реЛрдК.
рддрд░, рд╕рд░реНрд╡ рд╕рдорд╕реНрдпрд╛рдВрдкреИрдХреА рдирд┐рдореНрдореНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗрдд. рд╕рд░реНрд╡ рдЪреБрдХрд╛рдВрдкреИрдХреА 48% рдЪреБрдХрд╛ рд╕рд╛рдзреНрдпрд╛ рдЪреБрдХрд╛ рдЖрд╣реЗрдд.
рд╕рд░реНрд╡ рд╕рдорд╕реНрдпрд╛рдВрдкреИрдХреА рдПрдХ рддреГрддреАрдпрд╛рдВрд╢ рд╕реНрдЯреЛрд░реЗрдЬ рд▓реЙрдЬрд┐рдХ рдХрд┐рдВрд╡рд╛ рдореЙрдбреЗрд▓ рдмрджрд▓рдгреНрдпрд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗрдд, рдпрд╛рдкреИрдХреА рдЕрд░реНрдзреНрдпрд╛рд╣реВрди рдЕрдзрд┐рдХ рддреНрд░реБрдЯреА рдЬрдЯрд┐рд▓ рдЖрд╣реЗрдд.
рдЖрдгрд┐ рд╕рд░реНрд╡ рд╕рдорд╕реНрдпрд╛рдВрдкреИрдХреА рдПрдХ рдЪрддреБрд░реНрдерд╛рдВрд╢рдкреЗрдХреНрд╖рд╛ рдХрдореА рдХрд╛рд░реНрдп рд╢реЗрдбреНрдпреВрд▓рд░рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗрдд, рддреНрдпрд╛рдкреИрдХреА 18% рд╕рд╛рдзреНрдпрд╛ рддреНрд░реБрдЯреА рдЖрд╣реЗрдд.
рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдЙрджреНрднрд╡рдгрд╛рд░реНтАНрдпрд╛ рд╕рд░реНрд╡ рддреНрд░реБрдЯреАрдВрдкреИрдХреА 22% рдЬрдЯрд┐рд▓ рдЖрд╣реЗрдд рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реБрдзрд╛рд░рдгреЗрд╕рд╛рдареА рд╕рд░реНрд╡рд╛рдд рдЬрд╛рд╕реНрдд рд▓рдХреНрд╖ рдЖрдгрд┐ рд╡реЗрд│ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рддреЗ рдЖрдард╡рдбреНрдпрд╛рддреВрди рдПрдХрджрд╛ рдШрдбрддрд╛рдд. рддрд░ рд╕рд╛рдзреНрдпрд╛ рдЪреБрдХрд╛ рдЬрд╡рд│рдкрд╛рд╕ рд░реЛрдЬрдЪ рдШрдбрддрд╛рдд.
рд╕рд╛рд╣рдЬрд┐рдХрдЪ, рд▓реЙрдЧрдордзреНрдпреЗ рддреНрд░реБрдЯреАрдЪреЗ рд╕реНрдерд╛рди рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рдЕрдЪреВрдХрдкрдгреЗ рд╕реВрдЪрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рд╕рдорд╕реНрдпреЗрдЪреЗ рд╕реНрддреНрд░реЛрдд рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдХрд┐рдорд╛рди рд╡реЗрд│ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реЗрд▓ рддреЗрд╡реНрд╣рд╛ рдИрдЯреАрдПрд▓ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдкреНрд░рднрд╛рд╡реА рд╣реЛрдИрд▓.
рдкреНрд░рднрд╛рд╡реА рджреЗрдЦрд░реЗрдЦ
рдИрдЯреАрдПрд▓ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпреЗрдордзреНрдпреЗ рдорд▓рд╛ рдХрд╛рдп рдкрд╣рд╛рдпрдЪреЗ рд╣реЛрддреЗ?
рдкреНрд░рд╛рд░рдВрдн рдХрд░рд╛ - рдЬреЗрд╡реНрд╣рд╛ рддреНрдпрд╛рдиреЗ рдХрд╛рдо рд╕реБрд░реВ рдХреЗрд▓реЗ,
рд╕реНрд░реЛрдд - рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд,
рд╕реНрддрд░ - рд╕реНрдЯреЛрд░реЗрдЬрдЪреА рдХреЛрдгрддреА рдкрд╛рддрд│реА рд▓реЛрдб рдХреЗрд▓реА рдЬрд╛рдд рдЖрд╣реЗ,
рдИрдЯреАрдПрд▓ рдЬреЙрдмрдЪреЗ рдирд╛рд╡ - рдЕрдкрд▓реЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛, рдЬреНрдпрд╛рдордзреНрдпреЗ рдЕрдиреЗрдХ рд▓рд╣рд╛рди рдкрд╛рдпрд▒реНрдпрд╛ рдЕрд╕рддрд╛рдд,
рдЪрд░рдг рдХреНрд░рдорд╛рдВрдХ - рдХреЗрд▓реНрдпрд╛ рдЬрд╛рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЪрд░рдгрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛,
рдкреНрд░рднрд╛рд╡рд┐рдд рдкрдВрдХреНрддреА - рдХрд┐рддреА рдбреЗрдЯрд╛рд╡рд░ рдЖрдзреАрдЪ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ,
рдХрд╛рд▓рд╛рд╡рдзреА рд╕реЗрдХрдВрдж - рдХрд┐рддреА рд╡реЗрд│ рд▓рд╛рдЧрддреЛ,
рд╕реНрдерд┐рддреА - рд╕рд░реНрд╡рдХрд╛рд╣реА рдареАрдХ рдЖрд╣реЗ рдХреА рдирд╛рд╣реА: рдареАрдХ рдЖрд╣реЗ, рддреНрд░реБрдЯреА, рдзрд╛рд╡рдгреЗ, рд╣рдБрдЧреНрд╕
рд╕рдВрджреЗрд╢ - рд╢реЗрд╡рдЯрдЪрд╛ рдпрд╢рд╕реНрд╡реА рд╕рдВрджреЗрд╢ рдХрд┐рдВрд╡рд╛ рддреНрд░реБрдЯреА рд╡рд░реНрдгрди.
рдиреЛрдВрджреАрдВрдЪреНрдпрд╛ рд╕реНрдерд┐рддреАрд╡рд░ рдЖрдзрд╛рд░рд┐рдд, рддреБрдореНрд╣реА рдИрдореЗрд▓ рдкрд╛рдард╡реВ рд╢рдХрддрд╛. рдЗрддрд░ рд╕рджрд╕реНрдпрд╛рдВрдирд╛ рдкрддреНрд░. рдЬрд░ рдХрд╛рд╣реА рддреНрд░реБрдЯреА рдирд╕рддреАрд▓ рддрд░ рдкрддреНрд░ рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА.
рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рддреНрд░реБрдЯреА рдЭрд╛рд▓реНрдпрд╛рд╕, рдШрдЯрдиреЗрдЪреЗ рд╕реНрдерд╛рди рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рд╕реВрдЪрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреЗ.
рдХрдзреАрдХрдзреА рдЕрд╕реЗ рд╣реЛрддреЗ рдХреА рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдЯреВрд▓ рд╕реНрд╡рддрдГрдЪ рдХрд╛рд░реНрдп рдХрд░рдд рдирд╛рд╣реА. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдереЗрдЯ рджреГрд╢реНрдп (рджреГрд╢реНрдп) рдХреЙрд▓ рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ, рдЬреНрдпрд╛рдЪреНрдпрд╛ рдЖрдзрд╛рд░рд╛рд╡рд░ рдЕрд╣рд╡рд╛рд▓ рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЖрд╣реЗ.
рдИрдЯреАрдПрд▓ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдЯреЗрдмрд▓
рдИрдЯреАрдПрд▓ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдПрдХ рдЯреЗрдмрд▓ рдЖрдгрд┐ рдПрдХ рджреГрд╢реНрдп рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ.
рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдкрдг рдкрд░рдд рдпреЗрдК рд╢рдХрддрд╛
DDL рдЯреЗрдмрд▓
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);
DDL рдкрд╣рд╛/рдЕрд╣рд╡рд╛рд▓
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 рдкреЕрд░рд╛рдореАрдЯрд░рд╕рд╣ рдПрдХрд╛рдЪ рд╡реЗрд│реА рд╕реБрд░реВ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ, рддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╕рддреНрд░ рдХреНрд░рдорд╛рдВрдХ рдХреЗрд╡рд│ рдкреВрд░реНрдг рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕ рдЬрд╛рд░реА рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.
- рд╕рд╛рдорд╛рдиреНрдп рдореЛрдбрдордзреНрдпреЗ, рддреБрдореНрд╣реА рд╕рдорд╛рди рдбреЗрдЯрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдВрддрд░ рдЪрд╛рд▓рд╡реВ рд╢рдХрдд рдирд╛рд╣реА
рдЯреЗрдмрд▓рд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдСрдкрд░реЗрд╢рдиреНрд╕ рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдЖрд╣реЗрдд:
- рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдИрдЯреАрдПрд▓ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ рд╕рддреНрд░ рдХреНрд░рдорд╛рдВрдХ рдорд┐рд│рд╡рдгреЗ
- рдЯреЗрдмрд▓рдордзреНрдпреЗ рд▓реЙрдЧ рдПрдВрдЯреНрд░реА рдШрд╛рд▓рд╛
- рдИрдЯреАрдПрд▓ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ рд╢реЗрд╡рдЯрдЪрд╛ рдпрд╢рд╕реНрд╡реА рд░реЗрдХреЙрд░реНрдб рдорд┐рд│рд╡рдгреЗ
рдУрд░реЕрдХрд▓ рдХрд┐рдВрд╡рд╛ рдкреЛрд╕реНрдЯрдЧреНрд░реЗрд╕ рд╕рд╛рд░рдЦреНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ, рд╣реА рдСрдкрд░реЗрд╢рдиреНрд╕ рдЕрдВрдЧрднреВрдд рдлрдВрдХреНрд╢рдиреНрд╕ рдореНрд╣рдгреВрди рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддрд╛рдд. sqlite рд▓рд╛ рдмрд╛рд╣реНрдп рдпрдВрддреНрд░рдгрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд рддреЗ
рдирд┐рд╖реНрдХрд░реНрд╖
рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЯреВрд▓реНрд╕рдордзреАрд▓ рддреНрд░реБрдЯреА рд╕рдВрджреЗрд╢ рдПрдХ рдореЛрдареА-рдорд╣рддреНрддреНрд╡рд╛рдЪреА рднреВрдорд┐рдХрд╛ рдмрдЬрд╛рд╡рддрд╛рдд. рдкрд░рдВрддреБ рд╕рдорд╕реНрдпреЗрдЪреЗ рдХрд╛рд░рдг рддреНрд╡рд░реАрдд рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рдВрдирд╛ рдЗрд╖реНрдЯрддрдо рдореНрд╣рдгрдгреЗ рдХрдареАрдг рдЖрд╣реЗ. рдЬреЗрд╡реНрд╣рд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреА рд╕рдВрдЦреНрдпрд╛ рд╢рдВрднрд░рдЪреНрдпрд╛ рдЬрд╡рд│ рдЬрд╛рддреЗ, рддреЗрд╡реНрд╣рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреЗрдЦрд░реЗрдЦ рдПрдХ рдЬрдЯрд┐рд▓ рдкреНрд░рдХрд▓реНрдкрд╛рдд рдмрджрд▓рддреЗ.
рд▓реЗрдЦ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рд╕рдорд╕реНрдпреЗрдЪреНрдпрд╛ рд╕рдВрднрд╛рд╡реНрдп рдирд┐рд░рд╛рдХрд░рдгрд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддреЛ. рд╕рдВрдкреВрд░реНрдг рд▓рд╣рд╛рди рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдЧрд┐рдЯрд▓реЕрдмрдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ
рд╕реНрддреНрд░реЛрдд: www.habr.com