Excelgoodies logo +1 650 491 3131

LEARN THIS HANDS ON

Power BI Reporting

ET . Live Online FILLING FAST
View all upcoming batches
Power BI for Businesses in Dallas, Texas: From Siloed Reports to a Usable Analytics Platform

Power BI for Businesses in Dallas, Texas: From Siloed Reports to a Usable Analytics Platform

Most Dallas teams already have Power BI running somewhere: a few dashboards in a shared workspace, a DirectQuery model on a SQL Server in the data center, and an Excel file or two sneaking in as “temporary” data sources. The pain shows up when executives ask for city-level numbers by store, by customer segment, by marketing campaign, and the report either times out or everyone argues about which number is right.

This article walks through how a mid-sized Dallas business can turn that mess into a stable, governed Power BI environment that still moves fast. The focus is practical: tenant setup, data modeling for typical Dallas data sources, and patterns that keep refreshes and row-level security (RLS) under control.


The Scenario: A Regional Dallas Business With Growing Analytics Pain

Picture a regional retail and services company headquartered in Dallas:

  • Stores scattered across DFW (Dallas, Plano, Frisco, Arlington, Irving)
  • Back-office SQL Server on-premises at the Dallas HQ
  • A growing Azure footprint (Azure SQL Database and some data in Azure Data Lake Storage Gen2)
  • Finance still running key models in Excel

They already have:

  • A Power BI tenant with users licensed primarily with Power BI Pro
  • A few workspaces with mixed ownership
  • Several DirectQuery datasets pointing at the on-prem SQL Server
  • Ad-hoc datasets built by analysts from Excel and CSV files

Symptoms:

  • Reports against the on-prem SQL Server are slow or intermittently fail during peak hours
  • Numbers don’t agree between Finance and Operations reports
  • No clear way to restrict access by region or department without duplicating datasets
  • Confusion about whether they should move to Power BI Premium or stay on Pro-only licensing

We’ll use this scenario throughout and show how to move from fragile, report-first usage to a solid, model-first approach that fits a Dallas-based business.


Step 1: Get the Tenant and Workspaces Under Control

Before touching models, fix the basic Power BI structure. For a mid-sized Dallas business, the key is separating self-service from certified, production content.

Create at least these workspace types:

  1. Data Models (Enterprise)

    • Owner: BI/data team
    • Content: Shared semantic models (datasets) only, minimal or no reports
    • Rules: Strict change control, documented refresh, RLS defined here
  2. Department Analytics (Finance, Operations, Sales)

    • Owner: Department leads or power users
    • Content: Reports and dashboards that connect to the shared models
    • Rules: Can create measures and calculation groups (if using Tabular Editor via XMLA on supported Premium/PPU capacities), but avoid new data sources
  3. Sandbox / Personal Workspaces

    • Owner: Individual analysts
    • Content: Experimental reports, prototypes
    • Rules: No production sharing, no certified datasets

Why this matters in Dallas

Typical Dallas setups mix:

  • On-prem SQL Server at HQ
  • Azure SQL Database or Synapse for newer workloads
  • Files on local file servers or SharePoint Online

If every analyst builds their own dataset directly against these sources, you’ll get:

  • Multiple refresh schedules hitting the same SQL Server during business hours
  • Slightly different transformation logic per report
  • RLS implemented (or forgotten) in inconsistent ways

By centralizing datasets in a dedicated “Data Models” workspace, you:

  • Control refresh windows (important if your Dallas SQL Server has limited maintenance windows)
  • Apply RLS once per model
  • Give departments a consistent semantic layer

Step 2: Choose Import vs DirectQuery vs Hybrid for Dallas Data Sources

This Dallas company’s core data lives in:

  • On-prem SQL Server (transactions, inventory, HR)
  • Azure SQL Database (online sales, marketing events)
  • A growing data lake for logs and semi-structured data

Power BI offers several storage modes:

  • Import: Data cached in the Power BI model
  • DirectQuery: Queries sent to the source at run time
  • Dual (composite models): Tables can be Import or DirectQuery

