Complexities of Extracting SQL Server KnowledgeÂ
Whereas digital native corporations acknowledge AI’s vital position in driving innovation, many nonetheless face challenges in making their information available for downstream makes use of, equivalent to machine studying growth and superior analytics. For these organizations, supporting enterprise groups that depend on SQL Server means having information engineering assets and sustaining customized connectors, getting ready information for analytics, and making certain it’s out there to information groups for mannequin growth. Usually, this information must be enriched with extra sources and reworked earlier than it will probably inform data-driven selections.
Sustaining these processes rapidly turns into advanced and brittle, slowing down innovation. That’s why Databricks developed Lakeflow Join, which incorporates built-in information connectors for fashionable databases, enterprise functions, and file sources. These connectors present environment friendly end-to-end, incremental ingestion, are versatile and simple to arrange, and are absolutely built-in with the Databricks Knowledge Intelligence Platform for unified governance, observability, and orchestration. The brand new Lakeflow SQL Server connector is the primary database connector with strong integration for each on-premises and cloud databases to assist derive information insights from inside Databricks.
On this weblog, we’ll overview the important thing concerns for when to make use of Lakeflow Join for SQL Server and clarify easy methods to configure the connector to copy information from an Azure SQL Server occasion. Then, we’ll overview a particular use case, greatest practices, and easy methods to get began.Â
Key Architectural Concerns
Under are the important thing concerns to assist determine when to make use of the SQL Server connector.
Area & Characteristic CompatibilityÂ
Lakeflow Join helps a big selection of SQL Server database variations, together with Microsoft Azure SQL Database, Amazon RDS for SQL Server, Microsoft SQL Server working on Azure VMs and Amazon EC2, and on-premises SQL Server accessed by means of Azure ExpressRoute or AWS Direct Join.
Since Lakeflow Join runs on Serverless pipelines beneath the hood, built-in options equivalent to pipeline observability, occasion log alerting, and lakehouse monitoring may be leveraged. If Serverless will not be supported in your area, work along with your Databricks Account workforce to file a request to assist prioritize growth or deployment in that area.Â
Lakeflow Join is constructed on the Knowledge Intelligence Platform, which gives seamless integration with Unity Catalog (UC) to reuse established permissions and entry controls throughout new SQL Server sources for unified governance. In case your Databricks tables and views are on Hive, we suggest upgrading them to UC to learn from these options (AWS | Azure | GCP)!
Change Knowledge NecessitiesÂ
Lakeflow Join may be built-in with an SQL Server with Microsoft change monitoring (CT) or Microsoft Change Knowledge Seize (CDC) enabled to assist environment friendly, incremental ingestion.Â
CDC gives historic change details about insert, replace, and delete operations, and when the precise information has modified. Change monitoring identifies which rows had been modified in a desk with out capturing the precise information adjustments themselves. Study extra about CDC and the advantages of utilizing CDC with SQL Server.Â
Databricks recommends utilizing change monitoring for any desk with a main key to attenuate the load on the supply database. For supply tables with no main key, use CDC. Study extra about when to make use of it right here.
The SQL Server connector captures an preliminary load of historic information on the primary run of your ingestion pipeline. Then, the connector tracks and ingests solely the adjustments made to the information for the reason that final run, leveraging SQL Server’s CT/CDC options to streamline operations and effectivity.
Governance & Non-public Networking SafetyÂ
When a connection is established with a SQL Server utilizing Lakeflow Join:Â
- Site visitors between the shopper interface and the management airplane is encrypted in transit utilizing TLS 1.2 or later.
- The staging quantity, the place uncooked information are saved throughout ingestion, is encrypted by the underlying cloud storage supplier.
- Knowledge at relaxation is protected following greatest practices and compliance requirements.Â
- When configured with personal endpoints, all information visitors stays throughout the cloud supplier’s personal community, avoiding the general public web.Â
As soon as the information is ingested into Databricks, it’s encrypted like different datasets inside UC. The ingestion gateway that extracts snapshots, change logs, and metadata from the supply database lands in a UC Quantity, a storage abstraction greatest for registering non-tabular datasets equivalent to JSON information. This UC Quantity resides throughout the buyer’s cloud storage account inside their Digital Networks or Digital Non-public Clouds.Â
Moreover, UC enforces fine-grained entry controls and maintains audit trails to manipulate entry to this newly ingested information. UC Service credentials and Storage Credentials are saved as securable objects inside UC, making certain safe and centralized authentication administration. These credentials are by no means uncovered in logs or hardcoded into SQL ingestion pipelines, offering strong safety and entry management.
In case your group meets the above standards, contemplate Lakeflow Join for SQL Server to assist simplify information ingestion into Databricks.
Breakdown of Technical Answer
Subsequent, overview the steps for configuring Lakeflow Join for SQL Server and replicating information from an Azure SQL Server occasion.
Configure Unity Catalog Permissions
Inside Databricks, guarantee serverless compute is enabled for notebooks, workflows, and pipelines (AWS | Azure | GCP). Then, validate that the person or service principal creating the ingestion pipeline has the next UC permissions:Â
Permission Kind |
Motive |
Documentation |
CREATE CONNECTION on the metastore |
Lakeflow Join wants to determine a safe connection to the SQL Server. |
|
USE CATALOG on the goal catalog |
Required because it gives entry to the catalog the place Lakeflow Join will land the SQL Server information tables in UC. |
|
USE SCHEMA, CREATE TABLE, and CREATE VOLUME on an present schema or CREATE SCHEMA on the goal catalog |
Offers the required rights to entry schemas and create storage places for ingested information tables. |
|
Unrestricted permissions to create clusters, or a customized cluster coverage |
Required to spin up the compute assets required for the gateway ingestion course of |
Arrange Azure SQL Server
To make use of the SQL Server connector, verify that the next necessities are met:
- Affirm SQL Model
- SQL Server 2012 or a later model have to be enabled to make use of change monitoring. Nonetheless, 2016+ is really useful*. Evaluate SQL Model necessities right here.
- Configure the Database service account devoted to the Databricks ingestion.Â
- Allow change monitoring or built-in CDCÂ
- You have to have SQL Server 2012 or a later model to make use of CDC. Variations sooner than SQL Server 2016 moreover require the Enterprise version.
* Necessities as of Might 2025. Topic to alter.
Instance: Ingesting from Azure SQL Server to Databricks
Subsequent, we’ll ingest a desk from an Azure SQL Server database to Databricks utilizing Lakeflow Join. On this instance, CDC and CT present an summary of all out there choices. For the reason that desk on this instance has a main key, CT might have been the first alternative. Nonetheless, since there is just one small desk on this instance, there isn’t a concern about load overhead, so CDC was additionally included. It’s endorsed to overview when to make use of CDC, CT, or each to find out which is greatest on your information and refresh necessities.Â
1. [Azure SQL Server] Confirm and Configure Azure SQL Server for CDC and CT
Begin by accessing the Azure portal and signing in utilizing your Azure account credentials. On the left-hand aspect, click on All companies and seek for SQL Servers. Discover and click on your server, and click on the ‘Question Editor’; on this instance, sqlserver01 was chosen.Â
The screenshot under exhibits that the SQL Server database has one desk known as ‘drivers’.

