ATS-proof: Django verbinden met Power BI


Hier is een praktische, “ATS-proof” manier om Django te verbinden met Power BI, plus welke formaten Power BI vlot kan inladen.

1) Vier beproefde integratie-patronen

A. Direct (Database) – snelste weg

  • Wat: Power BI (Desktop/Service) koppelt rechtstreeks op jullie DB (bv. PostgreSQL).
  • Hoe: Power BI PostgreSQL-connector (+ on-premises data gateway voor refresh vanuit de cloud).
  • Gebruik wanneer: je reeds een nette rapportage-schema/“star schema” hebt (fact & dimensions).
  • Pro: geen extra exportlaag in Django nodig, hoge performance met juiste indexen.
  • Let op: data-toegang, RLS (row-level security), en gateway-beheer.

B. Bestands-exports – robuust en goedkoop

  • Wat: Django genereert geplande CSV/Parquet (of XLSX) naar een veilige locatie (SharePoint/OneDrive/Azure Blob/S3/Web).
  • Hoe: cron/Celery-taak in Django → wegschrijven als *.csv of *.parquet → Power BI “Get data” (Web/SharePoint/Blob).
  • Gebruik wanneer: je deterministische snapshots en eenvoudige herlaadbaarheid per entiteit/tenant wilt.
  • Pro: zeer transparant, makkelijk te auditen/archiveren.
  • Let op: bestandsrotatie, naamconventies, incrementele refresh.

C. API/OData – flexibel en cloud-native

  • Wat: Django biedt een REST-/OData-endpoint met paginatie & filters.
  • Hoe: Django REST Framework (JSON), of OData v4; Power BI “Web” of “OData feed”.
  • Gebruik wanneer: je near-real-time of fijne filters nodig hebt (datum, entiteit, status).
  • Pro: geen gateway nodig indien publiek/secure via internet; herbruikbaar door andere apps.
  • Let op: auth (OAuth2 via Entra ID), throttling, query-folding/filters server-side.

D. Power BI “Push” datasets – event/stream-gedreven

  • Wat: Django “pusht” records naar een Power BI push/streaming dataset via Power BI REST API.
  • Gebruik wanneer: je dashboards wil updaten in (near) real-time (selectiestatussen, SLA, wachtrijen).
  • Pro: zeer lage latency naar het dashboard.
  • Let op: governance, lifecycle van datasets, beperkingen op schema-wijzigingen.

2) Formaten die Power BI moeiteloos eet

  • CSV (aanbevolen voor batch/snapshots):
    • Encodering: UTF-8
    • Scheiding: komma of puntkomma (consistent)
    • Datum/tijd: ISO-8601 (2025-10-19T13:45:00Z of 2025-10-19)
    • Decimaal: punt (.) is het veiligst
    • Nulls: leeg laten of expliciet NULL
  • Parquet (aanbevolen voor grote datasets): compact, typesafe, sneller laden.
  • JSON (via “Web” connector): voor API’s; best in records/array per endpoint, niet genest of met duidelijke “expand” strategie.
  • OData v4 (via “OData Feed”): ideaal voor query-able endpoints met filters en metadata.
  • Excel (XLSX): bruikbaar, maar minder robuust voor grote/automatische pipelines.
  • PostgreSQL connector: geen “bestand”, maar rechtstreeks naar tabel-/view-schema.

Comments