共用方式為


使用 Azure Data Factory 或 Azure Synapse Analytics 在 Microsoft Fabric Warehouse 中複製和轉換資料

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用 (部分機器翻譯)!

本文概述如何使用「複製活動」,從 Microsoft Fabric Warehouse 複製資料及將料複製到 Microsoft Fabric Warehouse。 若要深入了解,請閱讀 Azure Data FactoryAzure Synapse Analytics 的介紹文章。

支援的功能

此 Microsoft Fabric Warehouse 連接器支援下列功能:

支援的功能 IR 受控私人端點
複製活動 (來源/接收) ① ②
對應資料流 (來源/接收)
查閱活動 ① ②
GetMetadata 活動 ① ②
指令碼活動 ① ②
預存程序活動 ① ②

① Azure 整合執行階段 ② 自我裝載整合執行階段

開始使用

若要透過管線執行複製活動,您可以使用下列其中一個工具或 SDK:

使用 UI 建立 Microsoft Fabric Warehouse 連結服務

使用下列步驟,在 Azure 入口網站 UI 中建立 Microsoft Fabric Warehouse 連結服務。

  1. 瀏覽至 Azure Data Factory 或 Synapse 工作區中的 [管理] 索引標籤,並選取 [連結服務],然後選取 [新增]:

  2. 搜尋 [Warehouse],然後選取連接器。

    顯示選取 [Microsoft Fabric Warehouse 連接器] 的螢幕擷取畫面。

  3. 設定服務詳細資料,測試連線,然後建立新的連結服務。

    Microsoft Fabric Warehouse 連結服務的設定螢幕擷取畫面。

連接器設定詳細資料

下列各節提供屬性的相關詳細資料,這些屬性是用來定義 Microsoft Fabric Warehouse 特定的 Data Factory 實體。

連結服務屬性

Microsoft Fabric Warehouse 連接器支援下列驗證類型。 如需詳細資訊,請參閱對應章節:

服務主體驗證

若要使用服務主體驗證,請遵循下列步驟。

  1. 使用 Microsoft 身分識別平台註冊應用程式,並新增用戶端密碼。 之後,請記下這些值,以便用於定義連結服務:

    • 應用程式 (用戶端) 識別碼,這是連結服務中的服務主體識別碼。
    • 用戶端密碼值,這是連結服務中的服務主體金鑰。
    • 租用戶識別碼
  2. 至少授與服務主體 Microsoft Fabric 工作區中的參與者角色。 執行下列步驟:

    1. 移至您的 Microsoft Fabric 工作區,選取頂端列上的 [管理存取權]。 然後選取 [新增人員或群組]

      顯示選取 [Fabric 工作區管理存取] 的螢幕擷取畫面。

       顯示 Fabric 工作區管理存取窗格的螢幕擷取畫面。

    2. 在 [新增人員] 窗格中,輸入您的服務主體名稱,然後從下拉式清單中選取您的服務主體。

    3. 將角色指定為參與者或更新版本 (系統管理員、成員),然後選取 [新增]

      顯示新增 Fabric 工作區角色的螢幕擷取畫面。

    4. 您的服務主體會顯示在 [管理存取權] 窗格上。

以下是連結服務支援的屬性:

屬性 描述 必要
type type 屬性必須設定為 Microsoft Fabric Warehouse Yes
endpoint Microsoft Fabric Warehouse 伺服器的端點。 Yes
workspaceId Microsoft Fabric 工作區識別碼。 Yes
artifactId Microsoft Fabric Warehouse 物件識別碼。 Yes
tenant 指定您的應用程式所在租用戶的資訊 (網域名稱或租用戶識別碼)。 將滑鼠游標暫留在 Azure 入口網站右上角,即可加以擷取。 Yes
servicePrincipalId 指定應用程式的用戶端識別碼。 Yes
servicePrincipalCredentialType 用於服務主體驗證的認證類型。 允許的值為 ServicePrincipalKeyServicePrincipalCert Yes
servicePrincipalCredential 服務主體認證。
當您使用 ServicePrincipalKey 作為認證類型時,請指定應用程式的用戶端密碼值。 將此欄位標記為 SecureString 以將其安全地儲存,或參考 Azure Key Vault 中儲存的祕密
當您使用 ServicePrincipalCert 作為認證時,請在 Azure Key Vault 中參考憑證,並確定憑證內容類型為 PKCS #12
Yes
connectVia 用來連線到資料存放區的整合執行階段。 如果您的資料存放區位於私人網路中,則可使用 Azure Integration Runtime 或自我裝載整合執行階段。 若未指定,則會使用預設 Azure Integration Runtime。 No

