Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more

Reply
v-juangutier
Microsoft Employee
Microsoft Employee

Fabric Capacity Estimation

Hello everyone,

 

We are approaching new clients to implement Fabric, but we are facing a challenge to previously define an appropriate SKU.

 

Do you know which resource we can utilize to perform these CUs calculations? Something that we can use to convert from load amounts (MB, GB, TB) to CUs?

 

I consider that in these cases the trial and the capacity app are not an option, because they are big implementations, and setting up the trial environment will mean several efforts.

 

Any additional resources to perform the analysis / estimations?

 

Bests,

1 ACCEPTED SOLUTION

Hi @v-juangutier 

 

To predefine an appropriate Microsoft Fabric SKU, estimate Capacity Units (CUs) by modeling workloads based on data volume, operation types, and usage patterns.

While Microsoft Fabric doesn’t provide a direct formula to convert raw data sizes (MB, GB, TB) to CUs due to the variability of workloads , you can estimate CU requirements by modeling workloads based on data volume, operation types, and expected usage patterns.
 

Identify the client's primary Fabric workloads (eg: Data Warehouse, Lakehouse, Power BI reports, Dataflows, Spark notebooks) then estimate data volumes(e.g., 100 GB for a Lakehouse, 1 TB for a Data Warehouse), and determine the frequency and type of operations(e.g., daily ingestion, hourly queries, interactive reporting).
 

Ex: A client plans to ingest 500 GB daily into a Lakehouse, run 100 SQL queries per hour on a 2 TB Data Warehouse, and generate 50 Power BI reports viewed by 200 users daily.

 

Microsoft Fabric measures CU consumption in CU-seconds, where CUs represent compute resources (CPU, memory, I/O). Each workload consumes CUs differently based on data size and operation complexity

Workload-Specific CU Consumption Rates:
 

For instance:

 

  1. Data Warehouse: 1 Fabric Data Warehouse core = 2 CUs. A query processing 1 GB might consume ~10 CU-seconds, depending on complexity.
  2. Spark: 2 Spark vCores = 1 CU. Processing 1 GB in a notebook might consume ~50 CU-seconds for a typical ETL job.
  3. Power BI: Rendering a report with 1 GB of data might consume ~5–20 CU-seconds per user interaction, depending on visuals.
  4. OneLake: Reading 16 MB via OneLake consumes ~4 CU-seconds (e.g., 10,000 reads of 16 MB = 40,000 CU-seconds).


Esti
mate CU Usage per Workload:

Example Calculation:

 

Lakehouse Ingestion (500 GB/day):

  Assume ingestion via Dataflow Gen2, consuming ~0.1 CU-seconds per MB.

  500 GB = 500,000 MB → 500,000 × 0.1 = 50,000 CU-seconds/day.

 

Data Warehouse Queries (2 TB, 100 queries/hour):

  Assume each query processes 10 GB (10,000 MB) and consumes 100 CU-seconds. 

  100 queries × 100 CU-seconds = 10,000 CU-seconds/hour → 240,000 CU-seconds/day (24 hours).

 

Power BI Reports (50 reports, 200 users):

  Assume each report consumes 10 CU-seconds per view, with 200 users viewing 50 reports daily.

  50 reports × 200 users × 10 CU-seconds = 100,000 CU-seconds/day.

 

Total Daily CU-seconds:

 50,000 + 240,000 + 100,000 = 390,000 CU-seconds/day. 

  Convert to CU-hours: 390,000 ÷ 3,600 = ~108 CU-hours/day.

 

Map to SKU:

  1. Fabric SKUs range from F2 (2 CUs) to F2048 (2048 CUs). A SKU provides its CU value continuously for a 24-hour period.
  2. Calculate required CUs: 108 CU-hours ÷ 24 hours = ~4.5 CUs.
  3. Select the next-highest SKU: An F8 (8 CUs) would cover this workload, with room for bursting during peak usage.

 

