Integration & ETL Developer, Reference DataIntegrační a ETL vývojář, číselníky
Project Rainbow: KBC Group's central data warehouse on Teradata (FSDM model) for internal and regulatory reporting, including reporting to the ECB. It serves ten local and group entities. End-to-end owner of the reference data flow from RDM to the Teradata DWH. Codelists are enablers: without fresh and correct values the rest of the warehouse cannot load reliably.
Projekt Rainbow: centrální datový sklad skupiny KBC na Teradata (model FSDM) pro interní a regulatorní reporting včetně reportingu do ECB. Obsluhuje deset lokálních a skupinových entit. End-to-end vlastník toku číselníků z RDM do DWH na Teradata. Číselníky jsou enablerem: bez aktuálních a správných hodnot se zbytek skladu nedá spolehlivě načíst.
Architecture and designArchitektura a návrh
- Implemented Informatica BDM export mappings on top of the existing canonical format, a view that flattens RDM business objects into single table, so one mapping serves every codelist and scales well.
- Proposed reversing the data flow between environments (production to integration, integration to development) for the internal RDM data-testing case that relied on live data, defended it before the technical committee, got it approved and negotiated the routing with the platform and security teams.
- Introduced OpenAPI specifications and swagger-ui for the data testing REST services; the RDM application team adopted the same setup for their own interface.
- Maintained the integration documentation and the content and domain ownership catalogues in Confluence, used by the team, analysts and DWH operations.
- Implementoval jsem exportní mappingy v Informatica BDM nad existujícím kanonickým formátem – view, které složí business objekty RDM na jednu tabulku, takže jeden mapping obsluhuje všechny číselníky a dobře škáluje.
- Navrhl jsem obrácení toku dat mezi prostředími (z produkce do integrace, z integrace do vývoje) pro interní testování dat RDM, které vyžadovalo živá data. Obhájil jsem ho před technickým výborem, získal schválení a vyjednal routing s platformovým a bezpečnostním týmem.
- Zavedl jsem OpenAPI specifikace a swagger-ui pro REST služby data testingu; aplikační tým RDM převzal stejné nastavení pro vlastní rozhraní.
- Udržoval jsem integrační dokumentaci a katalogy obsahu a vlastnictví domén v Confluence, které používá tým, analytici a provoz DWH.
Integration engineeringIntegrační vývoj
- Owned the export chain: denormalizing view on the RDM database, Informatica BDM mapping, flat-file export, file transfer to the Unix servers, ingestion and loading through the database layers on Teradata.
- Replaced the standard one-job-per-table (400+ jobs) load with a looping job that validates each table, loads the ones that pass, stops on nulls or structure mismatches.
- Wrote the housekeeping modules: archiving and retention of exports, RDM housekeeping through its REST API, and the data-testing checks that call the in-house testing service.
- Maintained source file XML definitions, normalization ETL and the loading transformations stored in PostgreSQL.
- Vlastnil jsem exportní řetězec: denormalizační view nad databází RDM, mapping v Informatica BDM, export do souboru, přenos souborů na unixové servery, ingest a load přes databázové vrstvy na Teradata.
- Standardní load jeden job na tabulku (400+ jobů) jsem nahradil smyčkovým jobem, který každou tabulku validuje, nahraje ty, které projdou, a zastaví se na null hodnotách nebo nesouladu struktury.
- Napsal jsem moduly pro housekeeping: archivaci a retenci exportů, housekeeping RDM přes jeho REST API a kontroly testování dat, které volají vlastní testovací službu.
- Udržoval jsem XML definice zdrojových souborů, normalizační ETL a loadovací transformace uložené v PostgreSQL.
Services and tooling (Java, Spring Boot)Služby a nástroje (Java, Spring Boot)
- Data-testing service: compares the exports with the RDM source and the Teradata target and exposes the checks as a REST API. It replaced a manual comparison in Excel that took tens of minutes per query run, down to seconds. Results are wired into Jira Zephyr test suites and Confluence tables through their APIs.
- Environment generator: creates integration, acceptance and production variants of an entity's roughly 1,000 template objects, including flows and orchestration, so one development environment behaves like three environments. A single-entity sandbox load took about 90 minutes and had to be wiped between datasets; migration tests now load all three at once and analysts compare live. Test suite runtime went from days to hours, allowing multiple loads per day.
- Operations dashboard: runs the check SQL on PostgreSQL and posts a compact status grid (three environments × ten entities × layers) to Confluence after each daily load, scheduled by Jenkins. Each tile expands to defect details and links. Covers database space, missing objects, column drift, nulls, load delays, soft errors, new and obsolete tables, volume spikes and empty loads, cutting detection and fix times. Handed over to DWH operations.
- Offline codelist viewer: converts the exports into one Excel workbook with an index and one tab per codelist, with ownership metadata, for users without RDM access. Introduced delivery of generated codelist workbooks to the organization's SharePoint through the managed file-transfer platform.
- Služba pro testování dat: porovnává exporty se zdrojem v RDM a cílem na Teradata a vystavuje kontroly jako REST API. Nahradila ruční porovnávání v Excelu, kde jeden běh dotazu trval desítky minut; teď trvá sekundy. Výsledky jsou napojené na testovací sady v Jira Zephyr a tabulky v Confluence přes jejich API.
- Generátor prostředí: vytváří integrační, akceptační a produkční varianty zhruba 1 000 šablonových objektů entity včetně toků a orchestrace, takže jedno vývojové prostředí se chová jako tři prostředí. Load sandboxu pro jednu entitu trval kolem 90 minut a sandbox se musel mezi datovými sadami mazat; migrační testy teď nahrávají všechna tři prostředí najednou a analytici porovnávají živě. Doba běhu testovacích sad se zkrátila ze dnů na hodiny, což umožňuje několik loadů denně.
- Provozní dashboard: spouští kontrolní SQL nad PostgreSQL a po každém denním loadu publikuje do Confluence kompaktní stavovou mřížku (tři prostředí × deset entit × vrstvy), plánováno v Jenkinsu. Každá dlaždice se rozbalí na detail defektů a odkazy. Pokrývá místo v databázi, chybějící objekty, posun sloupců, null hodnoty, zpoždění loadů, měkké chyby, nové a zastaralé tabulky, skoky objemů a prázdné loady, čímž zkracuje dobu odhalení a opravy chyb. Předáno provozu DWH.
- Offline prohlížeč číselníků: převádí exporty do jednoho excelového sešitu s rejstříkem a záložkou pro každý číselník včetně metadat o vlastnictví, pro uživatele bez přístupu do RDM. Zavedl jsem doručování generovaných sešitů číselníků na firemní SharePoint přes platformu pro řízený přenos souborů.
Operations and DevOpsProvoz a DevOps
- Daily operations of the reference-data loads on all environments. Codelists are enablers for the rest of the warehouse, so failures were diagnosed from Unix, Teradata and PostgreSQL logs and fixed immediately.
- Wrote my own Jenkins pipelines for builds, deployment and operations jobs.
- Každodenní provoz loadů číselníků na všech prostředích. Číselníky jsou enablerem pro zbytek skladu, takže chyby diagnostikoval z logů Unixu, Teradata a PostgreSQL a opravoval je okamžitě.
- Psal jsem vlastní Jenkins pipeline pro buildy, nasazování i provozní úlohy.