Practical guidance for this scenario

  1. Use Import for core fact and dimension tables when possible

    • Pros: Fast, consistent performance, good for standard Dallas reporting (sales by store, by day, by product)
    • Requirements:
      • Data volume fits within your capacity (Pro or Premium; check current Microsoft limits for dataset size by license)
      • Refresh window available (e.g., nightly refresh outside local business hours)
  2. Use DirectQuery selectively for near-real-time or very large tables

    • Typical Dallas use: near-real-time POS or IoT streams where latency matters more than historical depth
    • You must account for:
      • Query limits and timeouts
      • Load on the on-prem SQL Server during business hours
  3. Use composite models (Import + DirectQuery) where you need both historical speed and recent detail

    • Example: Import the last 2 years of sales, keep the last few hours in DirectQuery from Azure SQL or a streaming store

Common mistake in local on-prem SQL setups

Many Dallas teams default to DirectQuery against on-prem SQL Server because they’re nervous about “duplicating” data. The result:

  • Every report click fires queries against the HQ server
  • Performance is unpredictable when other systems are busy

Unless you truly need real-time numbers, Import against on-prem SQL Server is usually the safer choice. You can still refresh multiple times per day if the infrastructure and licensing allow it.


Step 3: Build a Clean Model for Regional and Store-Level Analytics

To fix inconsistent numbers, you need a single shared model. For our Dallas business, the core model might include:

  • Fact tables:
    • FactSales
    • FactInventory
    • FactStaffing
  • Dimensions:
    • DimDate
    • DimStore
    • DimProduct
    • DimCustomer

Example: Basic Dallas store dimension

Assume DimStore has columns:

  • StoreKey (surrogate key)
  • StoreName
  • CityName ("Dallas", "Plano", "Frisco", etc.)
  • RegionName ("DFW", "Houston", etc.)

A simple measure for total sales:

Total Sales =
    SUM ( FactSales[SalesAmount] )

A measure for Dallas-only sales using the dimension:

Dallas Sales =
    CALCULATE (
        [Total Sales],
        KEEPFILTERS ( DimStore[CityName] = "Dallas" )
    )

This measure relies on:

  • A relationship between FactSales[StoreKey] and DimStore[StoreKey]
  • DimStore[CityName] populated correctly for each store

If your current reports hard-code filters in visuals instead of using measures like this, you’ll get inconsistent results when people copy visuals into new pages or apply different slicers.

Model design tips for this scenario

  • Keep one date table with a single relationship to each fact table; mark it as a Date table in Power BI
  • Use surrogate keys (StoreKey, ProductKey) rather than natural keys when possible
  • Avoid bi-directional relationships unless you have a clear need and understand the filter propagation impact

Step 4: Implement Row-Level Security for Regions and Departments

Dallas businesses often need:

  • Regional managers to see only their stores
  • Department heads to see only their metrics

Power BI supports Row-Level Security (RLS) defined on the model. For our scenario, we’ll implement region-based RLS on DimStore.

Static RLS for a region manager

Create a role in Power BI Desktop named DFW Region Manager with this filter on DimStore:

[RegionName] = "DFW"

This role restricts all visuals to stores where RegionName is "DFW" once published and assigned to users in the Power BI service.

Dynamic RLS using a bridge table

For more flexible security (e.g., mapping users to multiple regions):

  1. Create a table UserRegionAccess with columns:

    • UserPrincipalName (matches the user’s sign-in name)
    • RegionName
  2. Relate UserRegionAccess[RegionName] to DimStore[RegionName] (single direction, from UserRegionAccess to DimStore).

  3. Define a role with this filter on UserRegionAccess:

UserRegionAccess[UserPrincipalName] = USERPRINCIPALNAME ()

This pattern:

  • Filters UserRegionAccess to the current user
  • Propagates the filter to DimStore via the relationship
  • Restricts fact tables through their relationship to DimStore

Key points:

  • RLS is enforced on the model level, not per report
  • In the Power BI service, you must assign users or groups to roles for them to take effect
  • RLS interacts with workspace access: users need access to the dataset and the app, and then RLS further filters what they see

For Dallas teams with mixed HQ and field staff, this pattern avoids duplicating reports per region.


Step 5: Plan Refresh Around Dallas Infrastructure Realities

Our scenario has:

  • On-prem SQL Server at the Dallas HQ
  • Azure SQL Database for cloud workloads

