{"id":37701,"date":"2019-10-31T22:19:10","date_gmt":"2019-10-31T19:19:10","guid":{"rendered":"https:\/\/prohoster.info\/blog\/monitoring-etl-protsessov-v-malenkom-hranilishhe-dannyh\/"},"modified":"2019-10-31T22:19:10","modified_gmt":"2019-10-31T19:19:10","slug":"monitoring-etl-protsessov-v-malenkom-hranilishhe-dannyh","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/monitoring-etl-protsessov-v-malenkom-hranilishhe-dannyh","title":{"rendered":"ETL-protsesside j\u00e4lgimine v\u00e4ikeses andmehoidlas","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Paljud kasutavad spetsialiseeritud t\u00f6\u00f6riistu andmete eraldamise, t\u00f6\u00f6tlemise ja laadimise protseduuride loomiseks relatsioonilistes andmebaasides. T\u00f6\u00f6riistade t\u00f6\u00f6protsess logitakse ja vead registreeritakse.<\/p>\n<p>Veateate korral logis on teave selle kohta, et t\u00f6\u00f6riist ei suutnud \u00fclesannet t\u00e4ita ning millistes moodulites (tihti on need java) kus peatuti. Viimastest ridadest v\u00f5ib leida andmebaasi vea, n\u00e4iteks unikaalse v\u00f5tme rikkumise tabelis.<\/p>\n<p>K\u00fcsimusele, millist rolli m\u00e4ngib ETL veateave, vastamiseks klassifitseerisin k\u00f5ik probleemid, mis esinesid viimase kahe aasta jooksul m\u00e4rkimisv\u00e4\u00e4rses andmehoidlas. <\/p>\n<p><img decoding=\"async\" alt=\"ETL-protsesside j\u00e4lgimine v\u00e4ikeses andmehoidlas\" src=\"\/wp-content\/uploads\/2019\/09\/cfe750a4a4ec952651779ec563a40e05.jpg\" style=\"display:block;margin: 0 auto;\" \/><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Andmebaasi vead h\u00f5lmavad n\u00e4iteks ruumi puudumist, \u00fchenduse katkemist, sessiooni hangumist jne.<\/p>\n<p>Loogilised vead h\u00f5lmavad n\u00e4iteks v\u00f5tmete rikkumisi tabelis, kehtetuks muutunud objekte, juurdep\u00e4\u00e4su puudumist objektidele jne.<br \/>\nPlaani t\u00e4itmine v\u00f5ib olla eba\u00f5ige, see v\u00f5ib hanguda jne.<\/p>\n<p>Lihtsad vead ei n\u00f5ua palju aega parandamiseks. Enamik neist vead suudab hea ETL lahendada iseseisvalt.<\/p>\n<p>Komplekssete vigade korral tuleb avada ja kontrollida andmete t\u00f6\u00f6tlemise protseduure, uurida andmeallikaid. Need toovad sageli kaasa vajaduse muudatuste testimise ja juurutamise j\u00e4rele.<\/p>\n<p>Nii on pool k\u00f5igist probleemidest seotud andmebaasiga. 48% k\u00f5ikidest vigadest on lihtsad vead.<br \/>\nKolmandik k\u00f5igist probleemidest on seotud andmehoidla loogika v\u00f5i mudeli muutumisega, neist rohkem kui pooled vead on keerulised.<\/p>\n<p>Ja v\u00e4hem kui veerand k\u00f5igist probleemidest on seotud \u00fclesannete planeerijaga, kus 18% on lihtsad vead.<\/p>\n<p>Kokkuv\u00f5ttes on 22% k\u00f5igist juhtunud vigadest keerulised, nende parandamiseks on vaja suurimat t\u00e4helepanu ja aega. Need esinevad umbes kord n\u00e4dalas, samas kui lihtsad vead ilmnevad peaaegu iga p\u00e4ev.<\/p>\n<p>On ilmne, et ETL-protsesside j\u00e4lgimine on t\u00f5hus siis, kui logis on maksimaalselt t\u00e4pselt n\u00e4idatud vea asukoht ja probleemiallika leidmiseks kulub minimaalselt aega.<\/p>\n<h4>T\u00f5hus j\u00e4lgimine<\/h4>\n<p>\nMida ma sooviksin n\u00e4ha ETL j\u00e4lgimise protsessis?<\/p>\n<p><img decoding=\"async\" alt=\"ETL-protsesside j\u00e4lgimine v\u00e4ikeses andmehoidlas\" src=\"\/wp-content\/uploads\/2019\/09\/03e6ebc3aef69137880a278f9891370a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nStart at \u2014 millal t\u00f6\u00f6 algas,<br \/>\nSource \u2014 andmeallikas,<br \/>\nLayer \u2014 milline tasand andmehoidlas laaditakse,<br \/>\nETL Job Name \u2014 laadimisprotseduur, mis koosneb paljusid v\u00e4ikestest sammudest,<br \/>\nStep Number \u2014 t\u00e4idetava sammu number,<br \/>\nM\u00f5jutatud read \u2014 kui palju andmeid on juba t\u00f6\u00f6deldud,<br \/>\nKestus sec \u2014 kui kaua see kestab,<br \/>\nOleku \u2014 kas k\u00f5ik on korras v\u00f5i mitte: OK, ERROR, RUNNING, HANGS<br \/>\nS\u00f5num \u2014 viimane edukas s\u00f5num v\u00f5i veateade.<\/p>\n<p>Failide staatuse p\u00f5hjal on v\u00f5imalik saata e-kiri teistele osalejatele. Kui vigu pole, siis pole ka kirja saatmine vajalik.<\/p>\n<p>Nii on veateate korral selgelt n\u00e4idatud, kus probleem esines.<\/p>\n<p>M\u00f5nikord juhtub, et monitorimisriist ise ei t\u00f6\u00f6ta. Sel juhul on v\u00f5imalik otse andmebaasis kutsuda esile vaade (view), mille alusel raport on koostatud.<\/p>\n<h4>ETL-monitooringu tabel<\/h4>\n<p>\nETL-protsesside j\u00e4lgimiseks piisab \u00fchest tabelist ja \u00fchest vaatest.<\/p>\n<p>Selleks v\u00f5ib naasta <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/462337\/\">oma v\u00e4ikesse andmehoidlasse<\/a><\/noindex> ja luua andmebaasis sqlite protot\u00fc\u00fcp.<\/p>\n<p><b class=\"spoiler_title\">DDL tabel<\/b><\/p>\n<pre><code class=\"sql\">CREATE TABLE UTL_JOB_STATUS (\n\n\/* Tabel t\u00f6\u00f6 t\u00e4itmise logimiseks. Oluline, et t\u00f6\u00f6l on etapid ETL_START ja ETL_END v\u00f5i ETL_ERROR *\/\n  UTL_JOB_STATUS_ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,\n  SID               INTEGER NOT NULL DEFAULT -1, \/* Sessiooni Identifikaator. Unikaalne iga t\u00f6\u00f6 k\u00e4ivitamise jaoks *\/\n  LOG_DT            INTEGER NOT NULL DEFAULT 0,  \/* Kuup\u00e4ev ja kellaaeg *\/\n  LOG_D             INTEGER NOT NULL DEFAULT 0,  \/* Kuup\u00e4ev *\/\n  JOB_NAME          TEXT NOT NULL DEFAULT 'N\/A', \/* T\u00f6\u00f6 nimi nagu JOB_STG2DM_GEO *\/\n  STEP_NAME         TEXT NOT NULL DEFAULT 'N\/A', \/* ETL_START, ... , ETL_END\/ETL_ERROR *\/\n  STEP_DESCR        TEXT,                        \/* \u00dclesande v\u00f5i veateate kirjeldus *\/\n  UNIQUE (SID, JOB_NAME, STEP_NAME)\n);\nINSERT INTO UTL_JOB_STATUS (UTL_JOB_STATUS_ID) VALUES (-1);<\/code><\/pre>\n<p>\n<b class=\"spoiler_title\">DDL vaade\/raport<\/b><\/p>\n<pre><code class=\"sql\">LOO KAA KUILE KUILE UTL_JOB_STATUS_V\nKUILE \\* Sisu: Paketi t\u00e4itmise logi viimase 3 kuu jooksul. \\*\nKOOS SRC KUIGA (\n  VALI LOG_D,\n    LOG_DT,\n    UTL_JOB_STATUS_ID,\n    SID,\n\tJUHUL KUI INSTR(JOB_NAME, 'FTP') SIIS '\u00dcLEKANNE' \\* failide edastamine \\*\n\t     JUHUL KUI INSTR(JOB_NAME, 'STG') SIIS 'ETAPPIK' \\* etapp \\*\n\t     JUHUL KUI INSTR(JOB_NAME, 'CLS') SIIS 'PUHTUS' \\* puhastamine \\*\n\t     JUHUL KUI INSTR(JOB_NAME, 'DIM') SIIS 'DIMENSIOON' \\* dimensioon \\*\n\t     JUHUL KUI INSTR(JOB_NAME, 'FCT') SIIS 'TEGUR' \\* tegur \\*\n\t\t JUHUL KUI INSTR(JOB_NAME, 'ETL') SIIS 'ETAPPIK-MART' \\* andmete turustamise etapp \\*\n\t     JUHUL KUI INSTR(JOB_NAME, 'RPT') SIIS 'ARUANNE' \\* aruanne \\*\n\t     MUUL JUHUL 'N\/A' L\u00f5PUNAS,\n\tJUHUL KUI INSTR(JOB_NAME, 'ACCESS') SIIS 'ACCESS LOG' \\* allikas \\*\n\t     JUHUL KUI INSTR(JOB_NAME, 'MASTER') SIIS 'MEISTERSISU' \\* allikas \\*\n\t     JUHUL KUI INSTR(JOB_NAME, 'AD-HOC') SIIS 'AD-HOC' \\* allikas \\*\n\t     MUUL JUHUL 'N\/A' L\u00f5PUNAS,\n    JOB_NAME,\n    STEP_NAME,\n    JUHUL KUI STEP_NAME='ETL_START' SIIS 1 MUUL JUHUL 0 L\u00f5PUNAS,\n    JUHUL KUI STEP_NAME='ETL_END' SIIS 1 MUUL JUHUL 0 L\u00f5PUNAS,\n    JUHUL KUI STEP_NAME='ETL_ERROR' SIIS 1 MUUL JUHUL 0 L\u00f5PUNAS,\n    STEP_NAME || ' : ' || STEP_DESCR AS STEP_LOG,\n\tSUBSTR( SUBSTR(STEP_DESCR, INSTR(STEP_DESCR, '***')+4), 1, INSTR(SUBSTR(STEP_DESCR, INSTR(STEP_DESCR, '***')+4), '***')-2 ) AS AFFECTED_ROWS\n  KUST UTL_JOB_STATUS\n  KUHI datetime(LOG_D, 'unixepoch') &gt;= date('now', 'start of month', '-3 month')\n)\nVALI JB.SID,\n  JB.MIN_LOG_DT AS START_DT,\n  strftime('%d.%m.%Y %H:%M', datetime(JB.MIN_LOG_DT, 'unixepoch')) AS LOG_DT,\n  JB.SOURCE,\n  JB.LAYER,\n  JB.JOB_NAME,\n  JUHUL\n  KUI JB.ERROR_FLAG = 1 SIIS 'ERROR'\n  KUI JB.ERROR_FLAG = 0 JA JB.END_FLAG = 0 JA strftime('%s','now') - JB.MIN_LOG_DT &gt; 0.5*60*60 SIIS 'HANGS' \\* pool tundi \\*\n  KUI JB.ERROR_FLAG = 0 JA JB.END_FLAG = 0 SIIS 'K\u00c4IBES'\n  MUUL JUHUL 'OK'\n  L\u00d5PUNA AS STATUS,\n  ERR.STEP_LOG AS STEP_LOG,\n  JB.CNT AS STEP_CNT,\n  JB.AFFECTED_ROWS AS AFFECTED_ROWS,\n  strftime('%d.%m.%Y %H:%M', datetime(JB.MIN_LOG_DT, 'unixepoch')) AS JOB_START_DT,\n  strftime('%d.%m.%Y %H:%M', datetime(JB.MAX_LOG_DT, 'unixepoch')) AS JOB_END_DT,\n  JB.MAX_LOG_DT - JB.MIN_LOG_DT AS JOB_DURATION_SEC\nKUST\n  ( VALI SID, SOURCE, LAYER, JOB_NAME,\n           MAX(UTL_JOB_STATUS_ID) AS UTL_JOB_STATUS_ID,\n           MAX(START_FLAG) AS START_FLAG,\n           MAX(END_FLAG) AS END_FLAG,\n           MAX(ERROR_FLAG) AS ERROR_FLAG,\n           MIN(LOG_DT) AS MIN_LOG_DT,\n           MAX(LOG_DT) AS MAX_LOG_DT,\n           SUM(1) AS CNT,\n           SUM(IFNULL(AFFECTED_ROWS, 0)) AS AFFECTED_ROWS\n    KUST SRC\n    GRUPPEERI SID, SOURCE, LAYER, JOB_NAME\n  ) JB,\n  ( VALI UTL_JOB_STATUS_ID, SID, JOB_NAME, STEP_LOG\n    KUST SRC\n    KUHI 1 = 1\n  ) ERR\nKUHI 1 = 1\n  JA JB.SID = ERR.SID\n  JA JB.JOB_NAME = ERR.JOB_NAME\n  JA JB.UTL_JOB_STATUS_ID = ERR.UTL_JOB_STATUS_ID\nKORRALDA JB.MIN_LOG_DT DESC, JB.SID DESC, JB.SOURCE;<\/code><\/pre>\n<p>\n<b class=\"spoiler_title\">SQL Kontrolli, kas on v\u00f5imalik saada uut sessiooni numbrit<\/b><\/p>\n<pre><code class=\"sql\">VALI SUM (\n  JUHUL KUI start_job.JOB_NAME EI OLE NULL JA end_job.JOB_NAME ON NULL \\* eksisteeriv t\u00f6\u00f6 l\u00f5ppes \\*\n\t    JA MITTE ( 'y' = 'n' ) \\* sunniviisiline taask\u00e4ivitamine PARAMEETER \\*\n       SIIS 1 MUUL JUHUL 0\n  L\u00d5PUNA ) AS IS_RUNNING\n  KUST\n    ( VALI 1 AS dummy KUST UTL_JOB_STATUS KUHI sid = -1) d_job\n  VASAKU V\u00c4LJAV\u00d5TT \n    ( VALI JOB_NAME, SID, 1 AS dummy\n      KUST UTL_JOB_STATUS\n      KUHI JOB_NAME = 'RPT_ACCESS_LOG' \\* t\u00f6\u00f6 nime PARAMEETER \\*\n\t    JA STEP_NAME = 'ETL_START'\n      GRUPPEERI JOB_NAME, SID\n    ) start_job \\* algused \\*\n  ON d_job.dummy = start_job.dummy\n  VASAKU V\u00c4LJAV\u00d5TT \n    ( VALI JOB_NAME, SID\n      KUST UTL_JOB_STATUS\n      KUHI JOB_NAME = 'RPT_ACCESS_LOG'  \\* t\u00f6\u00f6 nime PARAMEETER \\*\n\t    JA STEP_NAME in ('ETL_END', 'ETL_ERROR') \\* peatamise olek \\*\n      GRUPPEERI JOB_NAME, SID\n    ) end_job \\* l\u00f5peb \\*\n  ON start_job.JOB_NAME = end_job.JOB_NAME\n     JA start_job.SID = end_job.SID<\/code><\/pre>\n<p>\nTabeli omadused:<\/p>\n<ul>\n<li>Andmete t\u00f6\u00f6tlemise protseduuri algus ja l\u00f5pp peaks olema m\u00e4rgistatud ETL_START ja ETL_END sammudega<\/li>\n<li>Viga ilmnenud korral tuleb luua samm ETL_ERROR koos selle kirjeldusega<\/li>\n<li>T\u00f6\u00f6deldud andmete arvu tuleb esile tuua, n\u00e4iteks t\u00e4htedega<\/li>\n<li>\u00dche ja sama protseduuri saab samal ajal k\u00e4ivitada parameetriga force_restart=y; ilma selleta antakse seanssi number ainult l\u00f5petatud protseduurile <\/li>\n<li>Tavaliselt ei saa paralleelselt \u00fchte ja sama andmete t\u00f6\u00f6tlemise protsessi k\u00e4ivitada<\/li>\n<\/ul>\n<p>\nTabeliga t\u00f6\u00f6tamiseks vajalikud toimingud on j\u00e4rgmised:<\/p>\n<ul>\n<li>ETL protseduuri k\u00e4ivitamise seanssi numbri saamine<\/li>\n<li>Logi kirje lisamine tabelisse<\/li>\n<li>ETL protseduuri viimase eduka kirje saamine<\/li>\n<\/ul>\n<p>\nSellistes andmebaasides nagu Oracle v\u00f5i Postgres saab neid operatsioone rakendada sisseehitatud funktsioonide kaudu. SQLite puhul on vajalik v\u00e4line mehhanism ja antud juhul on see <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/marchanka\/sqlite-php-etl-utilities\/blob\/master\/utl_func.php\">protot\u00fc\u00fcpitud PHP-s<\/a><\/noindex>.<\/p>\n<h4>Kokkuv\u00f5te<\/h4>\n<p>\nSeega m\u00e4ngivad andmete t\u00f6\u00f6tlemise t\u00f6\u00f6riistades veateated \u00e4\u00e4rmiselt olulist rolli. Kuid neid on keeruline nimetada optimaalseteks kiirete probleemide lahendamiseks. Kui protseduuride arv l\u00e4heneb sajale, muutub protsesside j\u00e4lgimine keeruliseks projektiks.<\/p>\n<p>Artiklis on toodud n\u00e4ide v\u00f5imalikust lahendusest protot\u00fc\u00fcbi kaudu. Kogu v\u00e4ikese ladustamise protot\u00fc\u00fcp on saadaval GitLabis <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/marchanka\/sqlite-php-etl-utilities\">SQLite PHP ETL utiliidid<\/a><\/noindex>.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/465637\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f, \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043b\u043e\u0433\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u043e\u0448\u0438\u0431\u043a\u0438 \u0444\u0438\u043a\u0441\u0438\u0440\u0443\u044e\u0442\u0441\u044f. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u0432 \u043b\u043e\u0433\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0443 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0430\u0434\u0430\u0447\u0443 \u0438 \u043a\u0430\u043a\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 (\u0447\u0430\u0441\u0442\u043e \u044d\u0442\u043e java) \u0433\u0434\u0435 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043b\u0438\u0441\u044c. \u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0441\u0442\u0440\u043e\u043a\u0430\u0445 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043e\u0448\u0438\u0431\u043a\u0443 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u0440\u0443\u0448\u0435\u043d\u0438\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28295,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37701","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u043d\u043e\u0433\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f, \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/monitoring-etl-protsessov-v-malenkom-hranilishhe-dannyh\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 ETL-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0432 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u043d\u043e\u0433\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f, \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/monitoring-etl-protsessov-v-malenkom-hranilishhe-dannyh\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:19:10+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:19:10+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47ETL-protsesside j\u00e4lgimine v\u00e4ikeses andmete ladustamises | ProHoster","description":"Paljud kasutavad spetsialiseeritud t\u00f6\u00f6riistu andmete ekstraktsiooni, transformeerimise ja laadimise protseduuride loomiseks relatsioonilistes andmebaasides.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/monitoring-etl-protsessov-v-malenkom-hranilishhe-dannyh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 ETL-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0432 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u043c \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster","og:description":"\u041c\u043d\u043e\u0433\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f, \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/monitoring-etl-protsessov-v-malenkom-hranilishhe-dannyh","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:19:10+00:00","article:modified_time":"2019-10-31T19:19:10+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37701","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 18:57:59","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:22:28","updated":"2026-01-23 18:57:59","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/37701","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=37701"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/37701\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/28295"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=37701"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=37701"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=37701"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}