# Har designet og drevet 6 ETL/ELT‑pipelines

Har designet, implementeret og administreret 6 ETL/ELT‑pipelines med Google BigQuery, MSSQL, PostgreSQL, shell‑scripting, PL/pgSQL og Transact‑SQL og integreret data, så et Python‑API kan behandle dem effektivt.

2022 – 2024

**Situation.** Organisationen havde brug for at samle og behandle store mængder strukturerede data fra et data warehouse på en fjernserver bag en IPsec VPN. Dataene var afgørende for interne analysedashboards og for eksterne Python‑API'er, som kunder og partnere brugte.

**Opgave.** Målet var at designe, implementere og vedligeholde et sæt robuste, automatiserede ETL/ELT‑pipelines, der sikkert kunne hente, transformere og indlæse data i Google BigQuery og samtidig sikre datanøjagtighed, ydeevne og skalerbarhed i alle systemerne.

**Handling.** Der blev designet, implementeret og administreret 6 ETL/ELT‑pipelines fra ende til anden, som omfattede en række teknologier, herunder Google BigQuery, MSSQL, PostgreSQL, shell‑scripting, PL/pgSQL og Transact‑SQL.

- Der blev etableret sikre forbindelser til en fjernserver beskyttet af en IPsec VPN, så datahentningen kunne automatiseres.
- Download af komprimerede dataarkiver med Parquet-, CSV- og .bak‑filer blev planlagt og afviklet.
- Der blev udviklet Bash- og Python‑scripts, som udpakkede filerne og klassificerede dem efter type og skema.
- For .bak‑filernes vedkommende blev sikkerhedskopierne gendannet i en lokal MSSQL Server‑instans med RESTORE DATABASE‑arbejdsgange, og skemaintegriteten blev valideret.
- Strukturerede data blev indlæst i staging‑skemaer i MSSQL og PostgreSQL med værktøjerne bcp, psql og SSIS, afhængigt af kildeformatet.
- Der blev skrevet modulære, genanvendelige PL/pgSQL- og T‑SQL‑procedurer, som rensede, normaliserede og berigede dataene ud fra forretningslogikken.
- Kuraterede datasæt og tabeller blev eksporteret til mellemformater, komprimeret med gzip og overført sikkert til en Google Cloud Storage‑bucket.
- Upload og skemamapping til Google BigQuery blev automatiseret med bq CLI og Python‑baserede scripts til dataindlæsning.

**Resultat.** De automatiserede pipelines reducerede det manuelle arbejde og behandlingstiden markant — fra over 3 timers manuelt arbejde til under 20 minutter fra ende til anden — og dataene blev synkroniseret dagligt i stedet for ugentligt. Python‑API'erne, der brugte dataene, fik 30 % bedre ydeevne, og det bedre overblik hjalp forretningsanalytikerne med hurtigere at levere indsigt til interessenterne. Løsningen er fortsat skalerbar og kan udvides med nye datakilder, efterhånden som forretningen vokser.

---

- Rolle: Dataingeniør
- Kategorier: [Databaser](https://engineer.company/da/categories/databases/), [PostgreSQL](https://engineer.company/da/categories/postgresql/), [SQL](https://engineer.company/da/categories/sql/), [Data warehousing](https://engineer.company/da/categories/data-warehousing/), [Data engineering](https://engineer.company/da/categories/data-engineering/), [Datapipelines (ETL/ELT)](https://engineer.company/da/categories/data-pipelines/), [Cloud](https://engineer.company/da/categories/cloud/), [Automatisering & CI/CD](https://engineer.company/da/categories/automation/), [Netværk & VPN](https://engineer.company/da/categories/networking/), [Python](https://engineer.company/da/categories/python/)
- Ydelser: [Backend- & API‑udvikling](https://engineer.company/da/services/backend-development/), [Databasedesign & datamodellering](https://engineer.company/da/services/database-design/), [Udvikling af datapipelines (ETL/ELT)](https://engineer.company/da/services/data-pipeline-development/), [Design af data warehouse](https://engineer.company/da/services/data-warehousing/)

<https://engineer.company/da/portfolio/designed-and-ran-6-etl-elt-pipelines/>
