共用方式為


在複製活動中設定資料倉儲

本文概述如何在資料管線中使用複製活動,從資料倉儲複製資料及將資料複製到該處。

支援的設定

對於複製活動下每個索引標籤的組態,請分別參閱下列各節。

一般

對於 [一般] 索引標籤組態,請參閱<一般>。

來源

在複製活動的 [來源] 索引標籤下,資料倉儲支援下列屬性。

螢幕擷取畫面,其中顯示 [來源] 索引標籤和屬性清單。

以下是必要的屬性:

  • 資料存放區類型:選取 [工作區]

  • 工作區資料存放區類型:從資料存放區類型清單中選取 [資料倉儲]

  • 資料倉儲:從工作區選取現有的 [資料倉儲]。

  • 使用查詢:選取 [資料表]、[查詢] 或 [預存程序]

    • 如果選取 [資料表],請從資料表清單中選擇現有的資料表,或選取 [編輯] 方塊來手動指定資料表名稱。

      螢幕擷取畫面,其中顯示資料表的使用查詢。

    • 如果選取 [查詢],請使用自訂 SQL 查詢編輯器來撰寫可擷取來源資料的 SQL 查詢。

      螢幕擷取畫面,其中顯示使用查詢。

    • 如果選取 [預存程序],請從下拉式清單中選擇現有的預存程序,或選取 [編輯] 方塊來將預存程序名稱指定為來源。

      螢幕擷取畫面,其中顯示預存程序查詢。

在 [進階] 下,可以指定下列欄位:

  • 查詢逾時 (分鐘):查詢命令執行的逾時,預設值為 120 分鐘。 如果設定此屬性,允許的值會以時間範圍的格式表示,例如 "02:00:00" (120 分鐘)。

  • 隔離等級:指定 SQL 來源的異動鎖定行為。

  • 分割選項:指定用來從資料倉儲載入資料的資料分割選項。 可以選取 [無] 或 [動態範圍]。

    如果選取 [動態範圍],則使用已啟用平行的查詢時,需要定界分割參數 (?AdfDynamicRangePartitionCondition)。 範例查詢:SELECT * FROM <TableName> WHERE ?AdfDynamicRangePartitionCondition

    螢幕擷取畫面,其中顯示 [動態範圍]。

    • 分割資料行名稱:以整數類型或日期/日期時間類型 (intsmallintbigintdatesmalldatetimedatetimedatetime2datetimeoffset) 指定來源資料行的名稱,供平行複製的定界分割使用。 如果未指定,則會自動偵測資料表的索引或主索引鍵作為分割資料行。
    • 分割上限:分割區範圍分割的分割資料行最大值。 這個值用於決定分割區的跨距,而不是用於篩選資料表中的資料列。 資料表或查詢結果中的所有資料列都會進行分割和複製。
    • 分割下限:分割區範圍分割的分割資料行最小值。 這個值用於決定分割區的跨距,而不是用於篩選資料表中的資料列。 資料表或查詢結果中的所有資料列都會進行分割和複製。
  • 其他資料行:新增其他資料行來儲存來源檔案的相對路徑或靜態值。 後者支援運算式。

    螢幕擷取畫面,其中顯示其他資料行。

Destination

在複製活動的 [目的地] 索引標籤下,資料倉儲支援下列屬性。

螢幕擷取畫面,其中顯示 [目的地] 索引標籤和屬性清單。

以下是必要的屬性:

  • 資料存放區類型:選取 [工作區]
  • 工作區資料存放區類型:從資料存放區類型清單中選取 [資料倉儲]
  • 資料倉儲:從工作區選取現有的 [資料倉儲]。
  • 資料表名稱:從資料表清單中選擇現有的資料表,或將資料表名稱指定為目的地。

