<?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: Databricks Data Ingestion in Get Started Discussions</title>
    <link>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167326#M12070</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;There are a few different approaches to this. And these will depend on what mechanism you intend to use to read the sql server tables.&lt;/P&gt;
&lt;P&gt;The main way we recommend is to use Lakeflow Connect, this is usually the cheapest way especially if you can use incremental ingestion. Here are the docs-&amp;nbsp;&lt;A href="https://docs.databricks.com/aws/en/ingestion/lakeflow-connect/sql-server-pipeline?language=Databricks%C2%A0notebook" target="_blank"&gt;https://docs.databricks.com/aws/en/ingestion/lakeflow-connect/sql-server-pipeline?language=Databricks%C2%A0notebook&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;There is a strong example on how to set this up in the docs. If you then wanted to you can then programatically set up each pipeline using a loop. The downside of this is you aren't creating one pipeline and passing parameters you are creating a pipeline for each server. But each pipeline is doing whichever tables you want in the schema. To me this is probably the most efficient appraoch. You are getting the intelligence of Lakeflow connects change data capture plus you get a certian number of records ingested for free each day.&lt;/P&gt;
&lt;P&gt;You could also use DABS to loop through your servers to deploy the pipelines. This is discussed in the docs.&lt;/P&gt;
&lt;P&gt;The other posters have covered most of the other options.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;I hope this helps.&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;&lt;BR /&gt;Emma&lt;/P&gt;</description>
    <pubDate>Wed, 02 Sep 2026 16:32:03 GMT</pubDate>
    <dc:creator>emma_s</dc:creator>
    <dc:date>2026-09-02T16:32:03Z</dc:date>
    <item>
      <title>Databricks Data Ingestion</title>
      <link>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167261#M12064</link>
      <description>&lt;P&gt;Hi all,&lt;BR /&gt;&lt;BR /&gt;I am currently exploring the data ingestion feature offered by databricks, specifically connecting to a SQL server.&amp;nbsp;&lt;BR /&gt;I have gone through the UI and configured an ingestion pipeline that connects to one specific server and can read tables into databricks.&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am currently venturing into understanding if we can make an ingestion pipeline dynamic.&lt;/P&gt;&lt;P&gt;What I mean by this is, I have created a yaml file that can be run to setup an ingestion pipeline. It accepts variables from a metadata config table that can be used to populate the YAML with information such as, connection server name, pipeline name, source catalog, source schema, source table, destination catalog, destination schema and destination table name.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;So the question I have is, can we have a generic pipeline whose configurations can be altered?&amp;nbsp;&lt;BR /&gt;Use cases:&lt;BR /&gt;1. Once a pipeline is created can it be edited in the future to ingest different tables? As in using pipeline_01, I ingested table_1, table_2 present in Server_01. Can I later pass different configs to the YAML such that I use the same pipeline_01 to ingest table_03, table_04?&lt;/P&gt;&lt;P&gt;2. Can I use pipeline_01 to connect to a different to a connection server and ingest tables from this new server?&lt;/P&gt;&lt;P&gt;Currently I am not finding a way to achieve this functionality. This will cause an issue in the future when I have say 50 servers. It will be difficult to maintain 50 different pipelines and I don't think this is desirable as well.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Can I get some insights into Data Ingestion feature and if this a viable option for my use case?&lt;BR /&gt;&lt;BR /&gt;Thank you,&lt;BR /&gt;Anush&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 02 Sep 2026 09:09:04 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167261#M12064</guid>
      <dc:creator>anushnagesh</dc:creator>
      <dc:date>2026-09-02T09:09:04Z</dc:date>
    </item>
    <item>
      <title>Re: Databricks Data Ingestion</title>
      <link>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167269#M12065</link>
      <description>&lt;P&gt;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/250293"&gt;@anushnagesh&lt;/a&gt;&amp;nbsp;Updating an existing pipeline to ingest different tables from the same SQL Server instance is fully supported. You can dynamically modify the target tables by updating the objects block inside the pipeline's ingestion_definition. This change can be applied directly via the Pipelines API, the CLI (databricks pipelines update) or by updating and redeploying the Declarative Automation Bundles DAB YAML configuration. If you configure schema-level ingestion rather than specifying individual tables, the pipeline automatically detects and replicates new tables added to that schema without requiring any configuration updates.&lt;/P&gt;&lt;P&gt;Connecting a single pipeline across multiple SQL Server instances is generally not possible. In this ingestion architecture, each &lt;STRONG&gt;ingestion gateway&lt;/STRONG&gt; is bound to a &lt;STRONG&gt;single&lt;/STRONG&gt; Unity Catalog connection via gateway_definition.connection_name and each connection maps directly to one specific SQL Server instance. The ingestion pipeline inherits this connection via ingestion_definition.ingestion_gateway_id. Each ingestion pipeline is associated with exactly one ingestion gateway and gateways cannot be generally shared across pipelines. More details &lt;A href="https://docs.databricks.com/aws/en/ingestion/lakeflow-connect/sql-server-limits" target="_self"&gt;here&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;1:1&lt;/STRONG&gt; server-to-pipeline model &lt;STRONG&gt;scales&lt;/STRONG&gt; cleanly using Declarative Automation Bundles (DABs). Your approach of driving parameterized YAML configurations from a metadata table fits this pattern well, allowing you to version-control and deploy all 50 pipelines across development, staging, and production environments with a single CLI command. If you want to streamline this footprint, you can check the new &lt;STRONG&gt;Integrated CDC&lt;/STRONG&gt; architecture which merges the gateway and ingestion pipeline into a single pipeline per server eliminating the cost and maintenance of continuously running gateway compute. More details &lt;A href="https://docs.databricks.com/aws/en/ingestion/lakeflow-connect/sql-server-integrated-pipeline" target="_self"&gt;here&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 02 Sep 2026 09:45:02 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167269#M12065</guid>
      <dc:creator>balajij8</dc:creator>
      <dc:date>2026-09-02T09:45:02Z</dc:date>
    </item>
    <item>
      <title>Re: Databricks Data Ingestion</title>
      <link>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167272#M12066</link>
      <description>&lt;P&gt;Yes, having a generic, parameter-driven ingestion architecture is the standard enterprise design pattern in Databricks to avoid managing dozens of redundant pipelines.&lt;BR /&gt;However, how you achieve this depends on whether you are using Custom Spark/Delta Lake Pipelines or Databricks Lakeflow Connect (Managed Ingestion).&lt;BR /&gt;Use Case Breakdown &amp;amp; Feasibility&lt;BR /&gt;Use Case 1: Editing a pipeline to ingest new tables (table_3, table_4)&lt;BR /&gt;• Yes, this is fully supported. You do not need to build a new pipeline for new tables. You update your central configuration file (YAML/JSON) or configuration table to register table_3 and table_4.&lt;BR /&gt;• When the pipeline triggers, it dynamically reads the updated configuration, instantiates the flows for table_3 and table_4, and ingests them alongside or independently of existing tables.&lt;BR /&gt;Use Case 2: Using the same pipeline for 50 different Database Servers&lt;BR /&gt;• Yes, but with an architectural nuance:&lt;BR /&gt;o A single pipeline can loop through or accept dynamic connections if configured as a parameter-driven job.&lt;BR /&gt;o However, for scaling across 50 database servers, the best practice is One Generic Codebase/Template deployed to 50 Pipeline Jobs (via CI/CD or Databricks Asset Bundles) rather than forcing 50 servers sequentially into a single massive execution run.&lt;BR /&gt;Architecture Approaches in Databricks&lt;BR /&gt;Depending on how your ingestion is built, here are the two main ways to implement this:&lt;BR /&gt;Approach 1: Generic Databricks Declarative Pipeline / PySpark Framework (Best for Metadata-Driven Ingestion)&lt;BR /&gt;Rather than hardcoding table names or source servers in Python or SQL scripts, your code queries a central Metadata Config (YAML file or Delta Table).&lt;BR /&gt;1. Define your Configuration (ingestion_config.yaml):&lt;BR /&gt;YAML&lt;BR /&gt;sources:&lt;BR /&gt;- connection_name: "sql_server_east"&lt;BR /&gt;jdbc_url: "jdbc:sqlserver://server01.database.windows.net:1433;database=Sales"&lt;BR /&gt;secret_scope: "db_secrets"&lt;BR /&gt;secret_key: "server01_password"&lt;BR /&gt;tables:&lt;BR /&gt;- source_table: "dbo.Orders"&lt;BR /&gt;target_table: "bronze_orders"&lt;BR /&gt;primary_key: "OrderID"&lt;BR /&gt;- source_table: "dbo.Customers"&lt;BR /&gt;target_table: "bronze_customers"&lt;BR /&gt;primary_key: "CustomerID"&lt;BR /&gt;2. Dynamic Ingestion Engine (generic_ingest.py): Similar to below snap&lt;BR /&gt;Python&lt;BR /&gt;import yaml&lt;BR /&gt;from pyspark.sql import SparkSession&lt;/P&gt;&lt;P&gt;# Read YAML config from Workspace or DBFS/Volume&lt;BR /&gt;with open("/Volumes/main/default/configs/ingestion_config.yaml", "r") as f:&lt;BR /&gt;config = yaml.safe_load(f)&lt;/P&gt;&lt;P&gt;for source in config["sources"]:&lt;BR /&gt;db_password = dbutils.secrets.get(scope=source["secret_scope"], key=source["secret_key"])&lt;BR /&gt;&lt;BR /&gt;for table_info in source["tables"]:&lt;BR /&gt;# Dynamic JDBC Read&lt;BR /&gt;df = (spark.read.format("jdbc")&lt;BR /&gt;.option("url", source["jdbc_url"])&lt;BR /&gt;.option("dbtable", table_info["source_table"])&lt;BR /&gt;.option("password", db_password)&lt;BR /&gt;.load())&lt;BR /&gt;&lt;BR /&gt;# Write dynamically to Target Bronze Delta Table&lt;BR /&gt;df.write.format("delta").mode("append").saveAsTable(f"bronze.{table_info['target_table']}")&lt;BR /&gt;• To add table_3 and table_4: Simply append them to the YAML file. The next run will automatically pick them up without code changes.&lt;BR /&gt;• To handle multiple servers: Add a new entry under sources in the YAML, or pass the server_name as a Job Parameter (dbutils.widgets.get("server_name")) to reuse the single notebook for multiple runs.&lt;BR /&gt;Approach 2: Databricks Lakeflow Connect (Managed Ingestion)&lt;BR /&gt;If you are using Lakeflow Connect (Databricks' native managed change data capture / database connector feature):&lt;BR /&gt;1. Table Changes (Use Case 1): You can edit an existing Lakeflow managed ingestion pipeline directly via the UI, Databricks CLI, or Declarative Automation Bundles (DABs). Adding new tables to the pipeline config will trigger an initial snapshot for the new tables while keeping the existing tables running incrementally.&lt;BR /&gt;2. Multiple Servers (Use Case 2): Lakeflow managed ingestion requires a Unity Catalog Connection per database server.&lt;BR /&gt;o A single Lakeflow Ingestion Gateway &amp;amp; Pipeline is bound to one source connection (one database server).&lt;BR /&gt;o Recommendation: Use Databricks Asset Bundles (DABs) to define a single declarative template (in YAML). You then parameterize the connection name and deploy 50 small, isolated server pipelines automatically via CI/CD. This prevents one failing database server from crashing the ingestion of the other 49 servers.&lt;/P&gt;</description>
      <pubDate>Wed, 02 Sep 2026 10:01:57 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167272#M12066</guid>
      <dc:creator>Satyasai</dc:creator>
      <dc:date>2026-09-02T10:01:57Z</dc:date>
    </item>
    <item>
      <title>Re: Databricks Data Ingestion</title>
      <link>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167274#M12067</link>
      <description>&lt;P&gt;Just for additional information I hope Netflix is using similar way with metadata as below and created Generic frame work using python to read the metadata and execute the process&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="50%"&gt;Table&lt;/TD&gt;&lt;TD width="50%"&gt;purpose&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Source_system&lt;/TD&gt;&lt;TD&gt;Source registration&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Source_connection&lt;/TD&gt;&lt;TD&gt;Connection details&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Tasble_metadata&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;Table Definitions&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Column_Metadata&lt;/TD&gt;&lt;TD&gt;Column Definitions&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;FILE_FORMAT&lt;/TD&gt;&lt;TD&gt;File configuration&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;PIPELINE&lt;/TD&gt;&lt;TD&gt;Pipeline definitions&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;WORKFLOW&lt;/TD&gt;&lt;TD&gt;Execution order&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Wed, 02 Sep 2026 10:10:12 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167274#M12067</guid>
      <dc:creator>Satyasai</dc:creator>
      <dc:date>2026-09-02T10:10:12Z</dc:date>
    </item>
    <item>
      <title>Re: Databricks Data Ingestion</title>
      <link>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167279#M12069</link>
      <description>&lt;P&gt;&lt;a href="https://community.databricks.com/t5/user/viewprofilepage/user-id/250293"&gt;@anushnagesh&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I think this is a very valid use case, especially if you are expecting to work with 50+ SQL Server instances. Maintaining a separate ingestion pipeline for every server and table would become difficult to manage over time.&lt;/P&gt;&lt;P&gt;In my experience, I would separate the ingestion logic from the configuration as much as possible. Instead of changing the YAML every time a new table needs to be onboarded, I would keep the ingestion logic reusable and maintain the changing information in a metadata/configuration table.&lt;/P&gt;&lt;P&gt;For example, the metadata could contain the source connection, database, schema, table, target catalog/schema/table, load type, and an active/inactive flag.&lt;/P&gt;&lt;P&gt;The overall approach would be:&lt;/P&gt;&lt;P&gt;Metadata → Reusable Lakeflow ingestion logic → Appropriate Databricks connection → SQL Server tables → Databricks target&lt;/P&gt;&lt;P&gt;For your first use case, moving from `table_1/table_2` to `table_3/table_4` is a good fit for a metadata-driven approach. The ingestion logic remains the same, while the metadata controls which tables are processed.&lt;/P&gt;&lt;P&gt;For the second use case, I would manage the SQL Server connections as Databricks connection resources and reference the appropriate connection from the ingestion configuration, rather than trying to dynamically change the server details inside the pipeline itself.&lt;/P&gt;&lt;P&gt;There is one important consideration with Lakeflow Connect: managed connectors have configuration boundaries. The source connection, ingestion objects, and other connector-specific settings are not necessarily designed to be changed dynamically at runtime through arbitrary YAML or metadata. So I wouldn't design the solution around dynamically rewriting an existing managed ingestion pipeline for every new server or table.&lt;/P&gt;&lt;P&gt;For a larger environment, I would instead use a metadata-driven Lakeflow Declarative Pipeline/orchestration approach, where the reusable ingestion logic is separated from the configuration that changes.&lt;/P&gt;&lt;P&gt;This gives you a clean separation:&lt;/P&gt;&lt;P&gt;What changes: server, connection, schema, table, target and load configuration&lt;BR /&gt;What stays the same: ingestion and transformation logic&lt;/P&gt;&lt;P&gt;With this model, onboarding a new SQL Server or a new table becomes primarily a configuration exercise rather than a new pipeline development exercise, while still working within the configuration limits of the managed Lakeflow Connect connectors.&lt;/P&gt;</description>
      <pubDate>Wed, 02 Sep 2026 10:26:29 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167279#M12069</guid>
      <dc:creator>srini_ve</dc:creator>
      <dc:date>2026-09-02T10:26:29Z</dc:date>
    </item>
    <item>
      <title>Re: Databricks Data Ingestion</title>
      <link>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167326#M12070</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;There are a few different approaches to this. And these will depend on what mechanism you intend to use to read the sql server tables.&lt;/P&gt;