If this post is helpful, please mark it as the Accepted Solution.

Thank You!

 

View solution in original post

6 REPLIES 6
v-karpurapud
Community Support
Community Support

Hi @v-juangutier 

Thank you for reaching out to the Microsoft Fabric Community Forum.

A special thanks to @lbendlin for sharing helpful insights.

Regarding the estimation of  Microsoft Fabric capacity 

 

Evaluate workloads, convert data load amounts using online calculators, monitor capacity consumption with the Fabric Capacity Metrics app, and optimize resources following capacity planning guidelines.

For more detailed guidance, please refer to the official Microsoft documentation:
Evaluate and optimize your Microsoft Fabric capacity - Microsoft Fabric | Microsoft Learn
Understand the metrics app compute page - Microsoft Fabric | Microsoft Learn
Save costs with Microsoft Fabric Capacity reservations - Microsoft Cost Management | Microsoft Learn...


If my response has resolved your query, please mark it as the Accepted Solution to assist others. Additionally, a 'Kudos' would be appreciated if you found my response helpful.

Thank You
 

Hi Karpurapu.

 

It doesn't respond my query.

 

Bests,

Hi @v-juangutier 

 

To predefine an appropriate Microsoft Fabric SKU, estimate Capacity Units (CUs) by modeling workloads based on data volume, operation types, and usage patterns.

While Microsoft Fabric doesn’t provide a direct formula to convert raw data sizes (MB, GB, TB) to CUs due to the variability of workloads , you can estimate CU requirements by modeling workloads based on data volume, operation types, and expected usage patterns.
 

Identify the client's primary Fabric workloads (eg: Data Warehouse, Lakehouse, Power BI reports, Dataflows, Spark notebooks) then estimate data volumes(e.g., 100 GB for a Lakehouse, 1 TB for a Data Warehouse), and determine the frequency and type of operations(e.g., daily ingestion, hourly queries, interactive reporting).
 

Ex: A client plans to ingest 500 GB daily into a Lakehouse, run 100 SQL queries per hour on a 2 TB Data Warehouse, and generate 50 Power BI reports viewed by 200 users daily.

 

Microsoft Fabric measures CU consumption in CU-seconds, where CUs represent compute resources (CPU, memory, I/O). Each workload consumes CUs differently based on data size and operation complexity

Workload-Specific CU Consumption Rates:
 

For instance:

 

  1. Data Warehouse: 1 Fabric Data Warehouse core = 2 CUs. A query processing 1 GB might consume ~10 CU-seconds, depending on complexity.
  2. Spark: 2 Spark vCores = 1 CU. Processing 1 GB in a notebook might consume ~50 CU-seconds for a typical ETL job.
  3. Power BI: Rendering a report with 1 GB of data might consume ~5–20 CU-seconds per user interaction, depending on visuals.
  4. OneLake: Reading 16 MB via OneLake consumes ~4 CU-seconds (e.g., 10,000 reads of 16 MB = 40,000 CU-seconds).


Esti
mate CU Usage per Workload:

Example Calculation:

 

Lakehouse Ingestion (500 GB/day):

  Assume ingestion via Dataflow Gen2, consuming ~0.1 CU-seconds per MB.

  500 GB = 500,000 MB → 500,000 × 0.1 = 50,000 CU-seconds/day.

 

Data Warehouse Queries (2 TB, 100 queries/hour):

  Assume each query processes 10 GB (10,000 MB) and consumes 100 CU-seconds. 

  100 queries × 100 CU-seconds = 10,000 CU-seconds/hour → 240,000 CU-seconds/day (24 hours).

 

Power BI Reports (50 reports, 200 users):

  Assume each report consumes 10 CU-seconds per view, with 200 users viewing 50 reports daily.

  50 reports × 200 users × 10 CU-seconds = 100,000 CU-seconds/day.

 

Total Daily CU-seconds:

 50,000 + 240,000 + 100,000 = 390,000 CU-seconds/day. 

  Convert to CU-hours: 390,000 ÷ 3,600 = ~108 CU-hours/day.

 

