Skip to main content

Connection Patterns

PatternDescriptionProsConsiderations
DirectQueryPower BI runs queries against the warehouse that houses BlockDB tables (Snowflake, Redshift, Databricks SQL, BigQuery).Always fresh, no materialized extracts.Requires performant warehouse + gateway; enforce row-level security there.
Import/Incremental RefreshScheduled refresh from warehouse or managed buckets into Power BI datasets.Fast visuals, offline analysis.Needs refresh slots + dataflows; plan for dataset size limits.
Fabric LakehouseLand BlockDB buckets directly in OneLake and model with shortcuts.Unified governance across Fabric workloads.Requires Fabric capacity.

DirectQuery Setup (Example: Databricks SQL)

  1. Accept the Delta Share or stream via Databricks Delta Share (Streaming).
  2. Surface the shared tables through Databricks SQL endpoints with view-based RBAC.
  3. In Power BI Desktop, choose Azure Databricks connector → paste SQL warehouse info + personal access token.
  4. Import or DirectQuery the curated view that references BlockDB tables; publish dataset to Power BI Service.

Import & Incremental Refresh

  1. Stage BlockDB data into Azure Data Lake/S3 via archives or managed bucket slices.
  2. Build a Power BI dataflow or Fabric pipeline to ingest the data and define incremental refresh policy (RangeStart/RangeEnd).
  3. Expose _updated_at as the incremental column to align with BlockDB freshness guarantees.
  4. Schedule refreshes to match SLAs—from hourly for pricing to daily for static reference tables.

Governance Tips

  • Store _tracing_id in your semantic model so report consumers can pivot from visuals to lineage endpoints.
  • Document dataset dependencies back to the relevant BlockDB docs (/data-catalog/...) using Power BI’s endorsement metadata.
  • Monitor refresh health; alert when Last refresh lags the SLA defined in Access & SLA.
For on-prem gateways, allowlist the BlockDB warehouse endpoints (Snowflake, Redshift, etc.) and ensure egress rules permit OAuth token exchange.