在 [進階] 下,可以指定下列欄位:

  • 複製命令設定:指定複製命令屬性。

    螢幕擷取畫面,其中顯示複製命令設定的預設值。

  • 資料表選項:指定是否要根據來源結構描述,自動建立目的地資料表 (如果不存在)。 可以選取 [無] 或 [自動建立資料表]。

  • 預先複製文本:指定每次將資料寫入資料倉儲之前,要執行的 SQL 查詢。 使用此屬性來清除預先載入的資料。

  • 寫入批次逾時:在逾時前等待批次插入作業完成的時間。允許的值為時間範圍格式。 預設值為 "00:30:00" (30 分鐘)。

  • 停用效能計量分析:此服務可收集計量,以便進行複製效能最佳化並提出建議。 如果對此行為有疑慮,請關閉此功能。

直接複製

COPY 語句是將資料內嵌至倉儲資料表的主要方式。 資料倉儲 COPY 命令直接支援 Azure Blob 儲存體Azure Data Lake Storage Gen2 作為來源資料存放區。 如果來源資料符合本節所述準則,即可使用 COPY 命令從來源資料存放區直接複製到 資料倉儲。

  1. 來源資料和格式包含下列類型和驗證方法:

    支援的來源資料存放區類型 支援的格式 支援的來源驗證類型
    Azure Blob 儲存體 分隔符號文字
    Parquet
    匿名驗證
    帳戶金鑰驗證
    共用存取簽章驗證
    Azure Data Lake Storage Gen2 分隔符號文字
    Parquet
    帳戶金鑰驗證
    共用存取簽章驗證
  2. 可以設定下列 [格式] 設定:

    1. 對於 Parquet:[壓縮類型] 可以是 [無]、[Snappy] 或 [gzip]。
    2. 對於 DelimitedText
      1. 資料列分隔符號:透過 COPY 命令直接將分隔文字複製到資料倉儲時,明確指定資料列分隔符號 (\r; \n; 或 \r\n)。 只有當來源檔案的資料列分隔符號是 \r\n 時,預設值 (\r; \n; 或 \r\n) 才有效。 否則,請為案例啟用暫存。
      2. [Null 值] 會保留為預設值,或設定為空字串 ("")。
      3. [編碼] 會保留為預設值,或設定為 [UTF-8] 或 [UTF-16]。
      4. [略過行數] 會保留為預設值,或設定為 0。
      5. [壓縮類型] 可以是 [無] 或 [gzip]。
  3. 如果來源是資料夾,則必須選取 [遞迴] 核取方塊。

  4. 未指定 [依上次修改時間篩選]、[前置詞]、[啟用分割探索] 和 [其他資料行] 中的 [開始時間 (UTC)] 和 [結束時間 (UTC)]。

若要瞭解如何使用 COPY 命令將資料內嵌至資料倉儲,請參閱此文章

如果來源資料存放區與格式原本就不受 COPY 命令支援,則可以透過 COPY 命令功能,使用分段複製。 這會自動將資料轉換成 COPY 命令相容的格式,然後呼叫 COPY 命令,將資料載入資料倉儲。

分段複製

來源資料與 COPY 命令原生不相容時,請透過過渡暫存記憶體啟用資料複製。 在此情況下,該服務會自動轉換資料,以便符合 COPY 命令的資料格式需求。 之後系統會叫用 COPY 命令,將資料載入資料倉儲。 最後,它會清除儲存體中的暫存資料。

若要使用分段複製,請參閱 [設定] 索引標籤,然後選取 [啟用分段]。 可以選擇 [工作區],在 Fabric 中使用自動建立的分段儲存體。 針對 [外部],支援 Azure Blob 儲存體和 Azure Data Lake Storage Gen2 做為外部分段儲存體。 必須先建立 Azure Blob 儲存體或 Azure Data Lake Storage Gen2 連線,然後從下拉式清單中選取連線來使用分段儲存體。

請注意,必須確定已從分段儲存體正確允許資料倉儲的 IP 範圍。

對應

對於 [對應] 索引標籤組態,如果未套用資料倉儲,並將自動建立資料表作為目的地,請參閱<對應>。