Earlier than replicating the information to Databricks, both change information seize, change monitoring, or each have to be enabled.Â
For this instance, the next script is run on the database to allow CT:
This command allows change monitoring for the database with the next parameters:
- CHANGE_RETENTION = 3 DAYS: This worth tracks adjustments for 3 days (72 hours). A full refresh will likely be required in case your gateway is offline longer than the set time. It’s endorsed that this worth be elevated if extra prolonged outages are anticipated.
- AUTO_CLEANUP = ON: That is the default setting. To take care of efficiency, it routinely removes change monitoring information older than the retention interval.
Then, the next script is run on the database to allow CDC:

When each scripts end working, overview the tables part beneath the SQL Server occasion in Azure and be certain that all CDC and CT tables are created.Â
2. [Databricks] Configure the SQL Server connector in Lakeflow Join
On this subsequent step, the Databricks UI will likely be proven to configure the SQL Server connector. Alternatively, Databricks Asset Bundles (DABs), a programmatic technique to handle the Lakeflow Join pipelines as code, may also be leveraged. An instance of the total DABs script is within the appendix under.
As soon as all of the permissions are set, as specified by the Permission Stipulations part, you’re able to ingest information. Click on the + New button on the high left, then choose Add or Add information.Â

Then choose the SQL Server possibility.

