# Bygde egen produktanalyse i PostgreSQL — 47 funksjoner over partisjonerte hendelsestabeller som rydder seg selv — pseudonymisert bak et roterende salt og betinget av den besøkendes samtykke.

2025

**Situasjon.** Produktbeslutninger trenger tall, og den vanlige måten å skaffe dem på er å legge en tredjeparts sporingskode på hver side og la noen andres servere følge med på brukerne. Det er raskt, det er gratis ved lite volum, og det betyr at besøkendes atferd på en profesjonell nettverksplattform — hvem som så på hvilket selskap, hvem som søkte etter hva — blir en eiendel i hendene på en reklamevirksomhet. For en plattform der brukerne er identifiserbare maritime fagfolk, er det en dårlig byttehandel.

**Oppgave.** Produktteamet trengte trakter, retensjon og hendelsesdata, samlet inn på en måte plattformen kunne stå inne for og en bruker kunne avslå.

**Handling.** Analyseløsningen ble lagt i PostgreSQL, i et skjema med 7 tabeller og 47 funksjoner. Hendelsestabellene er partisjonert — 22 partisjonsdefinisjoner — og rydder seg selv etter en tidsplan, fordi kostnaden ved førstepartsanalyse ikke er å samle inn hendelsene, men å beholde dem for alltid. Identiteten er pseudonymisert bak et salt som roterer, slik at en besøkende ikke kan følges over rotasjonsgrensen, selv ikke fra innsiden av databasen; det er et bevisst tak på hva dataene kan svare på. Klienten tar hensyn til samtykke og sender ingenting før samtykke er gitt, i stedet for å sende og filtrere etterpå. Konverteringstrakter beregnes i databasen, ved siden av dataene, i stedet for å eksporteres et annet sted for så å kobles tilbake.

**Resultat.** Spørsmål om hvordan produktet brukes, besvares fra plattformens egne tabeller, uten at noe forlater plattformen og uten noen sporingskode på siden. Begrensningene er den ærlige delen: å rotere saltet koster kohortanalyse over lang tid, og ingenting av dette kommer med dashbordene man får gratis med et driftet verktøy. Begge deler ble akseptert med åpne øyne.

---

- Rolle: Dataingeniør
- Kategorier: [Databaser](https://engineer.company/nb/categories/databases/), [PostgreSQL](https://engineer.company/nb/categories/postgresql/), [SQL](https://engineer.company/nb/categories/sql/), [Data engineering](https://engineer.company/nb/categories/data-engineering/), [Dataanalyse](https://engineer.company/nb/categories/data-analytics/), [Datastyring](https://engineer.company/nb/categories/data-governance/), [Ytelsesoptimalisering](https://engineer.company/nb/categories/performance/)
- Tjenester: [Databasedesign og datamodellering](https://engineer.company/nb/services/database-design/), [Utvikling av datapipelines (ETL/ELT)](https://engineer.company/nb/services/data-pipeline-development/), [Dataanalyse og BI‑dashbord](https://engineer.company/nb/services/data-analytics-bi/), [Datastyring og datakvalitet](https://engineer.company/nb/services/data-governance/)

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