如果套用資料倉儲,並將自動建立資料表作為目的地,但 [對應] 中的組態除外,則可以編輯目的地資料行的類型。 選取 [匯入結構描述] 之後,可以在目的地中指定資料行類型。

例如,來源中 [識別碼] 資料行的類型為 int,而對應至目的地資料行時,可以將其變更為 float 類型。

螢幕擷取畫面,其中顯示對應目的地資料行類型。

設定

對於 [設定] 索引標籤組態,請參閱<設定>。

資料表摘要

下列資料表包含有關資料倉儲中複製活動的詳細資訊。

來源資訊

名稱 描述 必要 JSON 指令碼屬性
資料存放區類型 資料存放區類型。 工作區 Yes /
工作區資料存放區類型 選取工作區資料存放區類型的部分。 資料倉儲 Yes type
資料倉儲 要使用的資料倉儲。 <資料倉儲> Yes endpoint
artifactId
使用查詢 從資料倉儲讀取資料的方式。 • 資料表
• 查詢
• 預存程序
No (在 typeProperties - >source 下)
• typeProperties:
 schema
 table
• sqlReaderQuery
• sqlReaderStoredProcedureName
查詢逾時 (分鐘) 查詢命令執行的逾時,預設值為 120 分鐘。 如果設定此屬性,允許的值會以時間範圍的格式表示,例如 "02:00:00" (120 分鐘)。 時間範圍 No queryTimeout
隔離等級 來源的異動鎖定行為。 • 無
• 快照
No isolationLevel
分割選項 指定用來從資料倉儲載入資料的資料分割選項。 • 無
• 動態範圍
No partitionOption
分割資料行名稱 以 [整數類型或日期/日期時間類型] (intsmallintbigintdatesmalldatetimedatetimedatetime2datetimeoffset) 指定來源資料行的名稱,供平行複製的定界分割使用。 如果未指定,則會自動偵測資料表的索引或主索引鍵作為分割資料行。 <分割資料行名稱> No partitionColumnName
分割上限 分割區範圍分割的分割區資料行最大值。 這個值用於決定分割區的跨距,而不是用於篩選資料表中的資料列。 資料表或查詢結果中的所有資料列都會進行分割和複製。 <分割上限> No partitionUpperBound
分割下限 分割區範圍分割的分割區資料行最小值。 這個值用於決定分割區的跨距,而不是用於篩選資料表中的資料列。 資料表或查詢結果中的所有資料列都會進行分割和複製。 <分割下限> No partitionLowerBound
其他資料行 新增其他資料行來儲存來源檔案的相對路徑或靜態值。 • 名稱
• 值
No additionalColumns:
• 名稱
• 值

目的地資訊

名稱 描述 必要 JSON 指令碼屬性
資料存放區類型 資料存放區類型。 工作區 Yes /
工作區資料存放區類型 選取工作區資料存放區類型的部分。 資料倉儲 Yes type
資料倉儲 要使用的資料倉儲。 <資料倉儲> Yes endpoint
artifactId
Table 要寫入資料的目的地資料表。 <目的地資料表的名稱> Yes 結構描述
table
複製命令設定 複製命令屬性設定。 包含預設值設定。 預設值:
• 資料行
• 值
No copyCommandSettings:
defaultValues:
• columnName
• defaultValue
資料表選項 是否要根據來源結構描述,自動建立目的地資料表 (如果不存在)。 • 無
• 自動建立資料表
No tableOption:

• autoCreate
複製前指令碼 每次將資料寫入資料倉儲之前,要執行的 SQL 查詢。 使用此屬性來清除預先載入的資料。 <複製前指令碼> No preCopyScript
寫入批次逾時 在逾時前等待批次插入作業完成的時間。允許的值為時間範圍格式。 預設值為 "00:30:00" (30 分鐘)。 時間範圍 No writeBatchTimeout
停用效能計量分析 該服務會收集計量,以獲得複製效能最佳化和建議,而這會導致額外的主要 DB 存取。 選取或取消選取 No disableMetricsCollection:
[True] 或 [False]