Forum Discussion
Common Issues while using Data lake as source for Power BI
- 5 months ago
Hello,
I’m not completely sure, but yes, performance can become an issue when using ADLS or S3 directly as a Power BI source, especially with large files, too many small files, or bad partitioning. Query folding also does not always work well, which can slow refreshes a lot
I would prefer Parquet instead of CSV, partitioning data by date, adding incremental refresh, or putting a layer like Synapse or Databricks so queries run smoother
Best regards,
Daniele - 5 months ago
Hey,
Completely agree with DanieleUgoCopp. Just to summarize in pointers:
- Query Folding = ADLS/S3 native connectors can't push filters back to the source, so Power BI pulls the entire dataset (no query folding). Fix: route through Lakehouse or Dataflow Gen2 to enable folding.
- File Format = CSV and JSON are slow to scan for analytics. Fix: Parquet or Delta format are columnar, compressed and faster.
- Indexing or Partitioning = Data lakes have no indexes, so Power BI can't skip irrelevant data. Fix: partition files by date/region and query through Synapse/Athena to leverage partition pruning.
- DirectQuery vs Import mode = In case of DirectQuery, every visual interaction fires a new query to the lake. Fix: prefer Import mode wherever possible; only use DirectQuery if real-time data is a hard requirement.
- Full vs Incrmental Refresh = Without incremental refresh, the entire lake is reloaded each time. Fix: set up incremental refresh using RangeStart/RangeEnd parameters.
- Network Latency = Large data volumes travelling from cloud storage slow everything down. Fix: pre-aggregate heavy tables in a gold layer so Power BI only pulls what it needs.
Best,
Harshit
Hello,
I’m not completely sure, but yes, performance can become an issue when using ADLS or S3 directly as a Power BI source, especially with large files, too many small files, or bad partitioning. Query folding also does not always work well, which can slow refreshes a lot
I would prefer Parquet instead of CSV, partitioning data by date, adding incremental refresh, or putting a layer like Synapse or Databricks so queries run smoother
Best regards,
Daniele