# Byggde egen produktanalys i PostgreSQL — 47 funktioner över partitionerade händelsetabeller som rensar sig själva — pseudonymiserad bakom ett roterande salt och villkorad av besökarens samtycke.

2025

**Situation.** Produktbeslut behöver siffror, och det vanliga sättet att få dem är att sätta en tagg från tredje part på varje sida och låta någon annans servrar iaktta användarna. Det går snabbt, det är gratis vid små volymer, och det innebär att besökarnas beteende på en professionell nätverksplattform — vem som tittade på vilket företag, vem som sökte efter vad — blir en tillgång som ägs av ett reklamföretag. För en plattform vars användare är identifierbara yrkesverksamma inom sjöfarten är det en dålig affär.

**Uppgift.** Produktteamet behövde trattar, retention och händelsedata, insamlade på ett sätt som plattformen kunde stå för och som en användare kunde tacka nej till.

**Handling.** Analysen byggdes in i PostgreSQL, i ett schema med 7 tabeller och 47 funktioner. Händelsetabellerna är partitionerade — 22 partitionsdefinitioner — och rensar sig själva enligt en tidsplan, eftersom kostnaden för förstapartsanalys inte ligger i att samla in händelserna utan i att behålla dem för alltid. Identiteten pseudonymiseras bakom ett salt som roteras, så att en besökare inte kan följas över rotationsgränsen ens inifrån databasen; det är ett medvetet tak för vad datan kan besvara. Klienten tar hänsyn till samtycke och skickar ingenting innan samtycke har getts, i stället för att skicka och filtrera i efterhand. Konverteringstrattar beräknas i databasen, intill datan, i stället för att exporteras någon annanstans för att sedan kopplas ihop igen.

**Resultat.** Frågor om hur produkten används besvaras ur plattformens egna tabeller, utan att något lämnar plattformen och utan någon tagg på sidan. Begränsningarna är den ärliga delen: att rotera saltet kostar kohortanalys över lång tid, och inget av detta kommer med de dashboards som ett hostat verktyg ger dig gratis. Båda accepterades medvetet.

---

- Roll: Dataingenjör
- Kategorier: [Databaser](https://data.engineer.company/sv/categories/databases/), [PostgreSQL](https://data.engineer.company/sv/categories/postgresql/), [SQL](https://data.engineer.company/sv/categories/sql/), [Data engineering](https://data.engineer.company/sv/categories/data-engineering/), [Dataanalys](https://data.engineer.company/sv/categories/data-analytics/), [Datastyrning](https://data.engineer.company/sv/categories/data-governance/), [Prestandaoptimering](https://data.engineer.company/sv/categories/performance/)
- Tjänster: [Databasdesign och datamodellering](https://data.engineer.company/sv/services/database-design/), [Utveckling av datapipelines (ETL/ELT)](https://data.engineer.company/sv/services/data-pipeline-development/), [Dataanalys och BI‑dashboards](https://data.engineer.company/sv/services/data-analytics-bi/), [Datastyrning och datakvalitet](https://data.engineer.company/sv/services/data-governance/)

<https://data.engineer.company/sv/portfolio/built-first-party-product-analytics-in-postgresql-101/>