The SQL Server connector is configured in a number of steps.Â
1. Arrange the ingestion gateway (AWS | Azure | GCP). On this step, present a reputation for the ingestion gateway pipeline and a catalog and schema for the UC Quantity location to extract snapshots and regularly change information from the supply database.

2. Configure the ingestion pipeline. This replicates the CDC/CT information supply and the schema evolution occasions. A SQL Server connection is required, which is created by means of the UI following these steps or with the next SQL code under:
For this instance, identify the SQL server connection insurgent as proven.Â

3. Choosing the SQL Server tables for replication. Choose the entire schema to be ingested into Databricks as an alternative of selecting particular person tables to ingest.
The entire schema may be ingested into Databricks throughout preliminary exploration or migrations. If the schema is giant or exceeds the allowed variety of tables per pipeline (see connector limits), Databricks recommends splitting the ingestion throughout a number of pipelines to take care of optimum efficiency. To be used case-specific workflows equivalent to a single ML mannequin, dashboard, or report, it’s usually extra environment friendly to ingest particular person tables tailor-made to that particular want, quite than the entire schema.

4. Configure the vacation spot the place the SQL Server tables will likely be replicated inside UC. Choose the essential catalog and sqlserver01 schema to land the information in UC.

5. Configure schedules and notifications (AWS | Azure | GCP). This closing step will assist decide how usually to run the pipeline and the place success or failure messages must be despatched. Set the pipeline to run each 6 hours and notify the person solely of pipeline failures. This interval may be configured to satisfy the wants of your workload.
The ingestion pipeline may be triggered on a customized schedule. Lakeflow Join will routinely create a devoted job for every scheduled pipeline set off. The ingestion pipeline is a process throughout the job. Optionally, extra duties may be added earlier than or after the ingestion process for any downstream processing.

After this step, the ingestion pipeline is saved and triggered, beginning a full information load from the SQL Server into Databricks.

3. [Databricks] Validate Profitable Runs of the Gateway and Ingestion Pipelines
Navigate to the Pipeline menu to examine if the gateway ingestion pipeline is working. As soon as full, seek for ‘update_progress’ throughout the pipeline occasion log interface on the backside pane to make sure the gateway efficiently ingests the supply information.

To examine the sync standing, navigate to the pipeline menu. The screenshot under exhibits that the ingestion pipeline has carried out three insert and replace (UPSERT) operations.

Navigate to the goal catalog, essential, and schema, sqlserver01, to view the replicated desk, as proven under.

4. [Databricks] Check CDC and Schema Evolution
Subsequent, confirm a CDC occasion by performing insert, replace, and delete operations within the supply desk. The screenshot of the Azure SQL Server under depicts the three occasions.

As soon as the pipeline is triggered and is accomplished, question the delta desk beneath the goal schema and confirm the adjustments.

Equally, let’s carry out a schema evolution occasion and add a column to the SQL Server supply desk, as proven under

After altering the sources, set off the ingestion pipeline by clicking the beginning button throughout the Databricks DLT UI. As soon as the pipeline has been accomplished, confirm the adjustments by searching the goal desk, as proven under. The brand new column electronic mail will likely be appended to the tip of the drivers desk.

5. [Databricks] Steady Pipeline MonitoringÂ
Monitoring their well being and habits is essential as soon as the ingestion and gateway pipelines are efficiently working. The pipeline UI gives information high quality checks, pipeline progress, and information lineage info. To view the occasion log entries within the pipeline UI, find the underside pane beneath the pipeline DAG, as proven under.Â


The occasion log entry above exhibits that the ‘drives_snapshot_flow’ was ingested from the SQL Server and accomplished. The maturity degree of STABLE signifies that the schema is secure and has not modified. Extra info on the occasion log schema may be discovered right here.
Actual-World Instance