範例:使用服務主體金鑰驗證

您也可以將服務主體金鑰儲存在 Azure Key Vault 中。

{
    "name": "MicrosoftFabricWarehouseLinkedService",
    "properties": {
        "type": "Warehouse",
        "typeProperties": {
            "endpoint": "<Microsoft Fabric Warehouse server endpoint>",
            "workspaceId": "<Microsoft Fabric workspace ID>",
            "artifactId": "<Microsoft Fabric Warehouse object ID>",
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalCredentialType": "ServicePrincipalKey",
            "servicePrincipalCredential": {
                "type": "SecureString",
                "value": "<service principal key>"
            }   
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

資料集屬性

如需可用來定義資料集的區段和屬性完整清單,請參閱資料集一文。

Microsoft Fabric Warehouse 資料集支援下列屬性:

屬性 描述 必要
type 資料集的 type 屬性必須設定為 WarehouseTable Yes
schema 結構描述的名稱。 否 (來源);是 (接收)
table 資料表/檢視的名稱。 否 (來源);是 (接收)

資料集屬性範例

{
    "name": "FabricWarehouseTableDataset",
    "properties": {
        "type": "WarehouseTable",
        "linkedServiceName": {
            "referenceName": "<Microsoft Fabric Warehouse linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring >
        ],
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        }
    }
}

複製活動屬性

如需可用來定義活動的區段和屬性完整清單,請參閱複製活動組態管線和活動。 本節提供 Microsoft Fabric Warehouse 來源和接收所支援的屬性清單。

Microsoft Fabric Warehouse 做為來源

提示

若要使用資料分割有效率地從 Microsoft Fabric Warehouse 載入資料,請在從 Microsoft Fabric Warehouse 平行複製一節深入了解。

若要從 Microsoft Fabric Warehouse 資料表複製資料,請將複製活動來源中的 type 屬性設定為 [WarehouseSource]。 複製活動的 [來源] 區段支援下列屬性:

屬性 描述 必要
type 複製活動來源的類型屬性必須設定為:WarehouseSource Yes
sqlReaderQuery 使用自訂 SQL 查詢來讀取資料。 範例:select * from MyTable No
sqlReaderStoredProcedureName 從來源資料表讀取資料的預存程序名稱。 最後一個 SQL 陳述式必須是預存程序中的 SELECT 陳述式。 No
storedProcedureParameters 預存程序的參數。
允許的值為名稱或值組。 參數的名稱和大小寫必須符合預存程序參數的名稱和大小寫。
No
queryTimeout 指定查詢命令執行的逾時。 預設值是 120 分鐘。 No
isolationLevel 指定 SQL 來源的異動鎖定行為。 允許的值為快照集。 如果未指定,則會使用資料庫的預設隔離等級。 如需詳細資訊,請參閱 system.data.isolationlevel No
partitionOptions 指定用來從 Microsoft Fabric Warehouse 載入資料的資料分割選項。
允許值為:None (預設值) 和 DynamicRange
啟用分割區選項後 (即不是 None),從 Microsoft Fabric Warehouse 同時載入資料的平行處理程度,會由複製活動的 parallelCopies 設定所控制。
No
partitionSettings 指定資料分割的設定群組。
當分割選項不是 None 時套用。
No
partitionSettings 下方:
partitionColumnName 整數類型或日期/日期時間類型 (intsmallintbigintdatedatetime2) 指定來源資料行的名稱,供平行複製的範圍分割使用。 如果未指定,則會自動偵測資料表的索引或主索引鍵作為分割資料行。
當分割選項是 DynamicRange 時套用。 如果您使用查詢來取出來源資料,請在 WHERE 子句中加上 ?DfDynamicRangePartitionCondition。 如需範例,請參閱從 Microsoft Fabric Warehouse 平行複製一節。
No
partitionUpperBound 分割區範圍分割的分割區資料行最大值。 這個值用於決定分割區的跨距,而不是用於篩選資料表中的資料列。 資料表或查詢結果中的所有資料列都會進行分割和複製。 如果未指定,複製活動會自動偵測該值。
當分割選項是 DynamicRange 時套用。 如需範例,請參閱從 Microsoft Fabric Warehouse 平行複製一節。
No
partitionLowerBound 分割區範圍分割的分割區資料行最小值。 這個值用於決定分割區的跨距,而不是用於篩選資料表中的資料列。 資料表或查詢結果中的所有資料列都會進行分割和複製。 如果未指定,複製活動會自動偵測該值。
當分割選項是 DynamicRange 時套用。 如需範例,請參閱從 Microsoft Fabric Warehouse 平行複製一節。
No

注意

在來源中使用預存程序來擷取資料時,請注意,如果您的預存程序設計為在傳入不同的參數值時傳回不同的結構描述,在從 UI 匯入結構描述,或使用自動資料表建立將資料複製到 Microsoft Fabric Warehouse 時,您可能遇到失敗,或看到非預期的結果。

範例:使用 SQL 查詢

"activities":[
    {
        "name": "CopyFromMicrosoftFabricWarehouse",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Microsoft Fabric Warehouse input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "WarehouseSource",
                "sqlReaderQuery": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

範例:使用預存程序

"activities":[
    {
        "name": "CopyFromMicrosoftFabricWarehouse",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Microsoft Fabric Warehouse input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "WarehouseSource",
                "sqlReaderStoredProcedureName": "CopyTestSrcStoredProcedureWithParameters",
                "storedProcedureParameters": {
                    "stringData": { "value": "str3" },
                    "identifier": { "value": "$$Text.Format('{0:yyyy}', <datetime parameter>)", "type": "Int"}
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

範例預存程序:

CREATE PROCEDURE CopyTestSrcStoredProcedureWithParameters
(
    @stringData varchar(20),
    @identifier int
)
AS
SET NOCOUNT ON;
BEGIN
    select *
    from dbo.UnitTestSrcTable
    where dbo.UnitTestSrcTable.stringData != stringData
    and dbo.UnitTestSrcTable.identifier != identifier
END
GO

Microsoft Fabric Warehouse 做為接收類型

Azure Data Factory 和 Synapse 管線支援使用 COPY 陳述式將資料載入 Microsoft Fabric Warehouse。

若要將資料複製到 Microsoft Fabric Warehouse,請將複製活動中的接收類型設定為 WarehouseSink。 複製活動的 [接收] 區段支援下列屬性:

屬性 描述 必要
type 複製活動接收的類型屬性必須設定為 WarehouseSink Yes
allowCopyCommand 指出是否使用 COPY 陳述式將資料載入 Microsoft Fabric Warehouse。

請參閱 使用 COPY 陳述式將資料載入 Microsoft Fabric Warehouse 一節中的條件約束和詳細資料。

允許的值為 True
Yes
copyCommandSettings 可以在 allowCopyCommand 屬性設定為 TRUE 時指定的一組屬性。 No
writeBatchTimeout 這個屬性會指定在逾時之前等待插入、upsert 和預存程式作業完成的時間。

允許的值為時間範圍。 例如 “00:30:00” 為 30 分鐘。 如果未指定任何值,逾時預設為 "00:30:00"
No
preCopyScript 指定一個供「複製活動」在每次執行時將資料寫入到 Microsoft Fabric Warehouse 前執行的 SQL 查詢。 使用此屬性來清除預先載入的資料。 No
tableOption 指定是否要根據來源結構描述,自動建立接收資料表 (如果不存在)。 允許的值包為:none (預設) 或 autoCreate No
disableMetricsCollection 該服務會收集計量,以獲得複製效能最佳化和建議,而這會導致額外的主要 DB 存取。 如果您擔心此行為,請指定 true 將其關閉。 否 (預設值為 false)

範例:Microsoft Fabric Warehouse 接收

"activities":[
    {
        "name": "CopyToMicrosoftFabricWarehouse",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Microsoft Fabric Warehouse output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "WarehouseSink",
                "allowCopyCommand": true,
                "tableOption": "autoCreate",
                "disableMetricsCollection": false
            }
        }
    }
]

從 Microsoft Fabric Warehouse 平行複製

複製活動中 Microsoft Fabric Warehouse 連接器提供內建的資料分割,以平行複製資料。 您可以在複製活動的 [來源] 索引標籤上找到資料分割選項。

分割選項的螢幕擷取畫面

當您啟用分割複本時,複製活動會平行查詢 Microsoft Fabric Warehouse 來源,以依分割區來載入資料。 平行程度由複製活動的 parallelCopies 設定所控制。 例如,如果您將 parallelCopies 設定為 4,則服務會根據您指定的分割區選項和設定,同時產生並執行四個查詢,而每個查詢都會從 Microsoft Fabric Warehouse 中擷取一部分的資料。

建議您啟用平行複製與資料分割,特別是從 Microsoft Fabric Warehouse 載入大量資料時。 以下針對各種情節的建議設定。 將資料複製到以檔案為基礎的資料存放區時,建議分成多個檔案來寫入資料夾 (僅指定資料夾名稱),這樣效能會比寫入單一檔案更好。

案例 建議的設定
從大型資料表完整載入,同時在資料分割時包含整數或日期時間資料行。 分割選項:動態範圍分割。
分割資料行 (選用):指定用來分割資料的資料行。 如果未指定,則會使用索引或主索引鍵資料行。
分割區上限分割區下限 (選用):指定是否要決定分割區跨距。 這不適用於篩選資料表中的資料列,且資料表中的所有資料列都會分割並複製。 如果未指定,複製活動會自動偵測值。

例如,如果您的分割區資料行「識別碼」具有範圍 1 到 100 之間的值,而您將下限設定為 20、上限設定為 80,且平行複製為 4,則服務會分別依 4 個分割區擷取資料 - 範圍中的識別碼分別為 <=20、[21, 50]、[51, 80] 和 >=81。
使用自訂查詢載入大量資料,同時包含整數或日期/日期時間資料行用於資料分割。 分割選項:動態範圍分割。
查詢SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
分割資料行:指定用來分割資料的資料行。
分割區上限分割區下限 (選用):指定是否要決定分割區跨距。 這不適用於篩選資料表中的資料列,且查詢結果中的所有資料列都會分割並複製。 如果未指定,複製活動會自動偵測該值。

例如,如果您的分割區資料行「識別碼」具有範圍 1 到 100 之間的值,而您將下限設定為 20、上限設定為 80,且平行複製為 4,則服務會分別依 4 個分割區擷取資料 - 範圍中的識別碼分別為 <=20、[21, 50]、[51, 80] 和 >=81。

以下是不同案例的更多範例查詢:
1.查詢整個資料表:
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
2.來自具有資料行選取範圍和其他 where 子句篩選的資料表查詢:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
3.使用子查詢進行查詢:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
4.在子查詢中使用分割區進行查詢:
SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T

使用分割區選項載入資料的最佳做法:

  • 選擇獨特的資料行作為分割資料行 (例如主索引鍵或唯一索引鍵) 以避免資料扭曲。
  • 如果您使用 Azure Integration Runtime 來複製資料,您可以設定較大的「資料整合單位 (DIU)」(>4) 來利用更多運算資源。 檢查該處適用的案例。
  • 複製平行處理原則的程度」會控制分割區數目,將此數目設定過大有時會損害效能,建議將此數目設定為 (DIU 或自我裝載 IR 節點數目) * (2 到 4)。
  • 請注意,Microsoft Fabric Warehouse 一次最多可以執行 32 個查詢,將「複製平行處理原則的程度」設定過大可能會導致 Synapse 節流問題。

範例:使用動態範圍分割進行查詢

"source": {
    "type": "WarehouseSource",
    "query": "SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column (optional) to decide the partition stride, not as data filter>",
        "partitionLowerBound": "<lower_value_of_partition_column (optional) to decide the partition stride, not as data filter>"
    }
}

使用 COPY 陳述式,將資料載入至 Microsoft Fabric Warehouse

使用 COPY 陳述式是一種簡單且有彈性的方式,可透過高輸送量將資料載入 Microsoft Fabric Warehouse。 若要深入了解詳細資料,請查看使用 COPY 陳述式大量載入資料

  • 如果您的來源資料位於 Azure Blob 或 Azure Data Lake Storage Gen2 中,而且格式與 COPY 陳述式相容,您可以使用複製活動直接叫用 COPY 陳述式,讓 Microsoft Fabric Warehouse 從來源提取資料。 如需詳細資料,請參閱使用 COPY 陳述式直接複製
  • 如果您的來源資料存放區與格式不受 COPY 陳述式支援,您可以改用使用 COPY 陳述式分段複製功能。 分段複製功能也能提供更好的輸送量。 其會自動將資料轉換成 COPY 陳述式相容格式、將資料儲存在 Azure Blob 儲存體中,然後呼叫 COPY 陳述式,以將資料載入 Microsoft Fabric Warehouse。

提示

使用 COPY 陳述式搭配 Azure Integration Runtime 時,有效的資料整合單位 (DIU) 一律為 2。 微調 DIU 不會影響效能。

使用 COPY 陳述式直接複製

Microsoft Fabric Warehouse COPY 陳述式直接支援 Azure Blob、Azure Data Lake Storage Gen1 和 Azure Data Lake Storage Gen2。 如果您的來源資料符合本節所述準則,即可使用 COPY 陳述式從來源資料存放區直接複製到 Microsoft Fabric Warehouse。 否則,請運用使用 COPY 陳述式分段複製。 該服務會檢查設定,並在不符合準則時讓複製活動執行失敗。

  • 來源連結服務和格式使用下列類型和驗證方法:

    支援的來源資料存放區類型 支援的格式 支援的來源驗證類型
    Azure Blob 分隔符號文字 帳戶金鑰驗證、共用存取簽章驗證
      Parquet 帳戶金鑰驗證、共用存取簽章驗證
    Azure Data Lake Storage Gen2 \(部分機器翻譯\) 分隔符號文字
    Parquet
    帳戶金鑰驗證、共用存取簽章驗證
  • 格式設定使用下列各項︰

    • 對於 Parquetcompression可以是不壓縮SnappyGZip
    • 對於分隔符號文字
      • rowDelimiter明確設定為單一字元或「\r\n」,不支援預設值。
      • nullValue 會保留為預設值,或設定為空字串 ("")。
      • encodingName 會保留為預設值,或設定為 utf-8 或 utf-16
      • escapeChar 必須與 quoteChar 相同,而且不是空的。
      • skipLineCount 會保留為預設值或設定為 0。
      • compression 可以是不壓縮GZip
  • 如果您的來源是資料夾,則複製活動中的 recursive 必須設定為 true,而且 wildcardFilename 必須是 **.*

  • 未指定 wildcardFolderPathwildcardFilename (**.* 以外)、modifiedDateTimeStartmodifiedDateTimeEndprefixenablePartitionDiscoveryadditionalColumns

在複製活動的 allowCopyCommand 下支援下列 COPY 陳述式設定:

屬性 描述 必要
defaultValues 指定 Microsoft Fabric Warehouse 中每個目標資料行的預設值。 屬性中的預設值會覆寫資料倉儲中設定的預設條件約束,而且識別欄位不可有預設值。 No
additionalOptions COPY 陳述式的 "With" 子句中將直接傳遞至 Microsoft Fabric Warehouse COPY 陳述式的其他選項。 視需要將值加上引號,以配合 COPY 陳述式需求。 No
"activities":[
    {
        "name": "CopyFromAzureBlobToMicrosoftFabricWarehouseViaCOPY",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "ParquetDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "MicrosoftFabricWarehouseDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "ParquetSource",
                "storeSettings":{
                    "type": "AzureBlobStorageReadSettings",
                    "recursive": true
                }
            },
            "sink": {
                "type": "WarehouseSink",
                "allowCopyCommand": true,
                "copyCommandSettings": {
                    "defaultValues": [
                        {
                            "columnName": "col_string",
                            "defaultValue": "DefaultStringValue"
                        }
                    ],
                    "additionalOptions": {
                        "MAXERRORS": "10000",
                        "DATEFORMAT": "'ymd'"
                    }
                }
            },
            "enableSkipIncompatibleRow": true
        }
    }
]

使用 COPY 陳述式分段複製

當您的來源資料與 COPY 陳述式未原生相容時,可透過過渡分段 Azure Blob 或 Azure Data Lake Storage Gen2 (不可以是 Azure 進階儲存體) 來啟用資料複製。 在此情況下,該服務會自動轉換資料,以符合 COPY 陳述式的資料格式需求。 然後其會叫用 COPY 陳述式,將資料載入至 Microsoft Fabric Warehouse。 最後,它會清除儲存體中的暫存資料。 如需透過分段複製資料的詳細資料,請參閱分段複製

若要使用此功能,請使用帳戶金鑰或系統受控識別驗證,來建立 Azure Blob 儲存體連結服務Azure Data Lake Storage Gen2 連結服務,其將 Azure 儲存體帳戶稱為過渡儲存體。

重要

重要

如果您的分段 Azure 儲存體已設定受控私人端點,且已啟用儲存體防火牆,您必須使用受控識別驗證,並將儲存體 Blob 資料讀取者權限授與 Synapse SQL Server,以確保它可以在 COPY 陳述式載入期間存取分段的檔案。

"activities":[
    {
        "name": "CopyFromSQLServerToMicrosoftFabricWarehouseViaCOPYstatement",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "SQLServerDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "MicrosoftFabricWarehouseDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SqlSource",
            },
            "sink": {
                "type": "WarehouseSink",
                "allowCopyCommand": true
            },
            "stagingSettings": {
                "linkedServiceName": {
                    "referenceName": "MyStagingStorage",
                    "type": "LinkedServiceReference"
                }
            }
        }
    }
]

