top of page

Snowflake in Power BI: Should You Use DirectQuery or Import?

  • Writer: nitin rungta
    nitin rungta
  • Apr 23
  • 5 min read

Updated: Apr 24


Part A - Understanding Snowflake Pricing Model


Snowflake uses a pay-as-you-go pricing model based on consumption of credits, which are charged for:


1. Compute usage (via Virtual Warehouses)

2. Cloud services (minimal unless metadata load is very high)

3. Storage (separately billed)


For Power BI use cases, Virtual Warehouse compute cost is the main area of focus.



Let's first quickly talk about Storage and Cloud Services



Cloud Services Cost (Minimal)


This is charged in addition to compute but is usually a small % of your total.


It covers:

  • Query parsing and optimization

  • Transaction coordination

  • Metadata services (SHOW commands, etc.)

  • Authentication and security operations


It’s not charged per warehouse, but per account, and only when it exceeds 10% of total compute cost. So it’s typically negligible for normal users.



Storage Cost (Monthly, pay-per-usage)


This is charged based on the volume of data stored, not credits.

You’re billed per terabyte per month — typically ~$23/TB/month (varies by region/cloud provider)


Types of storage:

  • Active storage – your tables, views, staging areas

  • Time Travel storage – snapshots of data (if enabled)

  • Fail-safe – 7-day read-only retention, not user-configurable

Storage is NOT tied to warehouse size — it's flat-rate pricing.

There are some other costs if you use more features, but we won’t get into it now.




Compute Cost (Virtual Warehouses) – the main one


This is what most people think of when they say “Snowflake costs money.”

  • Every query you run (manually, through Power BI, dbt, etc.) runs on a virtual warehouse

  • Warehouses come in sizes: X-Small, Small, Medium, Large...

  • Each size consumes credits per hour

  • The default credit cost is $3 per credit (unless you have custom/discounted pricing)


Power BI DirectQuery consumes from here for every click.

Import only consumes from here during scheduled refreshes or Loading Data in Development stages.



Summary Table

Layer

What It Covers

Billed As

Approx Cost

Compute

Query execution (e.g. Power BI)

Credits/hour

$3/credit

Cloud Services

Metadata, auth, query planning

Credits (if >10%)

Usually negligible

Storage

Data at rest (including time travel)

$/TB/month

~$23/TB

Optional Extras

Clustering, Snowpipe, Tasks

Credits or per event

Varies




Understanding Compute Cost in More Detail



What is a “Credit” in Snowflake?

A credit is Snowflake’s basic billing unit for compute. You don’t pay per query, per second, or per user — you pay based on how long a warehouse runs, and how large that warehouse is.


Credit Usage = Warehouse Size × Time

Each warehouse size consumes a different number of credits per hour:


Please Note - The below table values might change. Please refer to your actual agreement with Snowflake for correct calculations.

Some places the cost for X-Small shows 0.5 credits per hour and some places show 1 credit per hour. Please use your actual bills for better Judgement.

We have taken 1 credit per hour as per the Official Documentation of Snowflake Pricing.

Warehouse Size

Hours

Credits per Hour

$ Cost (at $3/credit)

X-Small

1

1

$3.00/hour

Small

1

2

$6.00/hour

Medium

1

4

$12.00/hour

Large

1

8

$24.00/hour

You only pay for the warehouse while it's running — and Snowflake bills per second, with a 60-second minimum.


Example 1 – Cost of a 5-Minute Query


Here’s a breakdown of the cost of running a single 5-minute query across all main Snowflake warehouse sizes, assuming standard pricing of $3 per credit.

Warehouse Size

Credits per Hour

Time (hrs)

Credits Used

Cost per Credit

Total Cost

X-Small

1

0.0833

0.0833

$3

$0.25

Small

2

0.0833

0.1666

$3

$0.50

Medium

4

0.0833

0.3332

$3

$1.00

Large

8

0.0833

0.6664

$3

$2.00


Summary:

  • X-Small = Cheapest, but slowest

  • Small = Best balance for small workloads

  • Medium+ = Fast, but expensive for just one query

  • Large and X-Large = Overkill unless handling many concurrent users or heavy joins






Part B - Understanding Snowflake Pricing Model in context to Power Bi


