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

Data Days is here! Join us now for 60+ days of learning, challenges, and connection. Learn more

Reply
Anonymous
Not applicable

unable to have Backfill in Onelake avilability for KQL DB

Hi community,

I have a KQL DB with many large tables containing historical monitoring data. For the purpose of using DeltaLake based reports, I enabled OneLake Availability (also called mirroring) on all DB tables. The mirroring works fine for recently ingested data, but not for old data. I tried to enable backfill option in mirroring by disabling mirroring ( .alter-merge table MyTable policy mirroring kind=delta with (IsEnabled=false)) then reenabling it with Backfill ( .alter-mergetable MyTable policymirroringkind=deltawith(IsEnabled=true,Backfill=true)), but mirroring remains disabled as long as I have the backfill=true parameter present. When I enable it through the GUI (Availabilithy switch), the backfill is automatically disabled.

 

I'm completely struggling with this. Reingesting all tables could be a solution but this will be very challenging as well because the tables are extremly large (from hundreds of millions to billions of rows with update policies enabled on most of the tables)

Some help/guidance on this issue will be much appreciated

Thank you

1 ACCEPTED SOLUTION
nilendraFabric
Super User
Super User

Hello @Anonymous 


"When you turn availability back on, only new data is made available in OneLake with no backfill of the deleted data”

 

https://learn.microsoft.com/en-us/fabric/real-time-intelligence/event-house-onelake-availability

 

 

The `.alter-merge table` command does not support a `Backfill=true` option. Attempting to force it via KQL or the GUI will fail because Microsoft has not implemented this functionality

 

 

try Use `spark.read.format("kusto")` in a Fabric notebook to export historical data from KQL to OneLake as Delta tables

 

Ingest new data into a Lakehouse (using Eventstreams/Dataflows), then fork it to KQL via shortcuts. This ensures all data resides in OneLake while enabling real-time queries in KQL

if this is helpful please accept the answer and give kudos

 

 

 

"

View solution in original post

2 REPLIES 2
NaveenUpadhye
Advocate I
Advocate I

Why Microsoft chose this design
Eventhouse is optimized for:

  • High‑volume ingestion
  • Low‑latency queries
  • Retention‑based storage

Automatically backfilling hundreds of millions or billions of rows into Delta would:

Cause huge background scans
Compete with live ingestion
Create unpredictable capacity impact

So Microsoft intentionally made OneLake availability:
👉 Forward‑looking only

nilendraFabric
Super User
Super User

Hello @Anonymous 


"When you turn availability back on, only new data is made available in OneLake with no backfill of the deleted data”

 

https://learn.microsoft.com/en-us/fabric/real-time-intelligence/event-house-onelake-availability

 

 

The `.alter-merge table` command does not support a `Backfill=true` option. Attempting to force it via KQL or the GUI will fail because Microsoft has not implemented this functionality

 

 

try Use `spark.read.format("kusto")` in a Fabric notebook to export historical data from KQL to OneLake as Delta tables

 

Ingest new data into a Lakehouse (using Eventstreams/Dataflows), then fork it to KQL via shortcuts. This ensures all data resides in OneLake while enabling real-time queries in KQL

if this is helpful please accept the answer and give kudos

 

 

 

"

Helpful resources

Announcements
Fabric Data Days is here Carousel

Fabric Data Days 2026

Don't miss out on Data Days, June 15 through August 7. Learn Fabric, Power BI, SQL, AI and more.

June Fabric Update Carousel

Fabric Monthly Update - June 2026

Check out the June 2026 Fabric update to learn about new features.

Top Solution Authors
Top Kudoed Authors