Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik:
Azure Data Factory
Azure Synapse Analytics
Tipp.
A Azure Data Factory törlési tevékenységével fájlokat vagy mappákat törölhet a helyszíni tárolókból vagy a felhőbeli tárolókból. Ezzel a tevékenységsel törölheti vagy archiválhatja a fájlokat, ha már nincs rájuk szükség.
Figyelmeztetés
A törölt fájlok vagy mappák nem állíthatók vissza (kivéve, ha a tárterületen engedélyezve van a helyreállítható törlés). Körültekintően járjon el, amikor a Törlés művelettel töröl fájlokat vagy mappákat.
Ajánlott eljárások
Íme néhány javaslat a törlési tevékenység használatára:
A törlési tevékenységgel történő törlés előtt biztonsági másolatot készít a fájlokról, ha a jövőben vissza kell állítania őket.
Győződjön meg arról, hogy a szolgáltatás rendelkezik írási engedélyekkel a mappák vagy fájlok tárolóból való törléséhez.
Győződjön meg arról, hogy nem törli az egyidejűleg írt fájlokat.
Ha egy helyszíni rendszerből szeretne fájlokat vagy mappákat törölni, győződjön meg arról, hogy a 3.14-esnél nagyobb verziójú, saját üzemeltetésű integrációs modult használ.
Támogatott adattárak
- Azure Blob Storage
- Azure Data Lake Storage Gen1
- Azure Data Lake Storage Gen2
- Azure Files
- Fájlrendszer
- FTP
- SFTP
- Microsoft Fabric Lakehouse
- Amazon S3
- Amazon S3-kompatibilis tároló
- Google Cloud Storage
- Oracle Cloud Storage
- HDFS
Törlési tevékenység létrehozása felhasználói felülettel
Ha törlési tevékenységet szeretne használni egy folyamatban, hajtsa végre a következő lépéseket:
Keresse meg a Delete tevékenységet a pipeline tevékenységek panelen, és húzza a Delete tevékenységet a folyamatvászonra.
Ha még nincs kijelölve, jelölje ki az új törlési tevékenységet a vásznon, és a Forrás fület a részletek szerkesztéséhez.
Válasszon ki egy meglévőt, vagy hozzon létre egy új adatkészletet, amely megadja a törölni kívánt fájlokat. Ha több fájl van kijelölve, engedélyezheti a rekurzív törlést, amely bármely gyermekmappában is törli az adatokat. Megadhatja a művelet egyidejű kapcsolatainak maximális számát is.
Ha szeretné, konfigurálja a naplózást a Naplózási beállítások lapon, és válasszon ki egy meglévőt, vagy hozzon létre egy új naplózási fiókhoz társított szolgáltatáshelyet az elvégzett törlési műveletek eredményeinek naplózásához.
Szintaxis
{
"name": "DeleteActivity",
"type": "Delete",
"typeProperties": {
"dataset": {
"referenceName": "<dataset name>",
"type": "DatasetReference"
},
"storeSettings": {
"type": "<source type>",
"recursive": true/false,
"maxConcurrentConnections": <number>
},
"enableLogging": true/false,
"logStorageSettings": {
"linkedServiceName": {
"referenceName": "<name of linked service>",
"type": "LinkedServiceReference"
},
"path": "<path to save log file>"
}
}
}
Típustulajdonságok
| Tulajdonság | Leírás | Kötelező |
|---|---|---|
| adathalmaz | Megadja az adathalmaz-hivatkozást annak meghatározásához, hogy mely fájlokat vagy mappákat kell törölni | Igen |
| rekurzív | Azt jelzi, hogy a fájlok rekurzív módon törlődnek-e az almappákból, vagy csak a megadott mappából. | Nem Az alapértelmezett érték false. |
| maxConcurrentConnections | A tárolótárhoz egyidejűleg a mappa vagy fájlok törléséhez csatlakoztatandó kapcsolatok száma. | Nem Az alapértelmezett érték 1. |
| naplózás engedélyezése | Jelzi, hogy rögzítenie kell-e a törölt mappát vagy a fájlneveket. Ha igaz, a naplófájl mentéséhez további tárfiókot kell megadnia, hogy a naplófájl olvasásával nyomon tudja követni a Delete tevékenység viselkedését. | Nem |
| napló tárolási beállítások | Csak akkor alkalmazható, ha a naplózás engedélyezése be van állítva igazra. Tárolótulajdonságok csoportja, amely megadhatja, hogy hová szeretné menteni a Törlés tevékenység által törölt mappát vagy fájlneveket tartalmazó naplófájlt. |
Nem |
| linkedServiceName (CsatlakoztatottSzolgáltatásNév) | Csak akkor alkalmazható, ha a naplózás engedélyezése be van állítva igazra. A Azure Storage, Azure Data Lake Storage Gen1 vagy Azure Data Lake Storage Gen2 társított szolgáltatása tárolja a Törlés tevékenység által törölt mappát vagy fájlneveket tartalmazó naplófájlt. Vegye figyelembe, hogy ugyanazzal a típusú Integration Runtime-mal kell konfigurálni, amelyet a fájltörlési tevékenység használ a fájlok törlésére. |
Nem |
| elérési út | Csak akkor alkalmazható, ha a naplózás engedélyezése be van állítva igazra. A naplófájl tárfiókban való mentésének elérési útja. Ha nem ad meg elérési utat, a szolgáltatás létrehoz egy tárolót. |
Nem |
Figyelés
A törlési tevékenység eredményeit két helyen tekintheti meg és figyelheti:
- A Delete tevékenység kimenetéből.
- A naplófájlból.
A Törlési tevékenység mintakimenete
{
"datasetName": "AmazonS3",
"type": "AmazonS3Object",
"prefix": "test",
"bucketName": "adf",
"recursive": true,
"isWildcardUsed": false,
"maxConcurrentConnections": 2,
"filesDeleted": 4,
"logPath": "https://sample.blob.core.windows.net/mycontainer/5c698705-a6e2-40bf-911e-e0a927de3f07",
"effectiveIntegrationRuntime": "MyAzureIR (West Central US)",
"executionDuration": 650
}
A Törlési tevékenység minta naplófájlja
| Név | Kategória | Állapot | Hiba |
|---|---|---|---|
| teszt1/yyy.json | Fájl | Törölve | |
| teszt2/hello789.txt | Fájl | Törölve | |
| test2/test3/hello000.txt | Fájl | Törölve | |
| test2/test3/zzz.json | Fájl | Törölve |
Példák a Delete tevékenység használatára
Adott mappák vagy fájlok törlése
Az áruház a következő mappastruktúrával rendelkezik:
Gyökér/
Folder_A_1/
1.txt
2.txt
3.csv
Folder_A_2/
4.txt
5.csv
Folder_B_1/
6.txt
7.csv
Folder_B_2/
8.txt
Most a Delete tevékenység használatával törli a mappát vagy a fájlokat az adathalmaz különböző tulajdonságértékeinek és a Törlés tevékenységnek a kombinációjával:
| folderPath | fájlnév | rekurzív | Kimenet |
|---|---|---|---|
| Gyökér/ Folder_A_2 | NULL | Hamis | Gyökér/ Folder_A_1/ 1.txt 2.txt 3.csv Folder_A_2/ Folder_B_1/ 6.txt 7.csv Folder_B_2/ 8.txt |
| Gyökér/ Folder_A_2 | NULL | Igaz | Gyökér/ Folder_A_1/ 1.txt 2.txt 3.csv |
| Gyökér/ Folder_A_2 | *.txt | Hamis | Gyökér/ Folder_A_1/ 1.txt 2.txt 3.csv Folder_A_2/ 5.csv Folder_B_1/ 6.txt 7.csv Folder_B_2/ 8.txt |
| Gyökér/ Folder_A_2 | *.txt | Igaz | Gyökér/ Folder_A_1/ 1.txt 2.txt 3.csv Folder_A_2/ 5.csv Folder_B_1/ 7.csv Folder_B_2/ |
Az időparticionált mappa vagy fájlok rendszeres tisztítása
Létrehozhat egy folyamatot, amely rendszeres időközönként megtisztítja az időparticionált mappát vagy fájlokat. A mappastruktúra például a következőhöz hasonló: /mycontainer/2018/12/14/*.csv. Az ütemezési eseményindító szolgáltatásrendszer-változója segítségével meghatározhatja, hogy melyik mappát vagy fájlokat kell törölni az egyes folyamatfuttatásokban.
Mintaadatfolyam
{
"name":"cleanup_time_partitioned_folder",
"properties":{
"activities":[
{
"name":"DeleteOneFolder",
"type":"Delete",
"dependsOn":[
],
"policy":{
"timeout":"7.00:00:00",
"retry":0,
"retryIntervalInSeconds":30,
"secureOutput":false,
"secureInput":false
},
"userProperties":[
],
"typeProperties":{
"dataset":{
"referenceName":"PartitionedFolder",
"type":"DatasetReference",
"parameters":{
"TriggerTime":{
"value":"@formatDateTime(pipeline().parameters.TriggerTime, 'yyyy/MM/dd')",
"type":"Expression"
}
}
},
"logStorageSettings":{
"linkedServiceName":{
"referenceName":"BloblinkedService",
"type":"LinkedServiceReference"
},
"path":"mycontainer/log"
},
"enableLogging":true,
"storeSettings":{
"type":"AzureBlobStorageReadSettings",
"recursive":true
}
}
}
],
"parameters":{
"TriggerTime":{
"type":"string"
}
},
"annotations":[
]
}
}
Mintaadatkészlet
{
"name":"PartitionedFolder",
"properties":{
"linkedServiceName":{
"referenceName":"BloblinkedService",
"type":"LinkedServiceReference"
},
"parameters":{
"TriggerTime":{
"type":"string"
}
},
"annotations":[
],
"type":"Binary",
"typeProperties":{
"location":{
"type":"AzureBlobStorageLocation",
"folderPath":{
"value":"@dataset().TriggerTime",
"type":"Expression"
},
"container":{
"value":"mycontainer",
"type":"Expression"
}
}
}
}
}
Mintatrigger
{
"name": "DailyTrigger",
"properties": {
"runtimeState": "Started",
"pipelines": [
{
"pipelineReference": {
"referenceName": "cleanup_time_partitioned_folder",
"type": "PipelineReference"
},
"parameters": {
"TriggerTime": "@trigger().scheduledTime"
}
}
],
"type": "ScheduleTrigger",
"typeProperties": {
"recurrence": {
"frequency": "Day",
"interval": 1,
"startTime": "2018-12-13T00:00:00.000Z",
"timeZone": "UTC",
"schedule": {
"minutes": [
59
],
"hours": [
23
]
}
}
}
}
}
Törölje a 2018.1.1 előtt legutóbb módosított lejárt fájlokat
Létrehozhat egy folyamatot a régi vagy lejárt fájlok törléséhez a következő fájlattribútumszűrő használatával: "LastModified" az adathalmazban.
Mintaadatfolyam
{
"name":"CleanupExpiredFiles",
"properties":{
"activities":[
{
"name":"DeleteFilebyLastModified",
"type":"Delete",
"dependsOn":[
],
"policy":{
"timeout":"7.00:00:00",
"retry":0,
"retryIntervalInSeconds":30,
"secureOutput":false,
"secureInput":false
},
"userProperties":[
],
"typeProperties":{
"dataset":{
"referenceName":"BlobFilesLastModifiedBefore201811",
"type":"DatasetReference"
},
"logStorageSettings":{
"linkedServiceName":{
"referenceName":"BloblinkedService",
"type":"LinkedServiceReference"
},
"path":"mycontainer/log"
},
"enableLogging":true,
"storeSettings":{
"type":"AzureBlobStorageReadSettings",
"recursive":true,
"modifiedDatetimeEnd":"2018-01-01T00:00:00.000Z"
}
}
}
],
"annotations":[
]
}
}
Mintaadatkészlet
{
"name":"BlobFilesLastModifiedBefore201811",
"properties":{
"linkedServiceName":{
"referenceName":"BloblinkedService",
"type":"LinkedServiceReference"
},
"annotations":[
],
"type":"Binary",
"typeProperties":{
"location":{
"type":"AzureBlobStorageLocation",
"fileName":"*",
"folderPath":"mydirectory",
"container":"mycontainer"
}
}
}
}
Fájlok áthelyezése a "Copy activity" és a "Delete activity" láncolásával
A fájlokat áthelyezheti egy Másolási művelet használatával, amellyel egy fájlt másol, majd egy Törlési művelet segítségével töröl egy fájlt a folyamatban. Ha több fájlt szeretne áthelyezni, használhatja a GetMetadata tevékenység + Szűrési tevékenység + Foreach tevékenység + Copy activity + Törlés tevékenységet, mint az alábbi példában.
Megjegyzés
Ha a teljes mappát úgy szeretné áthelyezni, hogy csak egy mappa elérési útját tartalmazó adatkészletet határoz meg, majd egy Copy activity és törlési tevékenység használatával ugyanarra az adatkészletre hivatkozik, amely egy mappát jelöl, nagyon óvatosnak kell lennie. Győződjön meg arról, hogy a másolási művelet és a törlési művelet között nem érkeznek új fájlok a mappába. Ha az új fájlok abban a pillanatban érkeznek a mappába, amikor a másolási tevékenység éppen befejezte a másolási feladatot, de a Törlési tevékenység nem indult el, akkor a Törlés tevékenység törölheti az újonnan érkező fájlt, amelyet még nem másolt a célhelyre a teljes mappa törlésével.
Mintaadatfolyam
{
"name":"MoveFiles",
"properties":{
"activities":[
{
"name":"GetFileList",
"type":"GetMetadata",
"dependsOn":[
],
"policy":{
"timeout":"7.00:00:00",
"retry":0,
"retryIntervalInSeconds":30,
"secureOutput":false,
"secureInput":false
},
"userProperties":[
],
"typeProperties":{
"dataset":{
"referenceName":"OneSourceFolder",
"type":"DatasetReference",
"parameters":{
"Container":{
"value":"@pipeline().parameters.SourceStore_Location",
"type":"Expression"
},
"Directory":{
"value":"@pipeline().parameters.SourceStore_Directory",
"type":"Expression"
}
}
},
"fieldList":[
"childItems"
],
"storeSettings":{
"type":"AzureBlobStorageReadSettings",
"recursive":true
},
"formatSettings":{
"type":"BinaryReadSettings"
}
}
},
{
"name":"FilterFiles",
"type":"Filter",
"dependsOn":[
{
"activity":"GetFileList",
"dependencyConditions":[
"Succeeded"
]
}
],
"userProperties":[
],
"typeProperties":{
"items":{
"value":"@activity('GetFileList').output.childItems",
"type":"Expression"
},
"condition":{
"value":"@equals(item().type, 'File')",
"type":"Expression"
}
}
},
{
"name":"ForEachFile",
"type":"ForEach",
"dependsOn":[
{
"activity":"FilterFiles",
"dependencyConditions":[
"Succeeded"
]
}
],
"userProperties":[
],
"typeProperties":{
"items":{
"value":"@activity('FilterFiles').output.value",
"type":"Expression"
},
"batchCount":20,
"activities":[
{
"name":"CopyAFile",
"type":"Copy",
"dependsOn":[
],
"policy":{
"timeout":"7.00:00:00",
"retry":0,
"retryIntervalInSeconds":30,
"secureOutput":false,
"secureInput":false
},
"userProperties":[
],
"typeProperties":{
"source":{
"type":"BinarySource",
"storeSettings":{
"type":"AzureBlobStorageReadSettings",
"recursive":false,
"deleteFilesAfterCompletion":false
},
"formatSettings":{
"type":"BinaryReadSettings"
},
"recursive":false
},
"sink":{
"type":"BinarySink",
"storeSettings":{
"type":"AzureBlobStorageWriteSettings"
}
},
"enableStaging":false,
"dataIntegrationUnits":0
},
"inputs":[
{
"referenceName":"OneSourceFile",
"type":"DatasetReference",
"parameters":{
"Container":{
"value":"@pipeline().parameters.SourceStore_Location",
"type":"Expression"
},
"Directory":{
"value":"@pipeline().parameters.SourceStore_Directory",
"type":"Expression"
},
"filename":{
"value":"@item().name",
"type":"Expression"
}
}
}
],
"outputs":[
{
"referenceName":"OneDestinationFile",
"type":"DatasetReference",
"parameters":{
"Container":{
"value":"@pipeline().parameters.DestinationStore_Location",
"type":"Expression"
},
"Directory":{
"value":"@pipeline().parameters.DestinationStore_Directory",
"type":"Expression"
},
"filename":{
"value":"@item().name",
"type":"Expression"
}
}
}
]
},
{
"name":"DeleteAFile",
"type":"Delete",
"dependsOn":[
{
"activity":"CopyAFile",
"dependencyConditions":[
"Succeeded"
]
}
],
"policy":{
"timeout":"7.00:00:00",
"retry":0,
"retryIntervalInSeconds":30,
"secureOutput":false,
"secureInput":false
},
"userProperties":[
],
"typeProperties":{
"dataset":{
"referenceName":"OneSourceFile",
"type":"DatasetReference",
"parameters":{
"Container":{
"value":"@pipeline().parameters.SourceStore_Location",
"type":"Expression"
},
"Directory":{
"value":"@pipeline().parameters.SourceStore_Directory",
"type":"Expression"
},
"filename":{
"value":"@item().name",
"type":"Expression"
}
}
},
"logStorageSettings":{
"linkedServiceName":{
"referenceName":"BloblinkedService",
"type":"LinkedServiceReference"
},
"path":"container/log"
},
"enableLogging":true,
"storeSettings":{
"type":"AzureBlobStorageReadSettings",
"recursive":true
}
}
}
]
}
}
],
"parameters":{
"SourceStore_Location":{
"type":"String"
},
"SourceStore_Directory":{
"type":"String"
},
"DestinationStore_Location":{
"type":"String"
},
"DestinationStore_Directory":{
"type":"String"
}
},
"annotations":[
]
}
}
Mintaadatkészletek
A GetMetadata-tevékenység által a fájllista számbavételéhez használt adatkészlet.
{
"name":"OneSourceFolder",
"properties":{
"linkedServiceName":{
"referenceName":"AzureStorageLinkedService",
"type":"LinkedServiceReference"
},
"parameters":{
"Container":{
"type":"String"
},
"Directory":{
"type":"String"
}
},
"annotations":[
],
"type":"Binary",
"typeProperties":{
"location":{
"type":"AzureBlobStorageLocation",
"folderPath":{
"value":"@{dataset().Directory}",
"type":"Expression"
},
"container":{
"value":"@{dataset().Container}",
"type":"Expression"
}
}
}
}
}
A másolási tevékenység és a törlési tevékenység által használt adatforrás adatkészlete.
{
"name":"OneSourceFile",
"properties":{
"linkedServiceName":{
"referenceName":"AzureStorageLinkedService",
"type":"LinkedServiceReference"
},
"parameters":{
"Container":{
"type":"String"
},
"Directory":{
"type":"String"
},
"filename":{
"type":"string"
}
},
"annotations":[
],
"type":"Binary",
"typeProperties":{
"location":{
"type":"AzureBlobStorageLocation",
"fileName":{
"value":"@dataset().filename",
"type":"Expression"
},
"folderPath":{
"value":"@{dataset().Directory}",
"type":"Expression"
},
"container":{
"value":"@{dataset().Container}",
"type":"Expression"
}
}
}
}
}
Az adatkészlet, amit az adat célhelyére irányuló másolási tevékenységhez használnak.
{
"name":"OneDestinationFile",
"properties":{
"linkedServiceName":{
"referenceName":"AzureStorageLinkedService",
"type":"LinkedServiceReference"
},
"parameters":{
"Container":{
"type":"String"
},
"Directory":{
"type":"String"
},
"filename":{
"type":"string"
}
},
"annotations":[
],
"type":"Binary",
"typeProperties":{
"location":{
"type":"AzureBlobStorageLocation",
"fileName":{
"value":"@dataset().filename",
"type":"Expression"
},
"folderPath":{
"value":"@{dataset().Directory}",
"type":"Expression"
},
"container":{
"value":"@{dataset().Container}",
"type":"Expression"
}
}
}
}
}
Innen is letöltheti a sablont a fájlok áthelyezéséhez .
Ismert korlátozások
A törlési tevékenység nem támogatja a helyettesítő karakterek által leírt mappák listájának törlését.
Ha fájlattribútum-szűrőt használ a törlési tevékenységben: modifiedDatetimeStart és modifiedDatetimeEnd a törölni kívánt fájlok kiválasztásához, győződjön meg arról, hogy a "wildcardFileName": "*" értéket is be kell állítani a törlési tevékenységben.
Kapcsolódó tartalom
További információ a fájlok áthelyezéséről Azure Data Factory és Synapse-folyamatokban.