On-prem SQL Server

To refresh Import-mode datasets from on-prem SQL Server, you need a Power BI gateway (on-premises data gateway) installed and configured.

Typical steps:

  1. Install the gateway on a server that has network access to the SQL Server
  2. Register it with your Power BI tenant
  3. Create a data source in the Power BI service pointing to the SQL Server
  4. Map the dataset’s data source to the gateway

Refresh scheduling

For a Dallas business with typical working hours (roughly 8:00–18:00 local):

  • Schedule heavy refreshes outside peak hours (early morning or late evening Dallas time)
  • Use multiple daily refreshes only if the source system can handle the load

Power BI Pro has limits on the number of scheduled refreshes per day per dataset; Premium capacities allow more. Check current Microsoft documentation for exact limits, as they can change.

Handling Azure sources

For Azure SQL Database and other Azure services:

  • You can usually refresh without a gateway if using cloud-to-cloud connections
  • Latency is generally lower and more predictable than on-prem, but still subject to load and service behavior

Hybrid setups (on-prem + Azure) are common in Dallas. Make sure each dataset clearly documents:

  • Which sources are on-prem vs Azure
  • Which gateway is used (if any)
  • Expected refresh time window

Step 6: Decide When Dallas Teams Need Power BI Premium

Many Dallas businesses ask whether to move from Power BI Pro to Premium (either capacity or per user). The answer depends on a few concrete needs.

Premium capacity can provide:

  • Larger dataset sizes than Pro
  • Higher refresh frequency limits
  • Dedicated capacity for more predictable performance
  • Features like deployment pipelines and advanced governance

Premium per user (PPU) provides many Premium features at the user level but still runs on shared capacity.

When our scenario likely needs Premium capacity

Consider Premium capacity if:

  • You have multiple large Import datasets that approach Pro size limits
  • You need refreshes more frequently than Pro allows
  • You want dedicated performance for executive dashboards during Dallas business hours

Consider PPU if:

  • A smaller number of power users need Premium features (e.g., large models, advanced AI features)
  • Most consumers can stay on Pro and only view shared content within the constraints of Pro

Always confirm current licensing and feature differences from Microsoft’s documentation, as specific limits and available features can change.


Step 7: Governance Without Killing Self-Service

Dallas businesses usually want two things at once:

  • Reliable, governed numbers for executives and regulators
  • Fast, flexible self-service for analysts and managers

A workable compromise for our scenario:

  1. Certified datasets in the Data Models workspace

    • Mark key models (e.g., “Sales – Certified”) as certified in the Power BI service
    • Communicate that certified models are the source of truth for official reporting
  2. Clear rules for new data sources

    • If an analyst needs a new data source (e.g., a new marketing feed), they prototype in a sandbox
    • Once it’s useful, the BI team moves it into the Data Models workspace with proper ETL and documentation
  3. Use apps to distribute official content

    • Build Power BI apps for Finance, Operations, Sales
    • Include only certified or well-governed reports and dashboards

This pattern lets Dallas analysts experiment while keeping the executive-facing numbers stable.


One Practical Takeaway for Dallas Teams

If you only do one thing next week, pick your most important Dallas report (usually sales or margin) and move it onto a single, shared Import-mode dataset in a governed workspace, with RLS implemented there instead of in visuals. That one step will expose modeling and refresh issues early, and it gives you a concrete template for turning the rest of your Power BI footprint into a reliable analytics platform rather than a collection of fragile reports.

Editor's Note

This article reflects how Dallas-based teams are consolidating scattered Power BI reports into governed shared models while balancing on-prem SQL Server realities, Azure growth, and the need for regional self-service analytics.

Professionals who want to apply these patterns to their own data can explore Excelgoodies' Power BI Training in Dallas, Texas programme - taught live by instructors, with certification awarded once a real project is running at work.

Insights compiled through ongoing industry research and discussions within the Excelgoodies Analytics Community.

Power BI

New

Next Batches Now Live

Power BIPower BI
SQLSQL
Power AppsPower Apps
Power AutomatePower Automate
Microsoft FabricMicrosoft Fabrics
AzureAzure Data Engineering
Explore Dates & Reserve Your Spot → Reserve Your Spot →