Map to SKU:

  1. Fabric SKUs range from F2 (2 CUs) to F2048 (2048 CUs). A SKU provides its CU value continuously for a 24-hour period.
  2. Calculate required CUs: 108 CU-hours ÷ 24 hours = ~4.5 CUs.
  3. Select the next-highest SKU: An F8 (8 CUs) would cover this workload, with room for bursting during peak usage.

 

If this post is helpful, please mark it as the Accepted Solution.

Thank You!

 

Amazing Karpurapu, it was the kind of guidance that I was looking for.

 

Best regards,

Juan

Thank you so much Ibendlin, I've reviewed this documentation previously, but it doesn't repond my question.

Helpful resources

Announcements
MarchFBCvideo - carousel

Fabric Monthly Update - March 2025

Check out the March 2025 Fabric update to learn about new features.

March2025 Carousel

Fabric Community Update - March 2025

Find out what's new and trending in the Fabric community.

"); $(".slidesjs-pagination" ).prependTo(".pagination_sec"); $(".slidesjs-pagination" ).append("
"); $(".slidesjs-play.slidesjs-navigation").appendTo(".playpause_sec"); $(".slidesjs-stop.slidesjs-navigation").appendTo(".playpause_sec"); $(".slidesjs-pagination" ).append(""); $(".slidesjs-pagination" ).append(""); } catch(e){ } /* End: This code is added by iTalent as part of iTrack COMPL-455 */ $(".slidesjs-previous.slidesjs-navigation").attr('tabindex', '0'); $(".slidesjs-next.slidesjs-navigation").attr('tabindex', '0'); /* start: This code is added by iTalent as part of iTrack 1859082 */ $('.slidesjs-play.slidesjs-navigation').attr('id','playtitle'); $('.slidesjs-stop.slidesjs-navigation').attr('id','stoptitle'); $('.slidesjs-play.slidesjs-navigation').attr('role','tab'); $('.slidesjs-stop.slidesjs-navigation').attr('role','tab'); $('.slidesjs-play.slidesjs-navigation').attr('aria-describedby','tip1'); $('.slidesjs-stop.slidesjs-navigation').attr('aria-describedby','tip2'); /* End: This code is added by iTalent as part of iTrack 1859082 */ }); $(document).ready(function() { if($("#slides .item").length < 2 ) { /* Fixing Single Slide click issue (commented following code)*/ // $(".item").css("left","0px"); $(".item.slidesjs-slide").attr('style', 'left:0px !important'); $(".slidesjs-stop.slidesjs-navigation").trigger('click'); $(".slidesjs-previous").css("display", "none"); $(".slidesjs-next").css("display", "none"); } var items_length = $(".item.slidesjs-slide").length; $(".slidesjs-pagination-item > button").attr("aria-setsize",items_length); $(".slidesjs-next, .slidesjs-pagination-item button").attr("tabindex","-1"); $(".slidesjs-pagination-item button").attr("role", "tab"); $(".slidesjs-previous").attr("tabindex","-1"); $(".slidesjs-next").attr("aria-hidden","true"); $(".slidesjs-previous").attr("aria-hidden","true"); $(".slidesjs-next").attr("aria-label","Next"); $(".slidesjs-previous").attr("aria-label","Previous"); //$(".slidesjs-stop.slidesjs-navigation").attr("role","button"); //$(".slidesjs-play.slidesjs-navigation").attr("role","button"); $(".slidesjs-pagination").attr("role","tablist").attr("aria-busy","true"); $("li.slidesjs-pagination-item").attr("role","list"); $(".item.slidesjs-slide").attr("tabindex","-1"); $(".item.slidesjs-slide").attr("aria-label","item"); /*$(".slidesjs-stop.slidesjs-navigation").on('click', function() { var itemNumber = parseInt($('.slidesjs-pagination-item > a.active').attr('data-slidesjs-item')); $($('.item.slidesjs-slide')[itemNumber]).find('.c-call-to-action').attr('tabindex', '0'); });*/ $(".slidesjs-stop.slidesjs-navigation, .slidesjs-pagination-item > button").on('click keydown', function() { $.each($('.item.slidesjs-slide'),function(i,el){ $(el).find('.c-call-to-action').attr('tabindex', '-1'); }); var itemNumber = parseInt($('.slidesjs-pagination-item > button.active').attr('data-slidesjs-item')); $($('.item.slidesjs-slide')[itemNumber]).find('.c-call-to-action').attr('tabindex', '0'); }); $(".slidesjs-play.slidesjs-navigation").on('click', function() { $.each($('.item.slidesjs-slide'),function(i,el){ $(el).find('.c-call-to-action').attr('tabindex', '-1'); }); }); $(".slidesjs-pagination-item button").keyup(function(e){ var keyCode = e.keyCode || e.which; if (keyCode == 9) { e.preventDefault(); $(".slidesjs-stop.slidesjs-navigation").trigger('click').blur(); $("button.active").focus(); } }); $(".slidesjs-play").on("click",function (event) { if (event.handleObj.type === "click") { $(".slidesjs-stop").focus(); } else if(event.handleObj.type === "keydown"){ if (event.which === 13 && $(event.target).hasClass("slidesjs-play")) { $(".slidesjs-stop").focus(); } } }); $(".slidesjs-stop").on("click",function (event) { if (event.handleObj.type === "click") { $(".slidesjs-play").focus(); } else if(event.handleObj.type === "keydown"){ if (event.which === 13 && $(event.target).hasClass("slidesjs-stop")) { $(".slidesjs-play").focus(); } } }); $(".slidesjs-pagination-item").keydown(function(e){ switch (e.which){ case 37: //left arrow key $(".slidesjs-previous.slidesjs-navigation").trigger('click'); e.preventDefault(); break; case 39: //right arrow key $(".slidesjs-next.slidesjs-navigation").trigger('click'); e.preventDefault(); break; default: return; } $(".slidesjs-pagination-item button.active").focus(); }); }); // Start This code is added by iTalent as part of iTrack 1859082 $(document).ready(function(){ $("#tip1").attr("aria-hidden","true").addClass("hidden"); $("#tip2").attr("aria-hidden","true").addClass("hidden"); $(".slidesjs-stop.slidesjs-navigation, .slidesjs-play.slidesjs-navigation").attr('title', ''); $("a#playtitle").focus(function(){ $("#tip1").attr("aria-hidden","false").removeClass("hidden"); }); $("a#playtitle").mouseover(function(){ $("#tip1").attr("aria-hidden","false").removeClass("hidden"); }); $("a#playtitle").blur(function(){ $("#tip1").attr("aria-hidden","true").addClass("hidden"); }); $("a#playtitle").mouseleave(function(){ $("#tip1").attr("aria-hidden","true").addClass("hidden"); }); $("a#play").keydown(function(ev){ if (ev.which ==27) { $("#tip1").attr("aria-hidden","true").addClass("hidden"); ev.preventDefault(); return false; } }); $("a#stoptitle").focus(function(){ $("#tip2").attr("aria-hidden","false").removeClass("hidden"); }); $("a#stoptitle").mouseover(function(){ $("#tip2").attr("aria-hidden","false").removeClass("hidden"); }); $("a#stoptitle").blur(function(){ $("#tip2").attr("aria-hidden","true").addClass("hidden"); }); $("a#stoptitle").mouseleave(function(){ $("#tip2").attr("aria-hidden","true").addClass("hidden"); }); $("a#stoptitle").keydown(function(ev){ if (ev.which ==27) { $("#tip2").attr("aria-hidden","true").addClass("hidden"); ev.preventDefault(); return false; } }); }); // End This code is added by iTalent as part of iTrack 1859082