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
rks
Resolver II
Resolver II

Copy Data from Vertipaq to Lakehouse

Hi Community,
Semantic Models in PowerBI (if they are in Import Mode) offer the option to enable OneLake Integration. In that way they create Parquet-Files (https://learn.microsoft.com/de-de/power-bi/enterprise/onelake-integration-overview) in OneLake.

I have a similar scenario: migration. I have now successfully migrated the Semantic Model to a DirectLake Model but the underlying lakehouse is still empty. I don't want to import all data from my onPrem into the lakehouse again, but I would rather like to pull data into the lakehouse from the (vertipaq)-model that is already available in Fabric.
Does semantic-link or any other tool also offer an option to migrate the pure data from Vertipaq-Tables to OneLake-Tables?

Best regards,
Konstantin

1 ACCEPTED SOLUTION
v-vpabbu
Community Support
Community Support

Hi @rks,

 

Thank you for reaching out to Microsoft Fabric Community Forum.


There’s no native way to migrate data from VertiPaq to OneLake, as it stores data in a compressed, internal format optimized for querying, not for extraction.

The best way to get the data into the Lakehouse is to reload it from the original source. While you could use DAX queries to pull data, they’re not practical for large datasets.

 

If this post helps, then please consider Accepting as solution to help the other members find it more quickly, don't forget to give a "Kudos" – I’d truly appreciate it!


Regards,
Vinay Pabbu

View solution in original post

9 REPLIES 9
v-vpabbu
Community Support
Community Support

Hi @rks,

 

As we haven’t heard back from you, we wanted to kindly follow up to check if the solution provided for the issue worked? or Let us know if you need any further assistance?
If our response addressed, please mark it as Accept as solution and click Yes if you found it helpful.

 

Regards,
Vinay Pabbu

Hi @rks,

 

May I ask if you have gotten this issue resolved?

If it is solved, please mark the helpful reply or share your solution and accept it as solution, it will be helpful for other members of the community who have similar problems as yours to solve it faster.

 

Regards,
Vinay Pabbu

Hi @rks,

 

As we haven’t heard back from you, we wanted to kindly follow up to check if the solution provided for the issue worked? or Let us know if you need any further assistance?
If our response addressed, please mark it as Accept as solution and click Yes if you found it helpful.

 

Regards,
Vinay Pabbu

rks
Resolver II
Resolver II

Hi Vinay, thanks for the answer. But just for understanding this correctly: Isn't the oneLake integration (https://learn.microsoft.com/de-de/power-bi/enterprise/onelake-integration-overview) providing a native way to create parquet-files from an import model?

Assuming this is correct: Let me rephrase the question, can I disable the automatic sync-process and just initially (migrate) copy the data from vertipaq to parquet? Or: Could I keep the parquet files even if I later on disable the integration button?

 

This statement - according to the docs - copies the data data from vertipaq to onelake, but only if the button is enabled (and thus all subsequent refreshes are reflected in the one lake as well).

 

{
"export": {
"layout": "delta",
"type": "full",
"objects": [
{
"database": "databaseName"
}
]
}
}

 

Best regards,
Konstantin

v-vpabbu
Community Support
Community Support

Hi @rks,

 

OneLake Integration is meant for continuous sync, not one-time migration. If enabled, it creates Parquet files from an Import Mode semantic model. However, if disabled, it’s unclear whether the existing Parquet files remain available.

 

If you need a one-time migration, you can manually copy the Parquet files to another location before turning off OneLake Integration.

 

Regards,

Vinay Pabbu

Thanks @v-vpabbu , I will try again. I believe that also the manual copied data will be deleted (at least if it's in the same workspace). 

I will try that on Wednesday and report back to this thread 🙂

@v-vpabbu I was able to try out your suggestion. 

 

1) I enabled OneLake integration for the dataset and all relevant parquet files were created

2) By using the onelake integration for Windows Explorer I copied all parquet files onto my HD

3) I created a Lakehouse in Fabric on a different workspace

4) I copied all the files into the files directory of the lakehouse

5) I used the fabric feature "load to table" to create the table

 

So here's what I observed: 

The files and the data were loaded into lakehouse-tables. However, there are two issues:
1) the table names are different from the folder names (all small caps instead of camel case)

2) the column headers were lost and were ignored

 

So it seems despite the fact the data was loaded, it can only be properly used by a high investment to "clean" the data?

 

Best regards,
Konstantin

v-vpabbu
Community Support
Community Support

Hi @rks,

 

1) the table names are different from the folder names (all small caps instead of camel case)

This is a default behavior of Delta Lake and Fabric. Fabric Lakehouse automatically converts table names to lowercase when loading from Parquet. 

 

2) the column headers were lost and were ignored

This might be a schema detection issue, where column names are being treated as data instead of headers.

Use Dataflow Gen2 to define the schema before loading.

 

Regards,

Vinay Pabbu

v-vpabbu
Community Support
Community Support

Hi @rks,

 

Thank you for reaching out to Microsoft Fabric Community Forum.


There’s no native way to migrate data from VertiPaq to OneLake, as it stores data in a compressed, internal format optimized for querying, not for extraction.

The best way to get the data into the Lakehouse is to reload it from the original source. While you could use DAX queries to pull data, they’re not practical for large datasets.

 

If this post helps, then please consider Accepting as solution to help the other members find it more quickly, don't forget to give a "Kudos" – I’d truly appreciate it!


Regards,
Vinay Pabbu

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