在複製活動中設定資料倉儲
本文概述如何在資料管線中使用複製活動,從資料倉儲複製資料及將資料複製到該處。
支援的設定
對於複製活動下每個索引標籤的組態,請分別參閱下列各節。
一般
對於 [一般] 索引標籤組態,請參閱<一般>。
來源
在複製活動的 [來源] 索引標籤下,資料倉儲支援下列屬性。
以下是必要的屬性:
資料存放區類型:選取 [工作區]。
工作區資料存放區類型:從資料存放區類型清單中選取 [資料倉儲]。
資料倉儲:從工作區選取現有的 [資料倉儲]。
使用查詢:選取 [資料表]、[查詢] 或 [預存程序]。
如果選取 [資料表],請從資料表清單中選擇現有的資料表,或選取 [編輯] 方塊來手動指定資料表名稱。
如果選取 [查詢],請使用自訂 SQL 查詢編輯器來撰寫可擷取來源資料的 SQL 查詢。
如果選取 [預存程序],請從下拉式清單中選擇現有的預存程序,或選取 [編輯] 方塊來將預存程序名稱指定為來源。
在 [進階] 下,可以指定下列欄位:
查詢逾時 (分鐘):查詢命令執行的逾時,預設值為 120 分鐘。 如果設定此屬性,允許的值會以時間範圍的格式表示,例如 "02:00:00" (120 分鐘)。
隔離等級:指定 SQL 來源的異動鎖定行為。
分割選項:指定用來從資料倉儲載入資料的資料分割選項。 可以選取 [無] 或 [動態範圍]。
如果選取 [動態範圍],則使用已啟用平行的查詢時,需要定界分割參數 (
?AdfDynamicRangePartitionCondition
)。 範例查詢:SELECT * FROM <TableName> WHERE ?AdfDynamicRangePartitionCondition
。- 分割資料行名稱:以整數類型或日期/日期時間類型 (
int
、smallint
、bigint
、date
、smalldatetime
、datetime
、datetime2
或datetimeoffset
) 指定來源資料行的名稱,供平行複製的定界分割使用。 如果未指定,則會自動偵測資料表的索引或主索引鍵作為分割資料行。 - 分割上限:分割區範圍分割的分割資料行最大值。 這個值用於決定分割區的跨距,而不是用於篩選資料表中的資料列。 資料表或查詢結果中的所有資料列都會進行分割和複製。
- 分割下限:分割區範圍分割的分割資料行最小值。 這個值用於決定分割區的跨距,而不是用於篩選資料表中的資料列。 資料表或查詢結果中的所有資料列都會進行分割和複製。
- 分割資料行名稱:以整數類型或日期/日期時間類型 (
其他資料行:新增其他資料行來儲存來源檔案的相對路徑或靜態值。 後者支援運算式。
Destination
在複製活動的 [目的地] 索引標籤下,資料倉儲支援下列屬性。
以下是必要的屬性:
- 資料存放區類型:選取 [工作區]。
- 工作區資料存放區類型:從資料存放區類型清單中選取 [資料倉儲]。
- 資料倉儲:從工作區選取現有的 [資料倉儲]。
- 資料表名稱:從資料表清單中選擇現有的資料表,或將資料表名稱指定為目的地。
在 [進階] 下,可以指定下列欄位:
複製命令設定:指定複製命令屬性。
資料表選項:指定是否要根據來源結構描述,自動建立目的地資料表 (如果不存在)。 可以選取 [無] 或 [自動建立資料表]。
預先複製文本:指定每次將資料寫入資料倉儲之前,要執行的 SQL 查詢。 使用此屬性來清除預先載入的資料。
寫入批次逾時:在逾時前等待批次插入作業完成的時間。允許的值為時間範圍格式。 預設值為 "00:30:00" (30 分鐘)。
停用效能計量分析:此服務可收集計量,以便進行複製效能最佳化並提出建議。 如果對此行為有疑慮,請關閉此功能。
直接複製
COPY 語句是將資料內嵌至倉儲資料表的主要方式。 資料倉儲 COPY 命令直接支援 Azure Blob 儲存體和 Azure Data Lake Storage Gen2 作為來源資料存放區。 如果來源資料符合本節所述準則,即可使用 COPY 命令從來源資料存放區直接複製到 資料倉儲。
來源資料和格式包含下列類型和驗證方法:
支援的來源資料存放區類型 支援的格式 支援的來源驗證類型 Azure Blob 儲存體 分隔符號文字
Parquet匿名驗證
帳戶金鑰驗證
共用存取簽章驗證Azure Data Lake Storage Gen2 分隔符號文字
Parquet帳戶金鑰驗證
共用存取簽章驗證可以設定下列 [格式] 設定:
- 對於 Parquet:[壓縮類型] 可以是 [無]、[Snappy] 或 [gzip]。
- 對於 DelimitedText:
- 資料列分隔符號:透過 COPY 命令直接將分隔文字複製到資料倉儲時,明確指定資料列分隔符號 (\r; \n; 或 \r\n)。 只有當來源檔案的資料列分隔符號是 \r\n 時,預設值 (\r; \n; 或 \r\n) 才有效。 否則,請為案例啟用暫存。
- [Null 值] 會保留為預設值,或設定為空字串 ("")。
- [編碼] 會保留為預設值,或設定為 [UTF-8] 或 [UTF-16]。
- [略過行數] 會保留為預設值,或設定為 0。
- [壓縮類型] 可以是 [無] 或 [gzip]。
如果來源是資料夾,則必須選取 [遞迴] 核取方塊。
未指定 [依上次修改時間篩選]、[前置詞]、[啟用分割探索] 和 [其他資料行] 中的 [開始時間 (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 |
分割資料行名稱 | 以 [整數類型或日期/日期時間類型] (int 、smallint 、bigint 、date 、smalldatetime 、datetime 、datetime2 或 datetimeoffset ) 指定來源資料行的名稱,供平行複製的定界分割使用。 如果未指定,則會自動偵測資料表的索引或主索引鍵作為分割資料行。 |
<分割資料行名稱> | 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] |