เจฌเจนเฉเจค เจธเจพเจฐเฉ เจฐเจฟเจฒเฉเจธเจผเจจเจฒ เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ เจกเฉเจเจพ เจจเฉเฉฐ เจเจเจธเจเจฐเฉเจเจ เจเจฐเจจ, เจฌเจฆเจฒเจฃ เจ เจคเฉ เจฒเฉเจก เจเจฐเจจ เจฒเจ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจฌเจฃเจพเจเจฃ เจฒเจ เจตเจฟเจธเจผเฉเจธเจผ เจธเจพเจงเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเจจเฅค เจเฉฐเจฎ เจเจฐเจจ เจตเจพเจฒเฉ เจธเจพเจงเจจเจพเจ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฒเฉเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ, เจเจฒเจคเฉเจเจ เจ เฉเจ เจเฉเจคเฉเจเจ เจเจพเจเจฆเฉเจเจ เจนเจจ.
เจเจฟเจธเฉ เจเจฒเจคเฉ เจฆเฉ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจฒเฉเจ เจตเจฟเฉฑเจ เจเจพเจฃเจเจพเจฐเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ เจเจฟ เจเฉเจฒ เจเฉฐเจฎ เจจเฉเฉฐ เจชเฉเจฐเจพ เจเจฐเจจ เจตเจฟเฉฑเจ เจ เจธเจซเจฒ เจฐเจฟเจนเจพ เจ เจคเฉ เจเจฟเจนเฉเฉ เจฎเฉเจกเฉเจเจฒ (เจ เจเจธเจฐ java) เจเจฟเฉฑเจฅเฉ เจฐเฉเจเฉเฅค เจเจเจฐเฉ เจฒเจพเจเจจเจพเจ เจตเจฟเฉฑเจ, เจคเฉเจธเฉเจ เจเฉฑเจ เจกเฉเจเจพเจฌเฉเจธ เจเจฒเจคเฉ เจฒเฉฑเจญ เจธเจเจฆเฉ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจเฉฑเจ เจธเจพเจฐเจฃเฉ เจตเจฟเจฒเฉฑเจเจฃ เจเฉเฉฐเจเฉ เจฆเฉ เจเจฒเฉฐเจเจฃเจพ.
เจเจธ เจธเจตเจพเจฒ เจฆเจพ เจเจตเจพเจฌ เจฆเฉเจฃ เจฒเจ เจเจฟ เจเจเฉเจเจฒ เจเจฒเจคเฉ เจเจพเจฃเจเจพเจฐเฉ เจเฉ เจญเฉเจฎเจฟเจเจพ เจจเจฟเจญเจพเจเจเจฆเฉ เจนเฉ, เจฎเฉเจ เจเจนเจจเจพเจ เจธเจพเจฐเฉเจเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจจเฉเฉฐ เจธเจผเฉเจฐเฉเจฃเฉเจฌเฉฑเจง เจเฉเจคเจพ เจนเฉ เจเฉ เจชเจฟเจเจฒเฉ เจฆเฉ เจธเจพเจฒเจพเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจตเฉฑเจกเฉ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจตเจฟเฉฑเจ เจเจเจเจ เจนเจจเฅค
เจกเจพเจเจพเจฌเฉเจธ เจฆเฉเจเจ เจคเจฐเฉเฉฑเจเฉเจเจ เจตเจฟเฉฑเจ เจเจพเจซเจผเฉ เจฅเจพเจ เจจเจพ เจนเฉเจฃเจพ, เจเฉเจจเฉเจเจธเจผเจจ เจเฉเจเจเจฃเจพ, เจธเฉเจธเจผเจจ เจนเฉฐเจ, เจเจฆเจฟ เจธเจผเจพเจฎเจฒ เจนเจจเฅค
เจฒเจพเจเจผเฉเจเจฒ เจเจฒเจคเฉเจเจ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจนเจจ เจเจฟเจตเฉเจ เจเจฟ เจเฉเจฌเจฒ เจเฉเฉฐเจเฉเจเจ เจฆเฉ เจเจฒเฉฐเจเจฃเจพ, เจเฉเจฐ-เจตเฉเจง เจตเจธเจคเฉเจเจ, เจตเจธเจคเฉเจเจ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจฆเฉ เจเจพเจ, เจเจฆเจฟเฅค
เจธเจผเจกเจฟเจเจฒเจฐ เจธเจฎเฉเจ 'เจคเฉ เจธเจผเฉเจฐเฉ เจจเจนเฉเจ เจนเฉ เจธเจเจฆเจพ, เจเจน เจเฉฐเจฎ เจธเจเจฆเจพ เจนเฉ, เจเจฆเจฟเฅค
เจธเจงเจพเจฐเจฃ เจเจฒเจคเฉเจเจ เจจเฉเฉฐ เจ เฉเจ เจเจฐเจจ เจตเจฟเฉฑเจ เจฆเฉเจฐ เจจเจนเฉเจ เจฒเฉฑเจเจฆเฉเฅค เจเฉฑเจ เจเฉฐเจเจพ เจเจเฉเจเจฒ เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจฌเจนเฉเจคเจฟเจเจ เจจเฉเฉฐ เจเจชเจฃเฉ เจเจช เจธเฉฐเจญเจพเจฒ เจธเจเจฆเจพ เจนเฉเฅค
เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจฌเฉฑเจ เจกเฉเจเจพ เจธเจฐเฉเจคเจพเจ เจฆเฉ เจชเฉเจเฉเจฒ เจเจฐเจจ เจฒเจ, เจกเฉเจเจพ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจจเฉเฉฐ เจเฉเจเจฃ เจ เจคเฉ เจเฉเจธเจ เจเจฐเจจ เจฒเจ เจเจผเจฐเฉเจฐเฉ เจฌเจฃเจพเจเจเจฆเฉ เจนเจจเฅค เจ เจเจธเจฐ เจชเจฐเจฟเจตเจฐเจคเจจ เจเจพเจเจ เจ เจคเฉ เจคเฉเจจเจพเจคเฉ เจฆเฉ เจฒเฉเฉ เจตเฉฑเจฒ เจ เจเจตเจพเจ เจเจฐเจฆเจพ เจนเฉเฅค
เจเจธ เจฒเจ, เจธเจพเจฐเฉเจเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจตเจฟเฉฑเจเฉเจ เจ
เฉฑเจงเฉเจเจ เจกเฉเจเจพเจฌเฉเจธ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเจจ. เจธเจพเจฐเฉเจเจ เจเจฒเจคเฉเจเจ เจตเจฟเฉฑเจเฉเจ 48% เจธเจงเจพเจฐเจจ เจเจฒเจคเฉเจเจ เจนเจจเฅค
เจธเจพเจฐเฉเจเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจฆเจพ เจคเฉเจเจพ เจนเจฟเฉฑเจธเจพ เจธเจเฉเจฐเฉเจเจผ เจคเจฐเจ เจเจพเจ เจฎเจพเจกเจฒ เจจเฉเฉฐ เจฌเจฆเจฒเจฃ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเฉ, เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจ
เฉฑเจงเฉ เจคเฉเจ เจตเฉฑเจง เจคเจฐเฉเจเฉเจเจ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจนเจจเฅค
เจ เจคเฉ เจธเจพเจฐเฉเจเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจฆเฉ เจเฉฑเจ เจเฉเจฅเจพเจ เจคเฉเจ เจตเฉ เจเฉฑเจ เจเจพเจฐเจ เจ เจจเฉเจธเฉเจเฉ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเจจ, เจเจฟเจจเฉเจนเจพเจ เจตเจฟเฉฑเจเฉเจ 18% เจธเจงเจพเจฐเจจ เจเจฒเจคเฉเจเจ เจนเจจเฅค
เจเจฎ เจคเฉเจฐ 'เจคเฉ, เจนเฉเจฃ เจตเจพเจฒเฉเจเจ เจธเจพเจฐเฉเจเจ เจเจฒเจคเฉเจเจ เจตเจฟเฉฑเจเฉเจ 22% เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจนเฉเฉฐเจฆเฉเจเจ เจนเจจ, เจ เจคเฉ เจเจนเจจเจพเจ เจฆเฉ เจธเฉเจงเจพเจฐ เจฒเจ เจธเจญ เจคเฉเจ เจตเฉฑเจง เจงเจฟเจเจจ เจ เจคเฉ เจธเจฎเฉเจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค เจเจน เจนเจซเจผเจคเฉ เจตเจฟเฉฑเจ เจเฉฑเจ เจตเจพเจฐ เจนเฉเฉฐเจฆเฉ เจนเจจ. เจเจฆเฉเจ เจเจฟ เจธเจพเจงเจพเจฐเจจ เจเจฒเจคเฉเจเจ เจฒเจเจญเจ เจนเจฐ เจฐเฉเจเจผ เจนเฉเฉฐเจฆเฉเจเจ เจนเจจเฅค
เจเจน เจธเจชเฉฑเจธเจผเจ เจนเฉ เจเจฟ ETL เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจฆเฉ เจจเจฟเจเจฐเจพเจจเฉ เจเจฆเฉเจ เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉ เจนเฉเจตเฉเจเฉ เจเจฆเฉเจ เจฒเฉเจ เจตเจฟเฉฑเจ เจเจฒเจคเฉ เจฆเฉ เจธเจฅเจฟเจคเฉ เจจเฉเฉฐ เจเจฟเฉฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ เจธเจเฉ เจธเจนเฉ เจขเฉฐเจ เจจเจพเจฒ เจฆเจฐเจธเจพเจเจ เจเจฟเจ เจนเฉ เจ เจคเฉ เจธเจฎเฉฑเจธเจฟเจ เจฆเฉ เจธเจฐเฉเจค เจจเฉเฉฐ เจฒเฉฑเจญเจฃ เจฒเจ เจเฉฑเจเฉ-เจเฉฑเจ เจธเจฎเจพเจ เจฒเฉเฉเฉเจเจฆเจพ เจนเฉเฅค
เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉ เจจเจฟเจเจฐเจพเจจเฉ
เจฎเฉเจ เจเจเฉเจเจฒ เจจเจฟเจเจฐเจพเจจเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจตเจฟเฉฑเจ เจเฉ เจฆเฉเจเจฃเจพ เจเจพเจนเฉเฉฐเจฆเจพ เจธเฉ?
เจธเจผเฉเจฐเฉ เจเจฐเฉ - เจเจฆเฉเจ เจเจธเจจเฉ เจเฉฐเจฎ เจธเจผเฉเจฐเฉ เจเฉเจคเจพ,
เจธเจฐเฉเจค - เจกเจพเจเจพ เจธเจฐเฉเจค,
เจฒเฉเจ
เจฐ - เจธเจเฉเจฐเฉเจ เจฆเจพ เจเจฟเจนเฉเจพ เจชเฉฑเจงเจฐ เจฒเฉเจก เจเฉเจคเจพ เจเจพ เจฐเจฟเจนเจพ เจนเฉ,
ETL เจจเฉเจเจฐเฉ เจฆเจพ เจจเจพเจฎ - เจ
เจชเจฒเฉเจก เจชเฉเจฐเจเจฟเจฐเจฟเจ, เจเจฟเจธ เจตเจฟเฉฑเจ เจฌเจนเฉเจค เจธเจพเจฐเฉ เจเฉเจเฉ เจเจฆเจฎ เจนเฉเฉฐเจฆเฉ เจนเจจ,
เจธเจเฉเจช เจจเฉฐเจฌเจฐ - เจเฉเจคเฉ เจเจพ เจฐเจนเฉ เจเจฆเจฎเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ,
เจชเฉเจฐเจญเจพเจตเจฟเจค เจเจคเจพเจฐเจพเจ - เจเจฟเฉฐเจจเจพ เจกเฉเจเจพ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจชเฉเจฐเฉเจธเฉเจธ เจเฉเจคเจพ เจเจพ เจเฉเฉฑเจเจพ เจนเฉ,
เจฎเจฟเจเจฆ เจธเจเจฟเฉฐเจ - เจเจฟเฉฐเจจเจพ เจธเจฎเจพเจ เจฒเฉฑเจเจฆเจพ เจนเฉ,
เจธเจฅเจฟเจคเฉ - เจญเจพเจตเฉเจ เจธเจญ เจเฉเจ เจ เฉเจ เจนเฉ เจเจพเจ เจจเจนเฉเจ: เจ เฉเจ เจนเฉ, เจเจฒเจคเฉ, เจเฉฑเจฒเจฃเจพ, เจนเฉเจเจเจธ
เจธเฉเจจเฉเจนเจพ - เจเจเจฐเฉ เจธเจซเจฒ เจธเฉเจจเฉเจนเจพ เจเจพเจ เจเจฒเจคเฉ เจตเจฐเจฃเจจเฅค
เจฐเจฟเจเจพเจฐเจกเจพเจ เจฆเฉ เจธเจฅเจฟเจคเฉ เจฆเฉ เจเจงเจพเจฐ 'เจคเฉ, เจคเฉเจธเฉเจ เจเฉฑเจ เจเจฎเฉเจฒ เจญเฉเจ เจธเจเจฆเฉ เจนเฉเฅค เจนเฉเจฐ เจฎเฉเจเจฌเจฐเจพเจ เจจเฉเฉฐ เจชเฉฑเจคเจฐ. เจเฉ เจเฉเจ เจเจฒเจคเฉ เจจเจนเฉเจ เจนเฉ, เจคเจพเจ เจเจฟเฉฑเจ เฉ เจเจผเจฐเฉเจฐเฉ เจจเจนเฉเจ เจนเฉ.
เจเจธ เจคเจฐเฉเจนเจพเจ, เจเจฒเจคเฉ เจฆเฉ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจเจเจจเจพ เจฆเฉ เจธเจฅเจฟเจคเฉ เจธเจชเจธเจผเจ เจคเฉเจฐ เจคเฉ เจฆเจฐเจธเจพเจ เจเจพเจเจฆเฉ เจนเฉ.
เจเจ เจตเจพเจฐ เจ เจเจฟเจนเจพ เจนเฉเฉฐเจฆเจพ เจนเฉ เจเจฟ เจจเจฟเจเจฐเจพเจจเฉ เจธเฉฐเจฆ เจเจชเจฃเฉ เจเจช เจเฉฐเจฎ เจจเจนเฉเจ เจเจฐเจฆเจพ. เจเจธ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ เจเฉฑเจ เจฆเฉเจฐเจฟเจธเจผ (เจฆเฉเจฐเจฟเจธเจผ) เจจเฉเฉฐ เจเจพเจฒ เจเจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ, เจเจฟเจธ เจฆเฉ เจ เจงเจพเจฐ เจคเฉ เจฐเจฟเจชเฉเจฐเจ เจฌเจฃเจพเจ เจเจ เจนเฉ.
ETL เจจเจฟเจเจฐเจพเจจเฉ เจธเจพเจฐเจฃเฉ
เจเจเฉเจเจฒ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจฆเฉ เจจเจฟเจเจฐเจพเจจเฉ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจ เจฒเจ, เจเฉฑเจ เจธเจพเจฐเจฃเฉ เจ เจคเฉ เจเฉฑเจ เจฆเฉเจฐเจฟเจธเจผ เจเจพเจซเจผเฉ เจนเจจ.
เจ
เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจคเฉเจธเฉเจ เจตเจพเจชเจธ เจเจพ เจธเจเจฆเฉ เจนเฉ
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 เจชเฉเจฐเจพเจฎเฉเจเจฐ เจจเจพเจฒ เจเจธเฉ เจธเจฎเฉเจ เจธเจผเฉเจฐเฉ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉ, เจเจธ เจคเฉเจ เจฌเจฟเจจเจพเจ เจธเฉเจธเจผเจจ เจจเฉฐเจฌเจฐ เจธเจฟเจฐเจซเจผ เจชเฉเจฐเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจเจพเจฐเฉ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค
- เจเจฎ เจฎเฉเจก เจตเจฟเฉฑเจ, เจคเฉเจธเฉเจ เจธเจฎเจพเจจเจพเจเจคเจฐ เจตเจฟเฉฑเจ เจเฉฑเจเฉ เจกเฉเจเจพ เจชเฉเจฐเฉเจธเฉเจธเจฟเฉฐเจ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจจเจนเฉเจ เจเจฒเจพ เจธเจเจฆเฉ เจนเฉ
เจเฉฑเจ เจธเจพเจฐเจฃเฉ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจเจผเจฐเฉเจฐเฉ เจเจพเจฐเจตเจพเจเจเจ เจนเฉเจ เจฒเจฟเจเฉ เจ เจจเฉเจธเจพเจฐ เจนเจจ:
- เจเฉฑเจฒ เจฐเจนเฉ ETL เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเจพ เจธเฉเจธเจผเจจ เจจเฉฐเจฌเจฐ เจชเฉเจฐเจพเจชเจค เจเจฐเจจเจพ
- เจเฉเจฌเจฒ เจตเจฟเฉฑเจ เจฒเฉเจ เจเจเจเจฐเฉ เจชเจพเจ
- เจเฉฑเจ ETL เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเจพ เจเจเจฐเฉ เจธเจซเจฒ เจฐเจฟเจเจพเจฐเจก เจชเฉเจฐเจพเจชเจค เจเจฐเจจเจพ
เจกเจพเจเจพเจฌเฉเจธ เจเจฟเจตเฉเจ เจเจฟ เจเจฐเฉเจเจฒ เจเจพเจ เจชเฉเจธเจเจเฉเจฐเฉเจธ เจตเจฟเฉฑเจ, เจเจนเจจเจพเจ เจเจชเจฐเฉเจธเจผเจจเจพเจ เจจเฉเฉฐ เจฌเจฟเจฒเจ-เจเจจ เจซเฉฐเจเจธเจผเจจเจพเจ เจตเจเฉเจ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค sqlite เจจเฉเฉฐ เจเฉฑเจ เจฌเจพเจนเจฐเฉ เจตเจฟเจงเฉ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจ
เจคเฉ เจเจธ เจเฉเจธ เจตเจฟเฉฑเจ เจเจน
เจธเจฟเฉฑเจเจพ
เจเจธ เจคเจฐเฉเจนเจพเจ, เจกเฉเจเจพ เจชเฉเจฐเฉเจธเฉเจธเจฟเฉฐเจ เจเฉเจฒเจธ เจตเจฟเฉฑเจ เจเจฒเจคเฉ เจธเฉเจจเฉเจนเฉ เจเฉฑเจ เจตเฉฑเจกเฉ-เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจฃ เจญเฉเจฎเจฟเจเจพ เจจเจฟเจญเจพเจเจเจฆเฉ เจนเจจเฅค เจชเจฐ เจธเจฎเฉฑเจธเจฟเจ เจฆเจพ เจเจพเจฐเจจ เจเจฒเจฆเฉ เจฒเฉฑเจญเจฃ เจฒเจ เจเจนเจจเจพเจ เจจเฉเฉฐ เจ เจจเฉเจเฉเจฒ เจเจนเจฟเจฃเจพ เจฎเฉเจธเจผเจเจฒ เจนเฉ. เจเจฆเฉเจ เจชเฉเจฐเจเจฟเจฐเจฟเจเจตเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจธเฉ เจฆเฉ เจจเฉเฉเฉ เจชเจนเฉเฉฐเจ เจเจพเจเจฆเฉ เจนเฉ, เจคเจพเจ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฆเฉ เจจเจฟเจเจฐเจพเจจเฉ เจเฉฑเจ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจชเฉเจฐเฉเจเฉเจเจ เจตเจฟเฉฑเจ เจฌเจฆเจฒ เจเจพเจเจฆเฉ เจนเฉ.
เจฒเฉเจ เจเฉฑเจ เจชเฉเจฐเฉเจเฉเจเจพเจเจช เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจธเจฎเฉฑเจธเจฟเจ เจฆเฉ เจธเฉฐเจญเจต เจนเฉฑเจฒ เจฆเฉ เจเฉฑเจ เจเจฆเจพเจนเจฐเจฃ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉ. เจชเฉเจฐเจพ เจเฉเจเจพ เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจชเฉเจฐเฉเจเฉเจเจพเจเจช gitlab เจตเจฟเฉฑเจ เจเจชเจฒเจฌเจง เจนเฉ
เจธเจฐเฉเจค: www.habr.com