對應資料流程屬性

在對應資料流中轉換資料時,您可以自 Microsoft Fabric Warehouse 讀取和寫入資料表。 如需詳細資訊,請參閱對應資料流程中的來源轉換接收轉換

Microsoft Fabric Warehouse 做為來源

您可以在來源轉換的 [來源選項] 索引標籤中找到 Microsoft Fabric Warehouse 的專屬設定。

名稱 描述 必要 允許的值 資料流程指令碼屬性
輸入 選取您是否將來源指向資料表 (相當於 Select * from tablename),或輸入自訂 SQL 查詢,或從預存程序擷取資料。 查詢:如果您在 [輸入] 欄位中選取 [查詢],請對於來源輸入 SQL 查詢。 此設定會覆寫您在資料集中選擇的任何資料表。 這裡不支援 Order By 子句,但您可以設定完整的 SELECT FROM 陳述式。 您也可使用使用者定義的資料表函數。 select * from udfGetData() 是 SQL 中傳回資料表的 UDF。 此查詢會產生您可以在資料流程中使用的來源資料表。 使用查詢也是縮減資料列以進行測試或查閱的絕佳方式。SQL 範例: Select * from MyTable where customerId > 1000 and customerId < 2000 Yes 資料表或查詢或預存程式 格式: 'table'
批次大小 輸入批次大小,以將大量資料分成多次讀取。 在資料流程中,此設定將用來設定 Spark 單欄式快取。 這是選項欄位,如果將其保留空白,則會使用 Spark 預設值。 No 數字值 batchSize: 1234
隔離等級 對應資料流程中 SQL 來源的預設值為「未認可」。 您可以將這裡的隔離等級變更為下列其中一個值:• 讀取認可 • 讀取未認可 • 可重複讀取 • 可序列化 • 無 (忽略隔離等級) Yes • 讀取認可 • 讀取未認可 • 可重複讀取 • 可序列化 • 無 (忽略隔離等級) isolationLevel

