<?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 Re: Migrating logic from Airflow DAGs to Databricks Workflow in Data Engineering</title>
    <link>https://community.databricks.com/t5/data-engineering/migrating-logic-from-airflow-dags-to-databricks-workflow/m-p/105292#M42065</link>
    <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 class="mb-2 mt-6 text-lg first:mt-3"&gt;Dynamic Task Mapping&lt;/H2&gt;
&lt;P&gt;&lt;SPAN&gt;Databricks Workflows offers a similar concept to Airflow's dynamic task mapping through the "For each" task type&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class="inline-flex h-[1rem] min-w-[1rem] items-center justify-center rounded-full px-[0.3em] text-center font-mono text-[0.60rem] tabular-nums md:hover:text-white border-borderMain/50 ring-borderMain/50 divide-borderMain/50 dark:divide-borderMainDark/50  dark:ring-borderMainDark/50 dark:border-borderMainDark/50 transition duration-300 bg-offsetPlus dark:bg-offsetPlusDark md:hover:bg-super"&gt;&lt;LI-WRAPPER&gt;&lt;SPAN&gt;&lt;BR /&gt;This allows you to run a task in a loop, passing different parameters to each iteration. Here's how you can replicate the functionality of Airflow's&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;CODE&gt;.expand()&lt;/CODE&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;function:&lt;/SPAN&gt;&lt;/LI-WRAPPER&gt;&lt;/DIV&gt;
&lt;OL class="marker:text-textOff list-decimal pl-8"&gt;
&lt;LI&gt;&lt;SPAN&gt;Create a "For each" task in your Databricks Workflow.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Define the iterable items (similar to what you'd pass to&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;CODE&gt;.expand()&lt;/CODE&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;in Airflow).&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Specify a nested task that will be executed for each item in the iterable.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;For example, if you have a list of dates to process, you could set up a "For each" task that iterates over these dates and runs a notebook or Python wheel for each one.&lt;BR /&gt;&lt;BR /&gt;Reference:&amp;nbsp;&lt;A href="https://docs.databricks.com/en/jobs/for-each.html" target="_blank"&gt;https://docs.databricks.com/en/jobs/for-each.html&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In Databricks Workflows, there isn't a direct equivalent to Airflow's&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;CODE&gt;get_current_context()&lt;/CODE&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;function. However, you can access similar information through different means:&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL class="marker:text-textOff list-decimal pl-8"&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;Job Parameters&lt;/STRONG&gt;: You can define job-level parameters that are accessible to all tasks within the workflow&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="whitespace-nowrap"&gt;.&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;Task Values&lt;/STRONG&gt;: Databricks Workflows supports "Task Values," which allow you to set and retrieve small values from tasks&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="whitespace-nowrap"&gt;.&lt;/SPAN&gt;&amp;nbsp;This can be used to pass information between tasks in a workflow.&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;Dynamic Values&lt;/STRONG&gt;: Databricks Workflows supports dynamic value references, which allow you to access certain runtime information&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="whitespace-nowrap"&gt;.&lt;/SPAN&gt;&amp;nbsp;For example:&lt;/SPAN&gt;
&lt;UL class="marker:text-textOff list-disc"&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;CODE&gt;{{job.run_id}}&lt;/CODE&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;gives you the current job run ID&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;CODE&gt;{{job.start_time}}&lt;/CODE&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;provides the job start time&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Notebook Parameters&lt;/STRONG&gt;: If you're using notebook tasks, you can pass parameters to the notebook, which can include runtime information.&lt;BR /&gt;&lt;BR /&gt;Reference:&amp;nbsp;&lt;A href="https://docs.databricks.com/en/jobs/job-parameters.html" target="_blank"&gt;https://docs.databricks.com/en/jobs/job-parameters.html&lt;/A&gt;&amp;nbsp;and&amp;nbsp;&lt;A href="https://docs.databricks.com/en/jobs/task-parameters.html" target="_blank"&gt;https://docs.databricks.com/en/jobs/task-parameters.html&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/OL&gt;</description>
    <pubDate>Sat, 11 Jan 2025 14:19:41 GMT</pubDate>
    <dc:creator>Walter_C</dc:creator>
    <dc:date>2025-01-11T14:19:41Z</dc:date>
    <item>
      <title>Migrating logic from Airflow DAGs to Databricks Workflow</title>
      <link>https://community.databricks.com/t5/data-engineering/migrating-logic-from-airflow-dags-to-databricks-workflow/m-p/104501#M41771</link>
      <description>&lt;P&gt;Hello community,&lt;BR /&gt;I'm planning to migrate some logics of Airflow DAGs on Databricks Workflow. But, I was facing out to some doubts that I have in order to migrate (to find the respective) the logic of my actual code from DAGs to Workflow.&lt;/P&gt;&lt;P&gt;There are two points:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;A href="https://airflow.apache.org/docs/apache-airflow/stable/authoring-and-scheduling/dynamic-task-mapping.html" target="_blank"&gt;https://airflow.apache.org/docs/apache-airflow/stable/authoring-and-scheduling/dynamic-task-mapping.html&lt;/A&gt;, in particular how is it possible to replicate using Workflows the .expand() function?&lt;/LI&gt;&lt;LI&gt;How to get something like:&amp;nbsp;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;context&lt;/SPAN&gt; &lt;SPAN&gt;=&lt;/SPAN&gt; &lt;SPAN&gt;get_current_context&lt;/SPAN&gt;&lt;SPAN&gt;()&amp;nbsp;&lt;A href="https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/operators/python/index.html#airflow.operators.python.get_current_context" target="_blank"&gt;https://airflow.apache.org/docs/apache-airflow/stable/_api/airflow/operators/python/index.html#airflow.operators.python.get_current_context&lt;/A&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;</description>
      <pubDate>Tue, 07 Jan 2025 12:06:11 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/migrating-logic-from-airflow-dags-to-databricks-workflow/m-p/104501#M41771</guid>
      <dc:creator>jeremy98</dc:creator>
      <dc:date>2025-01-07T12:06:11Z</dc:date>
    </item>
    <item>
      <title>Re: Migrating logic from Airflow DAGs to Databricks Workflow</title>
      <link>https://community.databricks.com/t5/data-engineering/migrating-logic-from-airflow-dags-to-databricks-workflow/m-p/104595#M41812</link>
      <description>&lt;P&gt;Hi &lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/133094"&gt;@jeremy98&lt;/a&gt;&amp;nbsp;, you can leverage databricks dbutils.notebook.run() context to dynamically created jobs/tasks.&lt;/P&gt;&lt;P&gt;Refer following link for more&amp;nbsp;&lt;A href="https://docs.databricks.com/en/notebooks/notebook-workflows.html" target="_blank"&gt;https://docs.databricks.com/en/notebooks/notebook-workflows.html&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 07 Jan 2025 20:52:02 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/migrating-logic-from-airflow-dags-to-databricks-workflow/m-p/104595#M41812</guid>
      <dc:creator>hari-prasad</dc:creator>
      <dc:date>2025-01-07T20:52:02Z</dc:date>
    </item>
    <item>
      <title>Re: Migrating logic from Airflow DAGs to Databricks Workflow</title>
      <link>https://community.databricks.com/t5/data-engineering/migrating-logic-from-airflow-dags-to-databricks-workflow/m-p/105282#M42063</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Hi Hari, thanks for your response! So, are you essentially suggesting moving forward by using notebooks to build these new workflows? In Airflow DAGs, we typically have a main DAG where we define tasks, and within each task, there are functionalities that call methods from Python files in our "custom libraries." Are you suggesting moving all these custom methods from the libraries I’ve defined into simple notebooks?&lt;BR /&gt;&lt;BR /&gt;I want to ask suggestions also to our Databricks Employees like&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/106294"&gt;@Alberto_Umana&lt;/a&gt;,&amp;nbsp;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/88823"&gt;@Walter_C&lt;/a&gt;. Thanks for your help guys.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 11 Jan 2025 11:48:31 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/migrating-logic-from-airflow-dags-to-databricks-workflow/m-p/105282#M42063</guid>
      <dc:creator>jeremy98</dc:creator>
      <dc:date>2025-01-11T11:48:31Z</dc:date>
    </item>
    <item>
      <title>Re: Migrating logic from Airflow DAGs to Databricks Workflow</title>
      <link>https://community.databricks.com/t5/data-engineering/migrating-logic-from-airflow-dags-to-databricks-workflow/m-p/105292#M42065</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 class="mb-2 mt-6 text-lg first:mt-3"&gt;Dynamic Task Mapping&lt;/H2&gt;
&lt;P&gt;&lt;SPAN&gt;Databricks Workflows offers a similar concept to Airflow's dynamic task mapping through the "For each" task type&lt;/SPAN&gt;&lt;/P&gt;
&lt;DIV class="inline-flex h-[1rem] min-w-[1rem] items-center justify-center rounded-full px-[0.3em] text-center font-mono text-[0.60rem] tabular-nums md:hover:text-white border-borderMain/50 ring-borderMain/50 divide-borderMain/50 dark:divide-borderMainDark/50  dark:ring-borderMainDark/50 dark:border-borderMainDark/50 transition duration-300 bg-offsetPlus dark:bg-offsetPlusDark md:hover:bg-super"&gt;&lt;LI-WRAPPER&gt;&lt;SPAN&gt;&lt;BR /&gt;This allows you to run a task in a loop, passing different parameters to each iteration. Here's how you can replicate the functionality of Airflow's&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;CODE&gt;.expand()&lt;/CODE&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;function:&lt;/SPAN&gt;&lt;/LI-WRAPPER&gt;&lt;/DIV&gt;
&lt;OL class="marker:text-textOff list-decimal pl-8"&gt;
&lt;LI&gt;&lt;SPAN&gt;Create a "For each" task in your Databricks Workflow.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Define the iterable items (similar to what you'd pass to&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;CODE&gt;.expand()&lt;/CODE&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;in Airflow).&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Specify a nested task that will be executed for each item in the iterable.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;For example, if you have a list of dates to process, you could set up a "For each" task that iterates over these dates and runs a notebook or Python wheel for each one.&lt;BR /&gt;&lt;BR /&gt;Reference:&amp;nbsp;&lt;A href="https://docs.databricks.com/en/jobs/for-each.html" target="_blank"&gt;https://docs.databricks.com/en/jobs/for-each.html&lt;/A&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In Databricks Workflows, there isn't a direct equivalent to Airflow's&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;CODE&gt;get_current_context()&lt;/CODE&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;function. However, you can access similar information through different means:&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL class="marker:text-textOff list-decimal pl-8"&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;Job Parameters&lt;/STRONG&gt;: You can define job-level parameters that are accessible to all tasks within the workflow&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="whitespace-nowrap"&gt;.&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;Task Values&lt;/STRONG&gt;: Databricks Workflows supports "Task Values," which allow you to set and retrieve small values from tasks&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="whitespace-nowrap"&gt;.&lt;/SPAN&gt;&amp;nbsp;This can be used to pass information between tasks in a workflow.&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;STRONG&gt;Dynamic Values&lt;/STRONG&gt;: Databricks Workflows supports dynamic value references, which allow you to access certain runtime information&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="whitespace-nowrap"&gt;.&lt;/SPAN&gt;&amp;nbsp;For example:&lt;/SPAN&gt;
&lt;UL class="marker:text-textOff list-disc"&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;CODE&gt;{{job.run_id}}&lt;/CODE&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;gives you the current job run ID&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;CODE&gt;{{job.start_time}}&lt;/CODE&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;provides the job start time&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Notebook Parameters&lt;/STRONG&gt;: If you're using notebook tasks, you can pass parameters to the notebook, which can include runtime information.&lt;BR /&gt;&lt;BR /&gt;Reference:&amp;nbsp;&lt;A href="https://docs.databricks.com/en/jobs/job-parameters.html" target="_blank"&gt;https://docs.databricks.com/en/jobs/job-parameters.html&lt;/A&gt;&amp;nbsp;and&amp;nbsp;&lt;A href="https://docs.databricks.com/en/jobs/task-parameters.html" target="_blank"&gt;https://docs.databricks.com/en/jobs/task-parameters.html&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;
&lt;/OL&gt;</description>
      <pubDate>Sat, 11 Jan 2025 14:19:41 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/migrating-logic-from-airflow-dags-to-databricks-workflow/m-p/105292#M42065</guid>
      <dc:creator>Walter_C</dc:creator>
      <dc:date>2025-01-11T14:19:41Z</dc:date>
    </item>
    <item>
      <title>Re: Migrating logic from Airflow DAGs to Databricks Workflow</title>
      <link>https://community.databricks.com/t5/data-engineering/migrating-logic-from-airflow-dags-to-databricks-workflow/m-p/105304#M42074</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;Thank you for your amazing response! You provided all the information I needed at this moment, and I truly appreciate it.&lt;/P&gt;&lt;P&gt;However, I have a doubt regarding the following example code:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;(Old) file.py - Based on Airflow DAGs:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;with (...):  
    @task  
    def task_1():  
        ...  
        process_email()  
        ...  

    @task  
    def task_2():  
        ...  &lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;(New) file.py - Databricks Workflow:&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Here, all task definitions are consolidated into a single notebook file, with callable functions that execute the required tasks using the base_parameters passed for example calling function: "task_1", in the other type of task, function: "task_2".&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;But I think I made a mistake in the settings. Instead of properly splitting the old file.py into individual tasks (where each task corresponds to a separate notebook file), we replicated the entire structure for each task in one notebook.&lt;/P&gt;&lt;P&gt;Now, regarding the process_email method inside task_1:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Should I create a separate task for the process_email functionality?&lt;/LI&gt;&lt;LI&gt;Currently, I placed the process_email function inside the src folder and imported it using a wheel package. Is this the correct approach?&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Additionally, could you clarify which parts of the code are most suitable for inclusion in a wheel package file?&lt;/P&gt;&lt;P&gt;Thank you again for your help!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 11 Jan 2025 18:29:43 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/migrating-logic-from-airflow-dags-to-databricks-workflow/m-p/105304#M42074</guid>
      <dc:creator>jeremy98</dc:creator>
      <dc:date>2025-01-11T18:29:43Z</dc:date>
    </item>
    <item>
      <title>Re: Migrating logic from Airflow DAGs to Databricks Workflow</title>
      <link>https://community.databricks.com/t5/data-engineering/migrating-logic-from-airflow-dags-to-databricks-workflow/m-p/105305#M42075</link>
      <description>&lt;P&gt;Yes, it is a good practice to create a separate task for the &lt;CODE&gt;process_email&lt;/CODE&gt; functionality. This will help in modularizing your code and make it easier to manage and debug. Each task should ideally perform a single responsibility, and separating &lt;CODE&gt;process_email&lt;/CODE&gt; into its own task aligns with this principle.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P class="_1t7bu9h1 paragraph"&gt;The parts of the code that are better to be included in a wheel package are:&lt;/P&gt;
&lt;UL class="_1t7bu9h7 _1t7bu9h2"&gt;
&lt;LI&gt;Utility functions like &lt;CODE&gt;process_email&lt;/CODE&gt; that are used across multiple tasks or notebooks.&lt;/LI&gt;
&lt;LI&gt;Commonly used helper functions or classes that provide shared functionality.&lt;/LI&gt;
&lt;LI&gt;Configuration settings or constants that need to be accessed by multiple components of your workflow.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 11 Jan 2025 19:44:49 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/migrating-logic-from-airflow-dags-to-databricks-workflow/m-p/105305#M42075</guid>
      <dc:creator>Walter_C</dc:creator>
      <dc:date>2025-01-11T19:44:49Z</dc:date>
    </item>
    <item>
      <title>Re: Migrating logic from Airflow DAGs to Databricks Workflow</title>
      <link>https://community.databricks.com/t5/data-engineering/migrating-logic-from-airflow-dags-to-databricks-workflow/m-p/105328#M42080</link>
      <description>&lt;P&gt;Hello, thanks for your explanation, really helpful! Instead, for testing unique tasks etc. Building Unit Test or Integration tests, how to use databricks yml to set this?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 12 Jan 2025 12:36:24 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/migrating-logic-from-airflow-dags-to-databricks-workflow/m-p/105328#M42080</guid>
      <dc:creator>jeremy98</dc:creator>
      <dc:date>2025-01-12T12:36:24Z</dc:date>
    </item>
    <item>
      <title>Re: Migrating logic from Airflow DAGs to Databricks Workflow</title>
      <link>https://community.databricks.com/t5/data-engineering/migrating-logic-from-airflow-dags-to-databricks-workflow/m-p/105423#M42115</link>
      <description>&lt;P&gt;You can use Asset Bundles&amp;nbsp;&lt;A href="https://docs.databricks.com/en/dev-tools/bundles/index.html" target="_blank"&gt;https://docs.databricks.com/en/dev-tools/bundles/index.html&lt;/A&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Jan 2025 14:07:08 GMT</pubDate>
      <guid>https://community.databricks.com/t5/data-engineering/migrating-logic-from-airflow-dags-to-databricks-workflow/m-p/105423#M42115</guid>
      <dc:creator>Walter_C</dc:creator>
      <dc:date>2025-01-13T14:07:08Z</dc:date>
    </item>
  </channel>
</rss>

