<?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 Solution Design for an ingestion workflow with 1000s of tables for each source in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/solution-design-for-an-ingestion-workflow-with-1000s-of-tables/m-p/106273#M42433</link>
    <description>&lt;P&gt;Working on an ingestion workflow in databricks which extracts data from on-prem sources in databricks following all standard practices of incremental load, indempotency, upsert, schema evolution etc and storing data properly.&lt;/P&gt;&lt;P&gt;Now we want to optimize the workflow for scale where we have more than 1000s of tables. Let's say for one source now.&lt;/P&gt;&lt;P&gt;We are using for each feature of databricks workflows to run 100 ingestionl oad tasks in parallel challenge comes where we have more than 100 and the max concurrent tasks can be 100.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;What should be the approach to handle this -&lt;BR /&gt;Some options we thought about&lt;/P&gt;&lt;P&gt;In our metadata table we have a column for priority we can use that priority column to group the tables where each workflow handle a particular priority. Then fetches table info according this&lt;/P&gt;&lt;P&gt;Now to run these multi priority workflow we can think of two approaches either create separate workflow for each priority and run them or&amp;nbsp;&lt;/P&gt;&lt;P&gt;creating a master workflow which captures table according to priority orchestrates and passes them to child workflow where other filtering happens and passes the list in for each task where incremental ingestion happens.&lt;/P&gt;&lt;P&gt;we also came to know about concurrent workflow runs.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;What will be the best approach to move forward considering we will be working on massive scale. Parallization is the preferred approach but considering all its pros and cons and how we will handle the compute cluster configuration etc.&lt;/P&gt;</description>
    <pubDate>Mon, 20 Jan 2025 06:58:48 GMT</pubDate>
    <dc:creator>ashraf1395</dc:creator>
    <dc:date>2025-01-20T06:58:48Z</dc:date>
    <item>
      <title>Solution Design for an ingestion workflow with 1000s of tables for each source</title>
      <link>https://community.databricks.com/t5/data-engineering/solution-design-for-an-ingestion-workflow-with-1000s-of-tables/m-p/106273#M42433</link>
      <description>&lt;P&gt;Working on an ingestion workflow in databricks which extracts data from on-prem sources in databricks following all standard practices of incremental load, indempotency, upsert, schema evolution etc and storing data properly.&lt;/P&gt;&lt;P&gt;Now we want to optimize the workflow for scale where we have more than 1000s of tables. Let's say for one source now.&lt;/P&gt;&lt;P&gt;We are using for each feature of databricks workflows to run 100 ingestionl oad tasks in parallel challenge comes where we have more than 100 and the max concurrent tasks can be 100.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;What should be the approach to handle this -&lt;BR /&gt;Some options we thought about&lt;/P&gt;&lt;P&gt;In our metadata table we have a column for priority we can use that priority column to group the tables where each workflow handle a particular priority. Then fetches table info according this&lt;/P&gt;&lt;P&gt;Now to run these multi priority workflow we can think of two approaches either create separate workflow for each priority and run them or&amp;nbsp;&lt;/P&gt;&lt;P&gt;creating a master workflow which captures table according to priority orchestrates and passes them to child workflow where other filtering happens and passes the list in for each task where incremental ingestion happens.&lt;/P&gt;&lt;P&gt;we also came to know about concurrent workflow runs.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;What will be the best approach to move forward considering we will be working on massive scale. Parallization is the preferred approach but considering all its pros and cons and how we will handle the compute cluster configuration etc.&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jan 2025 06:58:48 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/solution-design-for-an-ingestion-workflow-with-1000s-of-tables/m-p/106273#M42433</guid>
      <dc:creator>ashraf1395</dc:creator>
      <dc:date>2025-01-20T06:58:48Z</dc:date>
    </item>
    <item>
      <title>Re: Solution Design for an ingestion workflow with 1000s of tables for each source</title>
      <link>https://community.databricks.com/t5/data-engineering/solution-design-for-an-ingestion-workflow-with-1000s-of-tables/m-p/106298#M42439</link>
      <description>&lt;P&gt;&lt;SPAN&gt;I do did the similar kind of work in my recent project, where I need to run many SQL DDL's , so I automated the process using databricks jobs, capturing the dependency using a metadata table and creating tasks likewise in job through job api's, doing so we reduced the runtime and resource consumption significantly by 33%.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;So, Instead of&amp;nbsp;creating separate workflow/job for each priority task which would result in too many jobs and not recommended too, we can&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;create a master workflow/job which captures table according to priority orchestrates and passes them to child workflow where other filtering happens and passes the list in for each task where incremental ingestion happens is the best approach and also make sure to provision the job cluster with required compute memory, so that it'll not take so much time to compute.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jan 2025 11:42:47 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/solution-design-for-an-ingestion-workflow-with-1000s-of-tables/m-p/106298#M42439</guid>
      <dc:creator>Avinash_Narala</dc:creator>
      <dc:date>2025-01-20T11:42:47Z</dc:date>
    </item>
  </channel>
</rss>