注意

不支援透過暫存讀取。 目前無法使用 Microsoft Fabric Warehouse 來源的 CDC 支援。

Microsoft Fabric Warehouse 做為接收

您可以在接收轉換的 [設定] 索引標籤中找到 Microsoft Fabric Warehouse 的專屬設定。

名稱 描述 必要 允許的值 資料流程指令碼屬性
更新方法 決定您的資料庫目的地所允許的作業。 預設僅允許插入。 若要更新、upsert 或刪除資料列,必須使用 alter-row 轉換來標記這些動作的資料列。 對於更新、更新插入和刪除,必須設定索引鍵資料行,以決定要改變哪一個資料列。 Yes [True] 或 [False] 可插入、可刪除、可插入、可更新
資料表動作 決定在寫入之前,是否要重新建立或移除目的地資料表中的所有資料列。• 無:不會對資料表執行任何動作。 重新建立:資料表會遭到捨棄並重新建立。 若要動態建立新的資料表,則為必要項目。• 截斷: 將會移除目標資料表中的所有資料列。 No 無或重新建立或截斷 重新建立: true 截斷: true
啟用暫存 分段儲存體是在執行資料流程活動中設定。 當您針對儲存體連結服務使用受控識別驗證時,請分別了解 Azure BlobAzure Data Lake Storage Gen2 所需的設定。如果您的 Azure 儲存體已設定 VNet 服務端點,您必須使用受控識別驗證搭配儲存體帳戶上啟用的「允許信任 Microsoft 服務」,請參閱搭配 Azure 儲存體使用 VNet 服務端點的影響 No [True] 或 [False] 分段: true
批次大小 控制要在每個值區中寫入的資料列數目。 較大的批次大小會改善壓縮和記憶體優化,但會導致在快取資料時發生記憶體例外狀況的風險。 No 數字值 batchSize: 1234
使用接收結構描述 根據預設,系統會在接收結構描述下建立暫存資料表,並將其作為暫存處理序。 或者,您也可以取消核取 [使用接收結構描述] 選項,並在 [選取使用者資料庫結構描述] 中指定一個結構描述名稱,讓 Data Factory 建立暫存表格以便載入上游資料,並在完成時自動將其清除。 請確定您的資料庫中具有建立資料表的權限,以及改變結構描述的權限。 No [True] 或 [False] stagingSchemaName
前置和後置 SQL 指令碼 輸入將在寫入至您的接收資料庫之前 (前置處理) 和之後 (後置處理) 將執行的多行 SQL 指令碼 No SQL 指令碼 preSQLs:['set IDENTITY_INSERT mytable ON'] postSQLs:['set IDENTITY_INSERT mytable OFF'],