Let’s start with the obvious — Snowflake is powerful, fast, and cloud-native. But when it comes to integrating Snowflake with Power BI, many people fall into one of two extremes:


  • Option 1: DirectQuery — real-time queries on live Snowflake data

  • Option 2: Import — snapshot the data once and refresh it periodically


So which one should you actually use?


Let’s go deeper.



DirectQuery vs Import Mode – What’s the Difference?


DirectQuery means every time a user clicks a visual in Power BI, a live SQL query is sent to Snowflake.


Import means the data is loaded from Snowflake into Power BI ahead of time. Visuals work off that snapshot — fast and local.



Here’s a side-by-side view for client education:


Feature

DirectQuery

Import

Speed for user

Depends on warehouse size; usually slower

Very fast (local cache)

Cost impact

High — each click = Snowflake query

Minimal — only during refresh

Max flexibility

Always live data

Data refresh needed

Power BI functionality

Limited (some DAX/PQ not supported)

Full functionality

Performance tuning

Depends on warehouse + modeling

Modeling only


Now let’s apply this to a real-world scenario.



Scenario Assumptions


Direct Query -
  • 500 end users

  • Each runs 5 queries per day

  • Each query takes ~3 seconds


That’s roughly 63 hours of Snowflake runtime per month if using DirectQuery.



Using DirectQuery (63 hrs/month)

Warehouse Size

Monthly Runtime

Monthly Cost

X-Small

63 hrs

$189.00

Small

63 hrs

$378.00

Medium

63 hrs

$756.00

Large

63 hrs

$1512.00


Import -
  • Lets assume it takes 1 minute for the refresh to run

  • You have switched on Schedule Refrsh for once per day

  • It means 30 minutes per month or 0.5 hrs



Using Import Mode (0.5 hrs/month)

Warehouse Size

Monthly Runtime

Monthly Cost

X-Small

0.5 hrs

$1.50

Small

0.5 hrs

$3.00

Medium

0.5 hrs

$6.00

Large

0.5hrs

$12.00



Cost Comparison (Snowflake Pricing)


Warehouse Size

DirectQuery Cost

Import Mode Cost

X-Small

$189.00

$1.50

Small

$378.00

$3.00

Medium

$756.00

$6.00

Large

$1512.00

$12.00





So... Use Import Mode?


Yes — in most cases, Import mode is the obvious winner:


  • Huge cost savings

  • Faster user experience

  • More Power BI features available - Like Power Query, Advance Dax, Dynamic Filter functions


But there are things to watch for.



⚠️ When Import Might Cause You Problems


  • Your dataset is too large to fit in memory

  • You need true real-time data (stock prices, logistics feeds)

  • You’re handling event-based streaming data that changes every few seconds


If any of these apply, then DirectQuery with a Medium or Large warehouse may be justified.


Please Note – Power BI also compresses data.

It uses an in-memory engine called VertiPaq, which reduces file size through columnar storage, dictionary encoding, and smart data typing. It also applies query folding, auto relationships, and caching to boost performance. We won’t get into more detail on this here. 

These optimizations make Import mode highly efficient for analytical workloads.


In conclusion, your 1 GB of data in Excel or Snowflake might shrink to just a few hundred MB once loaded into Power BI.




Our Recommendation


Start with Import mode.

Test performance.

Only consider DirectQuery if you know:

  • You need real-time data, and

  • You’re okay with higher Snowflake compute charges


For 95% of reporting scenarios, Import Mode gives better control, better speed, and massively lower Snowflake costs.


If your Snowflake bill is growing — and you’re using Power BI DirectQuery — now you know why.


Let’s talk about optimizing it together.


 
 
 

Recent Posts

See All
Naming Files and Folders

Your most boring habit will become your biggest time-saver Why Consistent Naming Matters You may not realize it now, but six months from...

 
 
 
DirectQuery vs Import Mode

Introduction When connecting Power BI to a data source like Snowflake, SQL Server, or Azure, you’re often given two choices: DirectQuery...

 
 
 

Comments


Linkedin.png
Mail.png
WA.png
Calendy.png

© 2024 by DataRoars | PurpleMe India Private Limited. All rights reserved. 

bottom of page