<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Migrate on-premise delta tables to Databricks (Azure) in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/migrate-on-premise-delta-tables-to-databricks-azure/m-p/143122#M52100</link>
    <description>&lt;P&gt;Hi There,&lt;/P&gt;&lt;P&gt;I have the situation that we've decided to migrate our on-premise delta-lake to Azure Databricks.&lt;/P&gt;&lt;P&gt;Because of networking I can only "push" the data from on-prem to cloud.&lt;/P&gt;&lt;P&gt;What would be the best way to replicate all tables: schema+partitioning info and all data?&lt;/P&gt;&lt;P&gt;I wanted to just get the create table statements and than insert the data, but I've hit this open item... &lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/delta-io/delta/issues/1032" target="_blank"&gt;https://github.com/delta-io/delta/issues/1032&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Thanks for your suggestions&lt;/P&gt;</description>
    <pubDate>Tue, 06 Jan 2026 20:22:39 GMT</pubDate>
    <dc:creator>tonkol</dc:creator>
    <dc:date>2026-01-06T20:22:39Z</dc:date>
    <item>
      <title>Migrate on-premise delta tables to Databricks (Azure)</title>
      <link>https://community.databricks.com/t5/data-engineering/migrate-on-premise-delta-tables-to-databricks-azure/m-p/143122#M52100</link>
      <description>&lt;P&gt;Hi There,&lt;/P&gt;&lt;P&gt;I have the situation that we've decided to migrate our on-premise delta-lake to Azure Databricks.&lt;/P&gt;&lt;P&gt;Because of networking I can only "push" the data from on-prem to cloud.&lt;/P&gt;&lt;P&gt;What would be the best way to replicate all tables: schema+partitioning info and all data?&lt;/P&gt;&lt;P&gt;I wanted to just get the create table statements and than insert the data, but I've hit this open item... &lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/delta-io/delta/issues/1032" target="_blank"&gt;https://github.com/delta-io/delta/issues/1032&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Thanks for your suggestions&lt;/P&gt;</description>
      <pubDate>Tue, 06 Jan 2026 20:22:39 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/migrate-on-premise-delta-tables-to-databricks-azure/m-p/143122#M52100</guid>
      <dc:creator>tonkol</dc:creator>
      <dc:date>2026-01-06T20:22:39Z</dc:date>
    </item>
    <item>
      <title>Re: Migrate on-premise delta tables to Databricks (Azure)</title>
      <link>https://community.databricks.com/t5/data-engineering/migrate-on-premise-delta-tables-to-databricks-azure/m-p/143138#M52105</link>
      <description>&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;P&gt;The correct solution is not SQL based.&lt;/P&gt;&lt;P&gt;Delta tables are defined by the contents of the delta log directory, not by CREATE TABLE statements. That is why SHOW CREATE TABLE cannot reconstruct partitions, properties or constraints.&lt;/P&gt;&lt;P&gt;The only reliable migration method in a push-only network setup is to replicate the raw Delta folders including the delta log directory.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;RECOMMENDED MIGRATION PATTERN (PUSH ONLY)&lt;/STRONG&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;On-prem: copy full Delta folders to ADLS Gen2&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Example logic in Spark:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;List tables in the database&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;For each table, read its storage location using DESCRIBE DETAIL&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Recursively copy the entire table folder to ADLS, including the delta log folder and parquet files&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;This copies&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;delta log files&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;all parquet data files&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;schema, partitioning, constraints, table properties&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;delta version history&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;Azure Databricks: register tables&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Create the schema if missing, then create tables using:&lt;/P&gt;&lt;P&gt;CREATE TABLE schema.table&lt;BR /&gt;USING DELTA&lt;BR /&gt;LOCATION 'abfss path to the copied folder'&lt;/P&gt;&lt;P&gt;Do NOT use CTAS, INSERT, or recreate DDL.&lt;/P&gt;&lt;P&gt;The table is now identical to the on-prem table.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;OPTIONAL INCREMENTAL REPLICATION&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Use Delta Change Data Feed on-prem to push only changes.&lt;/P&gt;&lt;P&gt;Read the change feed starting from the last migrated version and write it to an ADLS change folder.&lt;/P&gt;&lt;P&gt;On Azure Databricks, MERGE the change data into the target Delta table using the primary key and change type.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;WHY SQL BASED MIGRATION FAILS&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;SHOW CREATE TABLE&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;misses partitions, properties, constraints&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CTAS or INSERT&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;loses metadata and history&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Copying the delta log directory&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;results in a perfect table clone&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;HR /&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 07 Jan 2026 07:00:17 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/migrate-on-premise-delta-tables-to-databricks-azure/m-p/143138#M52105</guid>
      <dc:creator>mukul1409</dc:creator>
      <dc:date>2026-01-07T07:00:17Z</dc:date>
    </item>
  </channel>
</rss>

