Skip to content

Commit e9c4d11

Browse files
authored
Merge pull request #31636 from chugugrace/mybranch08232024
add integration with fabric data warehouse
2 parents fcb39f8 + e0792d0 commit e9c4d11

10 files changed

Lines changed: 94 additions & 0 deletions
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
---
2+
title: "Tutorial: Integrating SSIS with Fabric Data Warehouse"
3+
description: Learn how to integrate SSIS with Fabric Data Warehouse
4+
author: chugugrace
5+
ms.author: chugu
6+
ms.date: 08/23/2024
7+
ms.service: sql
8+
ms.subservice: integration-services
9+
ms.topic: conceptual
10+
ms.custom: intro-deployment
11+
---
12+
# Tutorial: Integrating SSIS with Fabric Data Warehouse
13+
14+
[!INCLUDE[sqlserver-ssis](../../includes/applies-to-version/sqlserver-ssis.md)]
15+
16+
This document focuses on the best practices to use existing SSIS packages to work with Data warehouse in Fabric platform.
17+
18+
## Introduction
19+
20+
****Microsoft Fabric**** is a comprehensive analytics platform that covers every aspect of an organization’s data estate. One of its key experiences is Fabric Data Warehouse, which serves as a simplified SaaS solution for a fully transactional warehouse. It stores data in OneLake using an open format called Delta Parquet, ensuring that data can be accessed by other experiences within Fabric and other client applications that connect using SQL drivers.
21+
22+
****Microsoft Fabric****, as an analytics platform, exclusively supports authentication through ****Microsoft Entra ID**** for users and Service Principals (SPNs). This deliberate choice ensures centralized and identity-based security, aligning with modern security practices. So, SQL authentication and other authentication methods aren't supported in Fabric Data Warehouse within the Fabric ecosystem.
23+
24+
## Integration with Fabric Data Warehouse
25+
Microsoft SQL Server Integration Services (SSIS) is a component of the Microsoft SQL Server database that is an ETL solution. SSIS is widely used by enterprise customers to perform ETL on premises by many customers.
26+
27+
Two key modifications are required in SSIS package to work seamlessly with Fabric Data Warehouse, outlined as follows.
28+
29+
### Authentication
30+
If you're using SQL Authentication or Windows Authentication, reconfigure it to utilize Microsoft Entra ID User or Service Principal Name (SPN). Keep in mind that if you’re using a User account, multifactor authentication (MFA) must be disabled, as SSIS doesn't support pop-up prompts. It also needs respective drivers as mentioned below:
31+
32+
****To use [OLEDB connection manager](../connection-manager/ole-db-connection-manager.md)****:
33+
- Install [OLE DB Driver for SQL Server](/sql/connect/oledb/features/using-azure-active-directory) version that supports Microsoft Entra ID
34+
- Set Authentication to ****ActiveDirectoryServicePrincipal**** or ****ActiveDirectoryPassword****.
35+
- OLEDB only works for [Execute SQL Task](../control-flow/execute-sql-task.md), doesn't work for [OLE DB Destination](../data-flow/ole-db-destination.md).
36+
:::image type="content" border="false" source="media/ole-db-connection-1.png" alt-text="Screenshot of oledb connection manager part 1." lightbox="media/ole-db-connection-1.png":::
37+
:::image type="content" source="media/ole-db-connection-2.png" alt-text="Screenshot of oledb connection manager part 2." lightbox="media/ole-db-connection-2.png":::
38+
39+
****To use ADO.NET connection manager****:
40+
- Use Microsoft OLE DB provider for SQL Server for [.NET Framework Data Provider for OLE DB](/dotnet/framework/data/adonet/data-providers).
41+
- Set Authentication to ****ActiveDirectoryServicePrincipal**** or ****ActiveDirectoryPassword****.
42+
:::image type="content" source="media/ado-net-connection.png" alt-text="Screenshot of ado connection manager part 1." lightbox="media/ado-net-connection.png":::
43+
44+
### File ingestion
45+
The ****Fabric Data Warehous****e recommends utilizing the native T-SQL command ‘COPY INTO’ for efficient data insertion into the warehouse. So, any DFT operations that currently rely on ****Fast Insert Mode**** or ****BCP IN**** scripts should be replaced with the ****COPY INTO**** statement by utilizing [Execute SQL Task](../control-flow/execute-sql-task.md).
46+
47+
### SSIS writing data into Data Warehouse in Fabric
48+
49+
It's a common ETL scenario where data is read from different sources like transactional databases, network file shares, local/network etc., perform transformation steps and write back to a designated DW like a SQL server, synapse dedicated pool or any other SQL compliant data store (like shown below in the diagram).
50+
51+
:::image type="content" border="false" source="media/etl-data-warehouse-destination.png" alt-text="Diagram of etl data warehouse as destination.":::
52+
53+
In order to make same SSIS package to write to Fabric Data Warehouse, First, update the authentication to Microsoft Entra ID based if not already used. Second, temporarily stage the data in an ADLS Gen2. Then pass the path to COPY INTO command in [Execute SQL Task](../control-flow/execute-sql-task.md).
54+
55+
56+
[Flexible File Destination](../data-flow/flexible-file-destination.md) component enables an SSIS package to write data to [Azure Data Lake Storage Gen2 (ADLS Gen2)](/azure/storage/blobs/data-lake-storage-introduction). Inside Data Flow task, after loading and transformation, add a [Flexible File Destination](../data-flow/flexible-file-destination.md), in which you can define destination file name and location in ADLS Gen2.
57+
58+
:::image type="content" source="media/flexible-file-1.png" alt-text="Screenshot of Flexible file destination part 1." lightbox="media/flexible-file-1.png":::
59+
:::image type="content" source="media/flexible-file-2.png" alt-text="Screenshot of Flexible file destination part 2." lightbox="media/flexible-file-2.png":::
60+
:::image type="content" source="media/flexible-file-3.png" alt-text="Screenshot of Flexible file destination part 3." lightbox="media/flexible-file-3.png":::
61+
62+
Data landed in Azure Data Lake Storage (ADLS) Gen2 can be ingested into Warehouse using COPY statement directly via [Execute SQL Task](../control-flow/execute-sql-task.md).
63+
64+
For example:
65+
```sql
66+
COPY INTO <table_name>
67+
FROM 'https://<Your_storage_account>.dfs.core.windows.net/<folder>/'
68+
WITH (
69+
FILE_TYPE = 'CSV',
70+
CREDENTIAL=(IDENTITY= 'Storage Account Key', SECRET= '<Your_account_key>'),
71+
FIELDQUOTE = '"',
72+
FIELDTERMINATOR=',',
73+
ROWTERMINATOR='0x0A',
74+
ENCODING = 'UTF8'
75+
)
76+
```
77+
:::image type="content" source="media/execute-sql-task.png" alt-text="Screenshot of Execute sql task." lightbox="media/execute-sql-task.png" :::
78+
79+
More detail instructions refer to [Ingest data into your Warehouse using the COPY statement](/fabric/data-warehouse/ingest-data-copy).
80+
81+
### Known limitations
82+
83+
Fabric data Warehouse supports a subset of T-SQL data types and not all T-SQL all commands are currently supported. Your packages might be failed due to unsupported features. For details, please check [Data types in Warehouse](/fabric/data-warehouse/data-types?branch=main) and [T-SQL surface area](/fabric/data-warehouse/tsql-surface-area).
84+
85+
### References
86+
[T-SQL surface area - Microsoft Fabric | Microsoft Learn](/fabric/data-warehouse/tsql-surface-area)
87+
88+
[Options to get data into the Lakehouse - Microsoft Fabric | Microsoft Learn](/fabric/data-engineering/load-data-lakehouse)
89+
90+
[Ingesting data into the warehouse - Microsoft Fabric | Microsoft Learn](/fabric/data-warehouse/ingest-data)
86.9 KB
Loading
44.5 KB
Loading
70.5 KB
Loading
74 KB
Loading
28.1 KB
Loading
48.6 KB
Loading
95.5 KB
Loading
64.5 KB
Loading

docs/integration-services/toc.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,10 @@
6767
href: ../integration-services/lift-shift/ssis-azure-schedule-packages-ssms.md
6868
- name: Migrate to Azure process and tools
6969
href: ../integration-services/lift-shift/ssis-migration-to-Azure.md
70+
- name: Integrating with Microsoft Fabric
71+
items:
72+
- name: Tutorial - Integrating SSIS with Fabric Data Warehouse
73+
href: ../integration-services/fabric-integration/integrate-fabric-data-warehouse.md
7074
- name: Install Integration Services
7175
href: ../integration-services/install-windows/install-integration-services.md
7276
- name: Installing Integration Services Versions Side by Side

0 commit comments

Comments
 (0)