&lt;P&gt;The main way we recommend is to use Lakeflow Connect, this is usually the cheapest way especially if you can use incremental ingestion. Here are the docs-&amp;nbsp;&lt;A href="https://docs.databricks.com/aws/en/ingestion/lakeflow-connect/sql-server-pipeline?language=Databricks%C2%A0notebook" target="_blank"&gt;https://docs.databricks.com/aws/en/ingestion/lakeflow-connect/sql-server-pipeline?language=Databricks%C2%A0notebook&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;There is a strong example on how to set this up in the docs. If you then wanted to you can then programatically set up each pipeline using a loop. The downside of this is you aren't creating one pipeline and passing parameters you are creating a pipeline for each server. But each pipeline is doing whichever tables you want in the schema. To me this is probably the most efficient appraoch. You are getting the intelligence of Lakeflow connects change data capture plus you get a certian number of records ingested for free each day.&lt;/P&gt;
&lt;P&gt;You could also use DABS to loop through your servers to deploy the pipelines. This is discussed in the docs.&lt;/P&gt;
&lt;P&gt;The other posters have covered most of the other options.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;I hope this helps.&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;&lt;BR /&gt;Emma&lt;/P&gt;</description>
      <pubDate>Wed, 02 Sep 2026 16:32:03 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167326#M12070</guid>
      <dc:creator>emma_s</dc:creator>
      <dc:date>2026-09-02T16:32:03Z</dc:date>
    </item>
    <item>
      <title>Re: Databricks Data Ingestion</title>
      <link>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167515#M12075</link>
      <description>&lt;P&gt;Hi All,&lt;BR /&gt;&lt;BR /&gt;Thank you all very much for your response to my queries.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Question 1:&lt;BR /&gt;It is now clear to me that once we have created an ingestion pipeline mapped to 1 ingestion gateway, we can dynamically play around with the number of tables we can ingest within this connection server by configuring the YAML appropriately.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Question 2:&lt;/P&gt;&lt;P&gt;On the other hand, I am now aware that once an ingestion pipeline is created it is mapped to a single ingestion gateway. And we can not update this ingestion pipeline to point to a different ingestion gateway. I see the benefits we get via lakeflow connect, but I am still failing to see how this can be beneficial if we have 20-30 connections. This would mean we will have 30 ingestion pipelines. Wouldn't this increase the maintenance overhead? We will need to oversee 30 pipelines and this would only grow as number of servers increases.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 04 Sep 2026 09:11:59 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167515#M12075</guid>
      <dc:creator>anushnagesh</dc:creator>
      <dc:date>2026-09-04T09:11:59Z</dc:date>
    </item>
    <item>
      <title>Re: Databricks Data Ingestion</title>
      <link>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167516#M12076</link>
      <description>&lt;P&gt;Hi emma_s,&lt;BR /&gt;&lt;BR /&gt;Thank you for your response to my queries.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Question 1:&lt;BR /&gt;It is now clear to me that once we have created an ingestion pipeline mapped to 1 ingestion gateway, we can dynamically play around with the number of tables we can ingest within this connection server by configuring the YAML appropriately.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Question 2:&lt;/P&gt;&lt;P&gt;On the other hand, I am now aware that once an ingestion pipeline is created it is mapped to a single ingestion gateway. And we can not update this ingestion pipeline to point to a different ingestion gateway. I see the benefits we get via lakeflow connect, but I am still failing to see how this can be beneficial if we have 20-30 connections. This would mean we will have 30 ingestion pipelines. Wouldn't this increase the maintenance overhead? We will need to oversee 30 pipelines and this would only grow as number of servers increases.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 04 Sep 2026 09:18:31 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167516#M12076</guid>
      <dc:creator>anushnagesh</dc:creator>
      <dc:date>2026-09-04T09:18:31Z</dc:date>
    </item>
    <item>
      <title>Re: Databricks Data Ingestion</title>
      <link>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167522#M12077</link>
      <description>&lt;P&gt;I completely understand your concern, and I think this is a valid question.&lt;/P&gt;&lt;P&gt;If one ingestion pipeline is permanently associated with one ingestion gateway, then from an operational perspective, 20–30 source connections could indeed result in 20–30 ingestion pipelines. At first glance, that does sound like additional maintenance overhead, especially as the number of source systems continues to grow.&lt;/P&gt;&lt;P&gt;However, I think the key is to differentiate between having multiple pipeline instances and maintaining multiple independent pipeline implementations.&lt;/P&gt;&lt;P&gt;For example, I would try to manage this using a common YAML/template and metadata-driven configuration. The ingestion pattern can remain standard, while the gateway, connection, tables and target configuration are supplied per source.&lt;/P&gt;&lt;P&gt;Think of it as one reusable ingestion pattern, with each server or gateway having its own configuration and pipeline instance.&lt;/P&gt;&lt;P&gt;So you may still have 30 pipelines because of the Lakeflow Connect/gateway architecture, but ideally you should not have 30 different pipelines that need to be manually developed and maintained.&lt;/P&gt;&lt;P&gt;For example, the metadata/configuration could define:&lt;/P&gt;&lt;P&gt;Ingestion gateway&lt;BR /&gt;Source connection&lt;BR /&gt;Source database/schema&lt;BR /&gt;Tables to ingest&lt;BR /&gt;Target catalog/schema&lt;BR /&gt;Load configuration&lt;/P&gt;&lt;P&gt;A standard deployment process could then create and update the relevant pipeline configurations consistently.&lt;/P&gt;&lt;P&gt;I also think there are some advantages to having the pipelines separated by connection/gateway. For example, issues with one source connection are more isolated and do not necessarily impact ingestion from other source systems. It can also make monitoring, troubleshooting and access management more clearly scoped to a particular source.&lt;/P&gt;&lt;P&gt;That said, I agree that the number of pipeline resources can become an operational challenge at scale. In my view, this is where automation becomes important. I would avoid managing 30 pipelines manually through the UI and instead use a standardised configuration, source control and CI/CD approach to manage them.&lt;/P&gt;&lt;P&gt;So, the way I see it is, you may have multiple pipeline instances, but you should aim for a single reusable ingestion pattern and automate the creation and configuration of those pipelines.&lt;/P&gt;&lt;P&gt;That way, onboarding a new SQL Server becomes mainly a configuration/deployment exercise rather than creating and maintaining a completely new ingestion solution each time.&lt;/P&gt;</description>
      <pubDate>Fri, 04 Sep 2026 09:37:15 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/databricks-data-ingestion/m-p/167522#M12077</guid>
      <dc:creator>srini_ve</dc:creator>
      <dc:date>2026-09-04T09:37:15Z</dc:date>
    </item>
  </channel>
</rss>