A big-scale medical diagnostic lab utilizing Databricks confronted challenges effectively ingesting SQL Server information into its lakehouse. Earlier than implementing Lakeflow Join, the lab used Databricks Spark notebooks to tug two tables from Azure SQL Server into Databricks. Their software would then work together with the Databricks API to handle compute and job execution.Â
The medical diagnostic lab carried out Lakeflow Join for SQL Server, recognizing that this course of could possibly be simplified. As soon as enabled, the implementation was accomplished in simply at some point, permitting the medical diagnostic lab to leverage Databricks’ built-in instruments for observability with day by day incremental ingestion refreshes.Â
Operational Concerns
As soon as the SQL Server connector has efficiently established a connection to your Azure SQL Database, the subsequent step is to effectively schedule your information pipelines to optimize efficiency and useful resource utilization. As well as, it is important to observe greatest practices for programmatic pipeline configuration to make sure scalability and consistency throughout environments.
Pipeline OrchestrationÂ
There isn’t any restrict on how usually the ingestion pipeline may be scheduled to run. Nonetheless, to attenuate prices and guarantee consistency in pipeline executions with out overlap, Databricks recommends no less than a 5-minute interval between ingestion executions. This enables new information to be launched on the supply whereas accounting for computational assets and startup time.Â
The ingestion pipeline may be configured as a process inside a job. When downstream workloads depend on contemporary information arrival, process dependencies may be set to make sure the ingestion pipeline run completes earlier than executing downstream duties.
Moreover, suppose the pipeline continues to be working when the subsequent refresh is scheduled. In that case, the ingestion pipeline will behave equally to a job and skip the replace till the subsequent scheduled one, assuming the at present working replace completes on time.
Observability & Price MonitoringÂ
Lakeflow Join operates on a compute-based pricing mannequin, making certain effectivity and scalability for varied information integration wants. The ingestion pipeline operates on serverless compute, which permits for flexibility in scaling primarily based on demand and simplifies administration by eliminating the necessity for customers to configure and handle the underlying infrastructure.
Nonetheless, it is essential to notice that whereas the ingestion pipeline can run on serverless compute, the ingestion gateway for database connectors at present operates on basic compute to simplify connections to the database supply. Consequently, customers would possibly see a mix of basic and serverless DLT DBU prices mirrored of their billing.
The best technique to monitor and monitor Lakeflow Join utilization is thru system tables. Under is an instance question to view a selected Lakeflow Join pipeline’s utilization:

The official pricing for Lakeflow Join documentation (AWS | Azure | GCP) gives detailed charge info. Extra prices, equivalent to serverless egress charges (pricing), could apply. Egress prices from the Cloud supplier for traditional compute may be discovered right here (AWS | Azure | GCP).
Greatest Practices and Key Takeaways
As of Might 2025, under are a number of the greatest practices and concerns to observe when implementing this SQL Server connector:
- Configure every Ingestion Gateway to authenticate with a person or entity with entry solely to the replicated supply database.
- Make sure the person ​​is given the required permissions to create connections in UC and ingest the information.
- Make the most of DABs to reliably configure Lakeflow Join ingestion pipelines, making certain repeatability and consistency in infrastructure administration.
- For supply tables with main keys, allow Change Monitoring to attain decrease overhead and improved efficiency.
- For supply tables with no main key, allow CDC because of its potential to seize adjustments on the column degree, even with out distinctive row identifiers.
Lakeflow Join for SQL Server gives a completely managed, built-in integration for each on-premises and cloud databases for environment friendly, incremental ingestion into Databricks.
Subsequent Steps & Extra Sources
Strive the SQL Server connector in the present day to assist remedy your information ingestion challenges. Comply with the steps outlined on this weblog or overview the documentation. Study extra about Lakeflow Join on the product web page, view a product tour or view a demo of the Salesforce connector to assist predict buyer churn.
Databricks Supply Options Architects (DSAs) speed up Knowledge and AI initiatives throughout organizations. They supply architectural management, optimize platforms for price and efficiency, improve developer expertise, and drive profitable venture execution. DSAs bridge the hole between preliminary deployment and production-grade options, working carefully with varied groups, together with information engineering, technical leads, executives, and different stakeholders to make sure tailor-made options and quicker time to worth. To learn from a customized execution plan, strategic steerage, and assist all through your information and AI journey from a DSA, please contact your Databricks Account Group.
Appendix
On this elective step, to handle the Lakeflow Join pipelines as code utilizing DABs, you merely want so as to add two information to your present bundle:
- A workflow file that controls the frequency of information ingestion (assets/sqlserver.yml).
- A pipeline definition file (assets/sqlserver_pipeline.yml).
assets/sqlserver.yml:
assets/sqlserver_job.yml: