Inerra
Data platform

Medallion lakehouse on Microsoft Fabric

Replacing a failing Power BI import model with a medallion lakehouse on Microsoft Fabric, for a charge point operator scaling faster than its reporting could hold.

Sector
Electric vehicle charging · charge point operator
Our role
Architect and data engineer

Architecture

Sources

CPMS
OCPP messagesCharger telemetry
Billing and CRM

Ingest

Fabric Data PipelinesBatch sources
Azure FunctionsReal-time OCPP

Bronze

OneLake / DeltaRaw, append only

Silver

PySpark notebooksDedup, nested struct coercion
Delta MERGE upserts

Gold and use

Star schema
Power BI
Fault alerts to engineers
  • Microsoft Fabric
  • OneLake
  • Delta Lake
  • PySpark
  • Azure Functions
  • Power BI

The situation

The business was growing quickly and the reporting had not kept up. Everything ran through a single Power BI import model that pulled large files on a schedule, refreshed slowly, and had reached the point where one person understood how it held together. That is a normal place for a fast-growing company to end up, and a dangerous one: the number the business runs on depends on a model nobody else can safely change.

What we built

A full medallion lakehouse on Microsoft Fabric. Fabric Data Pipelines pull the batch sources, the charge point management system, billing and CRM, into a bronze layer in OneLake as Delta, append only, so nothing is ever lost. PySpark notebooks promote it to silver, where the real work happens: deduplicating messages, coercing the nested structures that come off the chargers into a stable schema, and applying Delta MERGE upserts so late and repeated data corrects itself rather than double counting. A curated gold layer serves a star schema that Power BI reads directly, which is what the business actually sees.

Charger telemetry, in real time

Chargers speak OCPP, and OCPP is a live conversation rather than a nightly file. Azure Functions ingest it as it arrives, so a fault on a unit surfaces in minutes instead of the next morning. That turned reporting from a rear view mirror into something the engineering team acts on the same day, which is the difference between a charger that is down and a charger that is down and nobody knows yet.

Why it held

The platform later absorbed a full migration of the underlying charge point management system with no structural rework. That is the test of an architecture: not whether it works on the day it ships, but whether it survives the change nobody told you was coming. The separation between raw, curated and served meant a new source could be swapped in underneath without touching what sat on top.

Building something like this?

Book a call