使用 Azure Data Factory 從 Azure 檔案儲存體複製資料或將資料複製到其中
適用於:Azure Data Factory Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用!
本文概述如何將資料複製到 Azure 檔案儲存體或從 Azure 檔案儲存體複製資料。 若要了解 Azure Data Factory,請閱讀簡介文章。
支援的功能
此 Azure 檔案儲存體連接器支援下列功能:
支援的功能 | IR | 受控私人端點 |
---|---|---|
複製活動 (來源/接收) | ① ② | ✓ 排除儲存體帳戶 V1 |
查閱活動 | ① ② | ✓ 排除儲存體帳戶 V1 |
GetMetadata 活動 | ① ② | ✓ 排除儲存體帳戶 V1 |
刪除活動 | ① ② | ✓ 排除儲存體帳戶 V1 |
① Azure 整合執行階段 ② 自我裝載整合執行階段
您可以將資料從 Azure 檔案儲存體複製到任何支援的接收資料存放區,或將資料從任何支援的接收資料存放區複製到 Azure 檔案儲存體。 如需複製活動作為來源和接收端支援的資料存放區清單,請參閱支援的資料存放區和格式。
具體而言,這個 Azure 檔案儲存體連接器支援:
- 使用帳戶金鑰或服務共用存取簽章 (SAS) 驗證來複製檔案。
- 依原樣複製檔案,或使用支援的檔案格式和壓縮轉碼器來剖析/產生檔案。
開始使用
若要透過管線執行複製活動,您可以使用下列其中一個工具或 SDK:
使用 UI 建立 Azure 檔案儲存體連結服務
使用下列步驟,在 Azure 入口網站 UI 中建立 Azure 檔案儲存體連結服務。
前往 Azure Data Factory 或 Synapse 工作區的 [管理] 索引標籤,選取 [連結服務],然後按一下 [新增]:
搜尋檔案,然後選取標示為 Azure 檔案儲存體的 Azure 檔案儲存體連接器。
設定服務詳細資料,測試連線,然後建立新的連結服務。
連接器設定詳細資料
下列各節提供屬性的相關詳細資料,這些屬性用來定義 Azure 檔案儲存體專屬的實體。
連結服務屬性
Azure 檔案儲存體連接器支援下列驗證類型。 如需詳細資料,請參閱對應章節。
注意
如果您使用 Azure 檔案儲存體連結服務搭配舊版模型,其中在 ADF 撰寫 UI 上顯示為「基本驗證」,則仍會依原狀支援,但是建議您繼續使用新的模型。 舊版模型會透過伺服器訊息區 (SMB) 將資料傳輸自/到儲存體,而新模型會利用具有更佳輸送量的儲存體 SDK。 若要升級,您可以編輯連結服務,將驗證方法切換為「帳戶金鑰」或「SAS URI」;資料集或複製活動不需要變更。
帳戶金鑰驗證
Data Factory 針對 Azure 檔案儲存體帳戶金鑰驗證支援下列屬性:
屬性 | 描述 | 必要 |
---|---|---|
type | 類型屬性必須設為 AzureFileStorage。 | Yes |
connectionString | 指定連線到 Azure 檔案儲存體所需的資訊。 您也可以將帳戶金鑰放在 Azure Key Vault 並從連接字串中提取 accountKey 組態。 如需詳細資訊,請參閱下列範例和在 Azure Key Vault 中儲存認證一文。 |
Yes |
fileShare | 指定檔案共用。 | Yes |
快照集 | 如果您想要從快照集複製,請指定檔案共用快照集的日期。 | No |
connectVia | 用於連線到資料存放區的 Integration Runtime。 您可以使用 Azure Integration Runtime 或「自我裝載 Integration Runtime」(如果您的資料存放區位於私人網路中)。 如果未指定,就會使用預設的 Azure Integration Runtime。 | No |
範例:
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net;",
"fileShare": "<file share name>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
範例:在 Azure Key Vault 中儲存帳戶金鑰
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;",
"fileShare": "<file share name>",
"accountKey": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
共用存取簽章驗證
共用存取簽章可提供您儲存體帳戶中資源的委派存取。 您可以使用共用存取簽章來將儲存體帳戶中物件的有限權限授與用戶端,讓該用戶端可以在一段指定時間內使用。 如需共用存取簽章的詳細資訊,請參閱共用存取簽章:了解共用存取簽章模型。
服務支援下列屬性以使用共用存取簽章驗證:
屬性 | 描述 | 必要 |
---|---|---|
type | 類型屬性必須設為 AzureFileStorage。 | Yes |
sasUri | 指定資源的共用存取簽章 URI。 將此欄位標記為 SecureString 以將其安全地儲存。 您也可以將 SAS 權杖放入 Azure Key Vault 中,以使用自動輪替和移除權杖部分。 如需詳細資訊,請參閱下列範例和在 Azure Key Vault 中儲存認證。 |
Yes |
fileShare | 指定檔案共用。 | Yes |
快照集 | 如果您想要從快照集複製,請指定檔案共用快照集的日期。 | No |
connectVia | 用於連線到資料存放區的 Integration Runtime。 您可以使用 Azure Integration Runtime 或「自我裝載 Integration Runtime」(如果您的資料存放區位於私人網路中)。 如果未指定,就會使用預設的 Azure Integration Runtime。 | No |
範例:
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"sasUri": {
"type": "SecureString",
"value": "<SAS URI of the resource e.g. https://<accountname>.file.core.windows.net/?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
},
"fileShare": "<file share name>",
"snapshot": "<snapshot version>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
範例:將 SAS 權杖儲存在 Azure Key Vault
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"sasUri": {
"type": "SecureString",
"value": "<SAS URI of the Azure Storage resource without token e.g. https://<accountname>.file.core.windows.net/>"
},
"sasToken": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName with value of SAS token e.g. ?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
},
"fileShare": "<file share name>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
系統指派的受控身分識別驗證
資料處理站或 Synapse 管線可與 Azure 資源的系統指派受控識別相關聯,這代表該資源用於驗證其他 Azure 服務。 您可以使用此系統指派的受控識別進行 Azure 檔案儲存體驗證。 若要深入了解 Azure 資源受控識別,請參閱 Azure 資源受控識別。
若要使用系統指派的受控身分識別驗證,請依照下列步驟操作:
複製與處理站或 Synapse 工作區一併產生的系統指派受控識別物件識別碼,以便擷取系統指派的受控識別資訊。
將 Azure 檔案儲存體中的權限授與受控識別。 如需角色詳細資訊,請參閱這篇文章 (部分機器翻譯)。
- 針對 [作為來源],至少在 [存取控制 (IAM)] 中授與 [儲存體檔案資料特殊權限讀者] 角色。
- 針對 [作為接收],至少在 [存取控制 (IAM)] 中授與 [儲存體檔案資料特殊權限參與者] 角色。
以下是支援 Azure 檔案儲存體連結服務的屬性:
屬性 | 描述 | 必要 |
---|---|---|
type | type 屬性必須設為 AzureFileStorage。 | Yes |
serviceEndpoint | 指定模式為 https://<accountName>.file.core.windows.net/ 的 Azure 檔案儲存體服務端點。 |
Yes |
fileShare | 指定檔案共用。 | Yes |
快照集 | 如果您想要從快照集複製,請指定檔案共用快照集的日期。 | No |
connectVia | 用於連線到資料存放區的 Integration Runtime。 您可以使用 Azure Integration Runtime。 如果未指定,就會使用預設的 Azure Integration Runtime。 | No |
注意
系統指派的受控識別驗證僅受 Azure Integration Runtime 支援。
範例:
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"serviceEndpoint": "https://<accountName>.file.core.windows.net/",
"fileShare": "<file share name>",
"snapshot": "<snapshot version>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
使用者指派的受控身分識別驗證
資料處理站可以使用一或多個使用者指派的受控識別來指派。 您可以使用此使用者指派的受控識別進行 Azure 檔案儲存體驗證,以允許在 Azure 檔案儲存體中來回存取和複製資料。 若要深入了解 Azure 資源受控識別,請參閱 Azure 資源受控識別。
若要使用使用者指派的受控識別驗證,請依照下列步驟操作:
在 Azure 檔案儲存體中建立一或多個使用者指派的受控識別,並授與權限。 如需角色詳細資訊,請參閱這篇文章 (部分機器翻譯)。
- 針對 [作為來源],至少在 [存取控制 (IAM)] 中授與 [儲存體檔案資料特殊權限讀者] 角色。
- 針對 [作為接收],至少在 [存取控制 (IAM)] 中授與 [儲存體檔案資料特殊權限參與者] 角色。
將一或多個使用者指派的受控身分識別指派給資料處理站,並為每個使用者指派的受控身分識別建立認證。
以下是支援 Azure 檔案儲存體連結服務的屬性:
屬性 | 描述 | 必要 |
---|---|---|
type | type 屬性必須設為 AzureFileStorage。 | Yes |
serviceEndpoint | 指定模式為 https://<accountName>.file.core.windows.net/ 的 Azure 檔案儲存體服務端點。 |
Yes |
credentials | 將使用者指派的受控身分識別指定為認證物件。 | Yes |
fileShare | 指定檔案共用。 | Yes |
快照集 | 如果您想要從快照集複製,請指定檔案共用快照集的日期。 | No |
connectVia | 用於連線到資料存放區的 Integration Runtime。 您可以使用 Azure Integration Runtime 或「自我裝載 Integration Runtime」(如果您的資料存放區位於私人網路中)。 如果未指定,就會使用預設的 Azure Integration Runtime。 | No |
範例:
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"serviceEndpoint": "https://<accountName>.file.core.windows.net/",
"credential": {
"referenceName": "credential1",
"type": "CredentialReference"
},
"fileShare": "<file share name>",
"snapshot": "<snapshot version>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
傳統模式
屬性 | 描述 | 必要 |
---|---|---|
type | 類型屬性必須設為 AzureFileStorage。 | Yes |
host | 指定 Azure 檔案儲存體端點成為: - 使用 UI:指定 \\<storage name>.file.core.windows.net\<file service name> - 使用 JSON: "host": "\\\\<storage name>.file.core.windows.net\\<file service name>" 。 |
Yes |
userid | 指定存取 Azure 檔案儲存體的使用者成為: - 使用 UI:指定 AZURE\<storage name> - 使用 JSON: "userid": "AZURE\\<storage name>" 。 |
Yes |
password | 指定儲存體存取金鑰。 將此欄位標記為 SecureString,將它安全地儲存在 Data Factory 中,或參考 Azure Key Vault 中儲存的祕密。 | Yes |
connectVia | 用於連線到資料存放區的 Integration Runtime。 您可以使用 Azure Integration Runtime 或「自我裝載 Integration Runtime」(如果您的資料存放區位於私人網路中)。 如果未指定,就會使用預設的 Azure Integration Runtime。 | 否 (來源);是 (接收) |
範例:
{
"name": "AzureFileStorageLinkedService",
"properties": {
"type": "AzureFileStorage",
"typeProperties": {
"host": "\\\\<storage name>.file.core.windows.net\\<file service name>",
"userid": "AZURE\\<storage name>",
"password": {
"type": "SecureString",
"value": "<storage access key>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
資料集屬性
如需可用來定義資料集的區段和屬性完整清單,請參閱資料集一文。
Azure Data Factory 支援下列檔案格式。 請參閱每篇文章,以取得以格式為基礎的設定。
在格式型資料集的 location
設定下,Azure 檔案儲存體支援下列屬性:
屬性 | 描述 | 必要 |
---|---|---|
type | 資料集內 location 之下的 type 屬性必須設定為 AzureFileStorageLocation。 |
Yes |
folderPath | 資料夾的路徑。 如果您想要使用萬用字元來篩選資料夾,請略過此設定,並在活動來源設定中指定。 | No |
fileName | 所指定 folderPath 下方的檔案名稱。 如果您想要使用萬用字元來篩選檔案,請略過此設定,並在活動來源設定中指定。 | No |
範例:
{
"name": "DelimitedTextDataset",
"properties": {
"type": "DelimitedText",
"linkedServiceName": {
"referenceName": "<Azure File Storage linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, auto retrieved during authoring > ],
"typeProperties": {
"location": {
"type": "AzureFileStorageLocation",
"folderPath": "root/folder/subfolder"
},
"columnDelimiter": ",",
"quoteChar": "\"",
"firstRowAsHeader": true,
"compressionCodec": "gzip"
}
}
}
複製活動屬性
如需可用來定義活動的區段和屬性完整清單,請參閱管線一文。 本節提供 Azure 檔案儲存體來源和接收器所支援的屬性清單。
Azure 檔案儲存體作為來源
Azure Data Factory 支援下列檔案格式。 請參閱每篇文章,以取得以格式為基礎的設定。
在格式型複製來源的 storeSettings
設定下,Azure 檔案儲存體支援下列屬性:
屬性 | 描述 | 必要 |
---|---|---|
type | storeSettings 下的 type 屬性必須設定為 AzureFileStorageReadSettings。 |
Yes |
找到要複製的檔案: | ||
選項 1:靜態路徑 |
請從資料集內的指定資料夾/檔案路徑複製。 如果您想要複製資料夾中的所有檔案,請另外將 wildcardFileName 指定為 * 。 |
|
選項 2:檔案前置詞 - 前置詞 |
在資料集內設定的指定檔案共用下,檔案名稱的前置詞,用來篩選來源檔案。 選取名稱開頭為 fileshare_in_linked_service/this_prefix 的檔案。 其利用 Azure 檔案儲存體的服務端篩選,提供比萬用字元篩選更好的效能。 使用舊版連結服務模型時不支援此功能。 |
No |
選項 3:萬用字元 - wildcardFolderPath |
含有萬用字元的資料夾路徑,可用來篩選來源資料夾。 允許的萬用字元為: * (比對零或多個字元) 和 ? (比對零或單一字元);如果您的實際資料夾名稱包含萬用字元或此逸出字元,請使用 ^ 來逸出。 如需更多範例,請參閱資料夾和檔案篩選範例。 |
No |
選項 3:萬用字元 - wildcardFileName |
在特定 folderPath/wildcardFolderPath 下含有萬用字元的檔案名稱,用於篩選來源檔案。 允許的萬用字元為: * (比對零或多個字元) 和 ? (比對零或單一字元);如果您的實際檔案名稱包含萬用字元或此逸出字元,請使用 ^ 來逸出。 如需更多範例,請參閱資料夾和檔案篩選範例。 |
Yes |
選項 4:檔案清單 - fileListPath |
表示要複製指定的檔案集。 指向含有所要複製檔案清單的文字檔,一行一個檔案,而這是資料集中所設定路徑的相對路徑。 使用此選項時,請勿指定資料集中的檔案名稱。 檔案清單範例有更多範例可供參閱。 |
No |
其他設定: | ||
遞迴 | 指出是否從子資料夾、或只有從指定的資料夾,以遞迴方式讀取資料。 當遞迴設定為 true 且接收是檔案型存放區時,就不會在接收上複製或建立空的資料夾或子資料夾。 允許的值為 true (預設值) 和 false。 設定 fileListPath 時,此屬性不適用。 |
No |
deleteFilesAfterCompletion | 指出成功移至目的地存放區之後,是否要從來源存放區中刪除二進位檔案。 檔案刪除會針對每個檔案執行,因此,當複製活動失敗時,您會看到已將某些檔案複製到目的地,而且已從來源刪除,而其他檔案仍保留在來源存放區上。 此屬性僅適用於二進位檔案複製案例。 預設值:false。 |
No |
modifiedDatetimeStart | 根據屬性篩選檔案:上次修改。 如果檔案的上次修改時間大於或等於 modifiedDatetimeStart 且小於 modifiedDatetimeEnd ,則會選取檔案。 此時間會以 "2018-12-01T05:00:00Z" 格式套用至 UTC 時區。 屬性可以是 NULL,這表示不會在資料集中套用任何檔案屬性篩選條件。 當 modifiedDatetimeStart 具有日期時間值,但 modifiedDatetimeEnd 為 NULL 時,意謂著系統將會選取上次更新時間屬性大於或等於此日期時間值的檔案。 當 modifiedDatetimeEnd 具有日期時間值,但 modifiedDatetimeStart 為 NULL 時,則意謂著系統將會選取上次更新時間屬性小於此日期時間值的檔案。設定 fileListPath 時,此屬性不適用。 |
No |
modifiedDatetimeEnd | 同上。 | No |
enablePartitionDiscovery | 針對已分割的檔案,指定是否要從檔案路徑剖析分割區,並將其新增為其他來源資料行。 允許的值為 false (預設值) 和 true。 |
No |
partitionRootPath | 啟用分割區探索時,請指定絕對根路徑,將已分割的資料夾當成資料行進行讀取。 如果未指定,則根據預設, - 當您使用資料集中的檔案路徑或來源上的檔案清單時,分割區根路徑是資料集中所設定的路徑。 - 當您使用萬用字元資料夾篩選時,分割區根路徑是第一個萬用字元前面的子路徑。 例如,假設您將資料集中的路徑設定為 "root/folder/year=2020/month=08/day=27": - 如果您將分割區根路徑指定為 "root/folder/year=2020",則除了檔案內的資料行之外,複製活動還會分別產生值為 "08" 和 "27" 的兩個資料行 month 和 day 。- 如果未指定分割區根路徑,則不會產生額外的資料行。 |
No |
maxConcurrentConnections | 在活動執行期間建立至資料存放區的同時連線上限。 僅在想要限制並行連線時,才需要指定值。 | No |
範例:
"activities":[
{
"name": "CopyFromAzureFileStorage",
"type": "Copy",
"inputs": [
{
"referenceName": "<Delimited text input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "DelimitedTextSource",
"formatSettings":{
"type": "DelimitedTextReadSettings",
"skipLineCount": 10
},
"storeSettings":{
"type": "AzureFileStorageReadSettings",
"recursive": true,
"wildcardFolderPath": "myfolder*A",
"wildcardFileName": "*.csv"
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
Azure 檔案儲存體作為接收器
Azure Data Factory 支援下列檔案格式。 請參閱每篇文章,以取得以格式為基礎的設定。
在格式型複製接收器的 storeSettings
設定下,Azure 檔案儲存體支援下列屬性:
屬性 | 描述 | 必要 |
---|---|---|
type | storeSettings 下的 type 屬性必須設定為 AzureFileStorageWriteSettings。 |
Yes |
copyBehavior | 當來源是來自檔案型資料存放區的檔案時,會定義複製行為。 允許的值如下: - PreserveHierarchy (預設值):保留目標資料夾中的檔案階層。 來源檔案到來源資料夾的相對路徑,與目標檔案到目標資料夾的相對路徑相同。 - FlattenHierarchy:來自來源資料夾的所有檔案都在目標資料夾的第一層中。 目標檔案會有自動產生的名稱。 - MergeFiles:將來源資料夾的所有檔案合併成一個檔案。 若已指定檔案名稱,合併檔案的名稱會是指定的名稱。 否則,就會是自動產生的檔案名稱。 |
No |
maxConcurrentConnections | 在活動執行期間建立至資料存放區的同時連線上限。 僅在想要限制並行連線時,才需要指定值。 | No |
範例:
"activities":[
{
"name": "CopyToAzureFileStorage",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Parquet output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "ParquetSink",
"storeSettings":{
"type": "AzureFileStorageWriteSettings",
"copyBehavior": "PreserveHierarchy"
}
}
}
}
]
資料夾和檔案篩選範例
本節描述含有萬用字元篩選之資料夾路徑和檔案名稱所產生的行為。
folderPath | fileName | 遞迴 | 來源資料夾結構和篩選結果 (會擷取以粗體顯示的檔案) |
---|---|---|---|
Folder* |
(空白,使用預設值) | false | FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
(空白,使用預設值) | true | FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
*.csv |
false | FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
*.csv |
true | FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
檔案清單範例
本節說明使用複製活動來源中的檔案清單路徑時,所會產生的行為。
假設您的來源資料夾結構如下,且想要複製以粗體標示的檔案:
範例來源結構 | FileListToCopy.txt 中的內容 | 組態 |
---|---|---|
根 FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv 中繼資料 FileListToCopy.txt |
File1.csv Subfolder1/File3.csv Subfolder1/File5.csv |
在資料集內: - 資料夾路徑: root/FolderA 複製活動來源中: - 檔案清單路徑: root/Metadata/FileListToCopy.txt 檔案清單路徑指向同個資料存放區內的文字檔,包含所要複製的檔案清單,每行一個檔案,均有使用資料集內設定路徑的相對路徑。 |
遞迴和 copyBehavior 範例
本節說明遞迴和 copyBehavior 值在不同組合的情況下,複製作業所產生的行為。
遞迴 | copyBehavior | 來源資料夾結構 | 產生的目標 |
---|---|---|---|
true | preserveHierarchy | Folder1 File1 File2 Subfolder1 File3 File4 File5 |
會以與來源相同的結構,建立目標資料夾 Folder1: Folder1 File1 File2 Subfolder1 File3 File4 File5 |
true | flattenHierarchy | Folder1 File1 File2 Subfolder1 File3 File4 File5 |
會以下列結構建立目標資料夾 Folder1: Folder1 針對 File1 自動產生的名稱 針對 File2 自動產生的名稱 針對 File3 自動產生的名稱 針對 File4 自動產生的名稱 針對 File5 自動產生的名稱 |
true | mergeFiles | Folder1 File1 File2 Subfolder1 File3 File4 File5 |
會以下列結構建立目標資料夾 Folder1: Folder1 File1 + File2 + File3 + File4 + File 5 內容會合併成一個檔案,並有自動產生的檔案名稱 |
false | preserveHierarchy | Folder1 File1 File2 Subfolder1 File3 File4 File5 |
會以下列結構建立目標資料夾 Folder1 Folder1 File1 File2 系統不會挑選含有 File3、File4 和 File5 的 Subfolder1。 |
false | flattenHierarchy | Folder1 File1 File2 Subfolder1 File3 File4 File5 |
會以下列結構建立目標資料夾 Folder1 Folder1 針對 File1 自動產生的名稱 針對 File2 自動產生的名稱 系統不會挑選含有 File3、File4 和 File5 的 Subfolder1。 |
false | mergeFiles | Folder1 File1 File2 Subfolder1 File3 File4 File5 |
會以下列結構建立目標資料夾 Folder1 Folder1 File1 + File2 內容會合併成一個檔案,並具有自動產生的檔案名稱。 針對 File1 自動產生的名稱 系統不會挑選含有 File3、File4 和 File5 的 Subfolder1。 |
查閱活動屬性
若要了解屬性的詳細資料,請參閱查閱活動。
GetMetadata 活動屬性
若要了解關於屬性的詳細資料,請參閱 GetMetadata 活動
刪除活動屬性
若要了解關於屬性的詳細資料,請參閱刪除活動
舊版模型
注意
基於回溯相容性,仍照現狀支援下列模型。 建議您繼續使用以上各節所述的新模型,且製作 UI 已切換為產生新模型。
舊版資料集模型
屬性 | 描述 | 必要 |
---|---|---|
type | 資料集的類型屬性必須設定為:FileShare | Yes |
folderPath | 資料夾的路徑。 支援萬用字元篩選,允許的萬用字元為: * (比對零或多個字元) 和 ? (比對零或單一字元);如果您的實際資料夾名稱包含萬用字元或此逸出字元,請使用 ^ 來逸出。 範例:rootfolder/subfolder/,如需更多範例,請參閱資料夾和檔案篩選範例。 |
Yes |
fileName | 在指定 "folderPath" 之下檔案的名稱或萬用字元篩選。 若未指定此屬性的值,資料集就會指向資料夾中的所有檔案。 針對篩選,允許的萬用字元為: * (符合零或多個字元) 和 ? (符合零或單一字元)。- 範例 1: "fileName": "*.csv" - 範例 2: "fileName": "???20180427.txt" 如果實際檔案名稱內有萬用字元或逸出字元 ^ ,請使用此逸出字元來逸出。沒有為輸出資料集指定 fileName 且活動接收器中未指定 preserveHierarchy 時,複製活動會自動以下列模式產生檔案名稱:"Data.[活動執行識別碼 GUID].[GUID (若為 FlattenHierarchy)].[格式 (若已設定)].[壓縮 (若已設定)]",例如 "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz";如果您使用資料表名稱而非查詢來從表格式來源進行複製,則名稱模式為 "[資料表名稱].[格式].[壓縮 (若已設定)]",例如 "MyTable.csv"。 |
No |
modifiedDatetimeStart | 根據屬性篩選檔案:上次修改。 如果檔案的上次修改時間大於或等於 modifiedDatetimeStart 且小於 modifiedDatetimeEnd ,則會選取檔案。 此時間會以 "2018-12-01T05:00:00Z" 格式套用至 UTC 時區。 請注意,當您想要從大量檔案中篩選檔案時,啟用這項設定將影響資料移動的整體效能。 屬性可以是 NULL,這表示不會對資料集套用任何檔案屬性篩選條件。 當 modifiedDatetimeStart 具有日期時間值,但 modifiedDatetimeEnd 為 NULL 時,意謂著系統將會選取上次更新時間屬性大於或等於此日期時間值的檔案。 當 modifiedDatetimeEnd 具有日期時間值,但 modifiedDatetimeStart 為 NULL 時,則意謂著系統將會選取上次更新時間屬性小於此日期時間值的檔案。 |
No |
modifiedDatetimeEnd | 根據屬性篩選檔案: 上次修改。 如果檔案的上次修改時間大於或等於 modifiedDatetimeStart 且小於 modifiedDatetimeEnd ,則會選取檔案。 此時間會以 "2018-12-01T05:00:00Z" 格式套用至 UTC 時區。 請注意,當您想要從大量檔案中篩選檔案時,啟用這項設定將影響資料移動的整體效能。 屬性可以是 NULL,這表示不會對資料集套用任何檔案屬性篩選條件。 當 modifiedDatetimeStart 具有日期時間值,但 modifiedDatetimeEnd 為 NULL 時,意謂著系統將會選取上次更新時間屬性大於或等於此日期時間值的檔案。 當 modifiedDatetimeEnd 具有日期時間值,但 modifiedDatetimeStart 為 NULL 時,則意謂著系統將會選取上次更新時間屬性小於此日期時間值的檔案。 |
No |
format | 如果您想要在以檔案為基礎的存放區之間依原樣複製檔案 (二進位複本),請在輸入和輸出資料集定義中略過格式區段。 如果您想要以特定格式來剖析或產生檔案,以下是支援的檔案格式類型:TextFormat、JsonFormat、AvroFormat、OrcFormat、ParquetFormat。 將格式下的 type 屬性設定為這些值其中之一。 如需詳細資訊,請參閱文字格式、Json 格式、Avro 格式、Orc 格式和 Parquet 格式章節。 |
否 (僅適用於二進位複製案例) |
壓縮 | 指定此資料的壓縮類型和層級。 如需詳細資訊,請參閱支援的檔案格式和壓縮轉碼器。 支援的類型為:GZip、Deflate、BZip2 及 ZipDeflate。 支援的層級為:Optimal 和 Fastest。 |
No |
提示
若要複製資料夾下的所有檔案,請只指定 folderPath。
若要複製指定名稱的單一檔案,請以資料夾部分指定 folderPath,並以檔案名稱指定 fileName。
若要複製資料夾下的檔案子集,請以資料夾部分指定 folderPath,並以萬用字元篩選指定 fileName。
注意
如果您使用 "fileFilter" 屬性於檔案篩選,雖然仍舊支援,不過會建議您之後使用加入 "fileName" 的新篩選功能。
範例:
{
"name": "AzureFileStorageDataset",
"properties": {
"type": "FileShare",
"linkedServiceName":{
"referenceName": "<Azure File Storage linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"folderPath": "folder/subfolder/",
"fileName": "*",
"modifiedDatetimeStart": "2018-12-01T05:00:00Z",
"modifiedDatetimeEnd": "2018-12-01T06:00:00Z",
"format": {
"type": "TextFormat",
"columnDelimiter": ",",
"rowDelimiter": "\n"
},
"compression": {
"type": "GZip",
"level": "Optimal"
}
}
}
}
舊版複製活動來源模型
屬性 | 描述 | 必要 |
---|---|---|
type | 複製活動來源的類型屬性必須設定為:FileSystemSource | Yes |
遞迴 | 表示是否從子資料夾,或只有從指定的資料夾,以遞迴方式讀取資料。 請注意,當 recursive 設定為 true,而接收器為檔案型存放區時,系統不會在接收器複製/建立空資料夾/子資料夾。 允許的值為:true (預設值)、false |
No |
maxConcurrentConnections | 在活動執行期間建立至資料存放區的同時連線上限。 僅在想要限制並行連線時,才需要指定值。 | No |
範例:
"activities":[
{
"name": "CopyFromAzureFileStorage",
"type": "Copy",
"inputs": [
{
"referenceName": "<Azure File Storage input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "FileSystemSource",
"recursive": true
},
"sink": {
"type": "<sink type>"
}
}
}
]
舊版複製活動接收模型
屬性 | 描述 | 必要 |
---|---|---|
type | 複製活動接收器的類型屬性必須設定為:FileSystemSink | Yes |
copyBehavior | 當來源是來自檔案型資料存放區的檔案時,會定義複製行為。 允許的值如下: - PreserveHierarchy (預設值):保留目標資料夾中的檔案階層。 來源檔案到來源資料夾的相對路徑,與目標檔案到目標資料夾的相對路徑相同。 - FlattenHierarchy:來自來源資料夾的所有檔案都在目標資料夾的第一層中。 目標檔案會有自動產生的名稱。 - MergeFiles:將來源資料夾的所有檔案合併成一個檔案。 若指定檔案名稱,則合併的檔案名稱就是指定的名稱,否則為自動產生的檔案名稱。 |
No |
maxConcurrentConnections | 在活動執行期間建立至資料存放區的同時連線上限。 僅在想要限制並行連線時,才需要指定值。 | No |
範例:
"activities":[
{
"name": "CopyToAzureFileStorage",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Azure File Storage output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "FileSystemSink",
"copyBehavior": "PreserveHierarchy"
}
}
}
]
相關內容
如需複製活動支援作為來源和接收器的資料存放區清單,請參閱支援的資料存放區。