處理資料列時發生錯誤

根據預設,資料流程執行會在它遇到的第一個錯誤時失敗。 您可以選擇 [發生錯誤時繼續],讓您的資料流程即使在個別資料列發生錯誤時也能夠完成。 該服務會提供不同的選項,讓您處理這些錯誤資料列。

交易認可:選擇您的資料是以單一交易或批次寫入。 單一交易可提供較佳的效能,而且在交易完成之前,其他人看不到寫入的資料。 批次交易的效能較差,但可用於大型資料集。

輸出拒絕的資料:如果啟用,則可以將錯誤資料列輸出至 Azure Blob 儲存體中的 csv 檔案或您選擇的 Azure Data Lake Storage Gen2 帳戶。 這會寫入含有三個額外資料行的錯誤資料列:INSERT 或 UPDATE 之類的 SQL 作業、資料流程錯誤碼,以及資料列上的錯誤訊息。

發生錯誤時回報成功:如果啟用,即使找到發生錯誤的資料列,資料流程也會標示為成功。

注意

針對 Microsoft Fabric Warehouse 連結服務,服務主體支援的驗證類型為「金鑰」; 不支援「憑證」驗證。

查閱活動屬性

若要了解屬性的詳細資料,請參閱查閱活動

GetMetadata 活動屬性

若要了解關於屬性的詳細資料,請參閱 GetMetadata 活動

Microsoft Fabric Warehouse 的資料類型對應

從 Microsoft Fabric Warehouse 複製資料時,會使用下列從 Microsoft Fabric Warehouse 資料類型對應到服務內部過渡期資料類型的對應。 若要了解複製活動如何將來源結構描述和資料類型對應至接收,請參閱結構描述和資料類型對應

Microsoft Fabric Warehouse 資料類型 Data Factory 過渡期資料類型
BIGINT Int64
BINARY Byte[]
bit Boolean
char String, Char[]
date Datetime
datetime2 Datetime
Decimal Decimal
FILESTREAM attribute (varbinary(max)) Byte[]
Float Double
int Int32
NUMERIC Decimal
real Single
SMALLINT Int16
time TimeSpan
UNIQUEIDENTIFIER Guid
varbinary Byte[]
varchar String, Char[]

下一步

如需複製活動支援作為來源和接收器的資料存放區清單,請參閱支援的資料存放區