Empower business teams with curated semantic models and automated data‑flow pipelines while locking down access through role‑based policies and a lightweight governance hub.
1. Define data domains & owners – create a Data Domain Registry in Azure Purview (or Collibra) with owners listed; set SLA: refresh ≤ 24 h, latency ≤ 2 h.
2. Build a centralized semantic layer – use Power BI Semantic Model (XMLA endpoint) or AtScale to expose reusable measures (e.g., Total Sales = SUM(FactSales[Amount])). Publish as a certified dataset.
3. Apply row‑level security (RLS) – map Azure AD groups to RLS filters in Power BI:
[Region] = LOOKUPVALUE(UserRegion[Region], UserRegion[UserPrincipalName], USERPRINCIPALNAME())4. Distribute via Power BI Service – place certified datasets in a workspace named EnterpriseMetrics; enable Allow end‑users to create reports flag only for the BI‑SelfService group.
5. Enable self‑service dataflows – create Azure Data Lake Gen2‑backed dataflows (Power BI Dataflows) that write to lakehouse/curated/*. Set Refresh Schedule to every 6 h.
6. Govern through CoE Toolkit – deploy Power Platform Center of Excellence (CoE) with policies:
- Dataset certification required.
- Refresh count > 5 000/month → auto‑ticket in Azure DevOps.
7. Monitor & audit – ingest Power BI audit logs into Log Analytics; create alert:
PowerBIAudit
| where OperationName == "RefreshDataset"
| summarize count() by Dataset, bin(TimeGenerated, 1d)
| where count_ > 1000If threshold exceeded, review dataset ownership.
Tool comparison
| Tool | Governance Feature | Self‑service Capability |
|------|-------------------|--------------------------|
| Power BI | Purview integration, CoE Toolkit | Dataflows, certified datasets |
| Looker | Model‑level permissions, Git versioning | LookML Explorer, derived tables |
| Tableau | Catalog & data source certification | Prep Builder, Tableau Extensions |