Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
1 year ago
Solved

Predefined Spark resource profiles

Inspired by this blog entry, I've been looking into using predefined Spark resource profiles: Supercharge your workloads: write-optimized default Spark configurations in Microsoft Fabric | Microsoft ...
  • Vinodh247's avatar
    1 year ago

    Good qusestion!

     

    If you want to validate this approach, a practical solution is to:

    1. Use Fabric's Activity Runs or Spark History to measure duration with each profile.

    2. Keep volume constant, switch profile, and compare metrics like CPU Time, Shuffle Read/Write, and Cached Memory.

    There are no public benchmarks from Microsoft for these specific scenarios, but i believe they have based this on early adopter feedback and internal testing from Fabric preview days (i assume)

    • WriteHeavy consistently reduces latency during large ingestions and merges.

    • ReadHeavyForSpark shows noticeable improvements in transformation heavy pipelines, especially those with large joins.

    • ReadHeavyForPBI makes PBI DL reports slick and more stable under the load.

    The rationale behind tagging each layer is commonly based on below:

    Bronze Layer (Raw Ingestion)

    • Recommended: Use WriteHeavy

      • Data is typically appended.

      • You are not reading it often; transformations happen downstream.

      • Prioritise write throughput and ingestion latency.

       

    Silver Layer (Cleansed, Business Logic Applied)

    • Decision Point: Depends on your operations per table.

    If table is append only and used in fact pipelines (transactional facts?):

    • Use: WriteHeavy

    • Optimise ETL throughput, especially if you are reading directly from Bronze and writing enriched data.

    If table is dim like (ex: SCD & lookups) and used across many pipelines:

    • Use: ReadHeavyForSpark

      • These tables are typically read heavy across many processes (joins, lookups).

      • The frequency and cost of reads outweigh the write overhead.

      • True for SCD 2, where point in time analysis needs frequent reads with filters.

       

    Gold Layer (Consumption/Visualization)

    • Use: ReadHeavyForPBI

      • Designed for consumption.

      • Read latency impacts user experience.

      • Optimised for directquery and DirectLake queries in PBI.

       

       

    Please 'Kudos' and 'Accept as Solution' if this answered your query.