Adatok másolása és átalakítása SFTP-kiszolgálón az Azure Data Factory vagy az Azure Synapse Analytics használatával

A következőkre vonatkozik: Azure Data Factory Azure Synapse Analytics

Tipp.

Próbálja ki a Data Factoryt a Microsoft Fabricben, amely egy teljes körű elemzési megoldás a nagyvállalatok számára. A Microsoft Fabric az adattovábbítástól az adatelemzésig, a valós idejű elemzésig, az üzleti intelligenciáig és a jelentéskészítésig mindent lefed. Ismerje meg, hogyan indíthat új próbaverziót ingyenesen!

Ez a cikk azt ismerteti, hogyan másolhat adatokat a másolási tevékenység használatával a biztonságos FTP-kiszolgálóról és az SFTP-kiszolgálóra, és hogyan alakíthat át adatokat az SFTP-kiszolgálón az Adatfolyam használatával. További információkért olvassa el az Azure Data Factory vagy az Azure Synapse Analytics bevezető cikkét.

Támogatott képességek

Ez az SFTP-összekötő a következő képességeket támogatja:

Támogatott képességek IR
Copy tevékenység (forrás/fogadó) ① ②
Adatfolyam leképezése (forrás/fogadó)
Keresési tevékenység ① ②
GetMetadata-tevékenység ① ②
Tevékenység törlése ① ②

(1) Azure-integrációs modul (2) Saját üzemeltetésű integrációs modul

Az SFTP-összekötő a következőket támogatja:

  • Fájlok másolása az SFTP-kiszolgálóról és az SFTP-kiszolgálóra alapszintű, SSH nyilvános kulccsal vagy többtényezős hitelesítéssel.
  • Fájlok másolása a támogatott fájlformátumok és tömörítési kodekek elemzésével vagy létrehozásával.

Előfeltételek

Ha az adattár helyszíni hálózaton, Azure-beli virtuális hálózaton vagy Amazon Virtual Private Cloudon belül található, konfigurálnia kell egy saját üzemeltetésű integrációs modult a csatlakozáshoz.

Ha az adattár felügyelt felhőalapú adatszolgáltatás, használhatja az Azure Integration Runtime-ot. Ha a hozzáférés a tűzfalszabályokban jóváhagyott IP-címekre korlátozódik, hozzáadhat azure integration runtime IP-eket az engedélyezési listához.

Az Azure Data Factory felügyelt virtuális hálózati integrációs moduljával is elérheti a helyszíni hálózatot anélkül, hogy saját üzemeltetésű integrációs modult telepítene és konfigurálna.

A Data Factory által támogatott hálózati biztonsági mechanizmusokkal és lehetőségekkel kapcsolatos további információkért lásd az adathozzáférési stratégiákat.

Első lépések

A Copy tevékenység folyamattal való végrehajtásához használja az alábbi eszközök vagy SDK-k egyikét:

SFTP társított szolgáltatás létrehozása felhasználói felületen

Az alábbi lépésekkel SFTP-hez társított szolgáltatást hozhat létre az Azure Portal felhasználói felületén.

  1. Keresse meg az Azure Data Factory vagy a Synapse-munkaterület Kezelés lapját, és válassza a Társított szolgáltatások lehetőséget, majd kattintson az Új gombra:

  2. Keresse meg az SFTP-t, és válassza ki az SFTP-összekötőt.

    Screenshot of the SFTP connector.

  3. Konfigurálja a szolgáltatás részleteit, tesztelje a kapcsolatot, és hozza létre az új társított szolgáltatást.

    Screenshot of configuration for an SFTP linked service.

Csatlakozás or konfigurációjának részletei

A következő szakaszok az SFTP-hez tartozó entitások definiálásához használt tulajdonságok részleteit ismertetik.

Társított szolgáltatás tulajdonságai

Az SFTP társított szolgáltatás esetében a következő tulajdonságok támogatottak:

Property Leírás Required
típus A típustulajdonságot Sftp értékre kell állítani. Igen
házigazda Az SFTP-kiszolgáló neve vagy IP-címe. Igen
kikötő Az a port, amelyen az SFTP-kiszolgáló figyel.
Az engedélyezett érték egész szám, az alapértelmezett érték pedig 22.
Nem
skipHostKeyValidation Adja meg, hogy kihagyja-e a gazdagépkulcs érvényesítését.
Az engedélyezett értékek igazak és hamisak (alapértelmezett).
Nem
hostKeyFingerprint Adja meg a gazdagépkulcs ujjlenyomatát. Igen, ha a "skipHostKeyValidation" értéke hamis.
authenticationType Adja meg a hitelesítési típust.
Az engedélyezett értékek: Basic, SshPublicKey és MultiFactor. További tulajdonságokért lásd az Alapszintű hitelesítés használatát ismertető szakaszt. JSON-példákért lásd az SSH nyilvános kulcsú hitelesítésének használatát.
Igen
connectVia Az adattárhoz való csatlakozáshoz használandó integrációs modul . További információkért tekintse meg az Előfeltételek szakaszt . Ha az integrációs modul nincs megadva, a szolgáltatás az alapértelmezett Azure Integration Runtime-t használja. Nem

Alapszintű hitelesítés használata

Az alapszintű hitelesítés használatához állítsa az authenticationType tulajdonságot Alapszintűre, és adja meg a következő tulajdonságokat az előző szakaszban bevezetett SFTP-összekötő általános tulajdonságai mellett:

Property Leírás Required
Felhasználónév Az SFTP-kiszolgálóhoz hozzáféréssel rendelkező felhasználó. Igen
jelszó A felhasználó jelszava (userName). Jelölje meg ezt a mezőt SecureStringként, hogy biztonságosan tárolja, vagy hivatkozzon egy Azure-kulcstartóban tárolt titkos kódra. Igen

Példa

{
    "name": "SftpLinkedService",
    "properties": {
        "type": "Sftp",
        "typeProperties": {
            "host": "<sftp server>",
            "port": 22,
            "skipHostKeyValidation": false,
            "hostKeyFingerPrint": "ssh-rsa 2048 xx:00:00:00:xx:00:x0:0x:0x:0x:0x:00:00:x0:x0:00",
            "authenticationType": "Basic",
            "userName": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of integration runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Nyilvános SSH-kulcsos hitelesítés használata

Az SSH nyilvános kulcsú hitelesítés használatához állítsa be az "authenticationType" tulajdonságot SshPublicKey-ként, és adja meg a következő tulajdonságokat az SFTP-összekötő általános, az utolsó szakaszban bevezetetteken kívül:

Property Leírás Required
Felhasználónév Az SFTP-kiszolgálóhoz hozzáféréssel rendelkező felhasználó. Igen
privateKeyPath Adja meg az integrációs modul által elérhető titkos kulcsfájl abszolút elérési útját. Ez csak akkor érvényes, ha a saját üzemeltetésű integrációs modul a "connectVia"-ban van megadva. Adja meg a vagy privateKeyPathprivateKeyContenta .
privateKeyContent Base64 kódolású SSH titkos kulcs tartalma. Az SSH titkos kulcsának OpenSSH formátumúnak kell lennie. Jelölje meg ezt a mezőt SecureStringként, hogy biztonságosan tárolja, vagy hivatkozzon egy Azure-kulcstartóban tárolt titkos kódra. Adja meg a vagy privateKeyPathprivateKeyContenta .
Jelszót Adja meg a titkos kulcs visszafejtéséhez használt jelszót vagy jelszót, ha a kulcsfájlt vagy a kulcs tartalmát egy jelszó védi. Jelölje meg ezt a mezőt SecureStringként, hogy biztonságosan tárolja, vagy hivatkozzon egy Azure-kulcstartóban tárolt titkos kódra. Igen, ha a titkos kulcsfájlt vagy a kulcs tartalmát egy pass kifejezés védi.

Megjegyzés:

Az SFTP-összekötő támogatja az RSA/DSA OpenSSH-kulcsot. Győződjön meg arról, hogy a kulcsfájl tartalma a következővel kezdődik: "-----BEGIN [RSA/DSA] PRIVATE KEY-----". Ha a titkos kulcsfájl PPK formátumú fájl, a PuTTY eszközzel konvertálhat PPK-ról OpenSSH formátumra.

1. példa: SshPublicKey-hitelesítés privát kulcsú filePath használatával

{
    "name": "SftpLinkedService",
    "properties": {
        "type": "Sftp",
        "typeProperties": {
            "host": "<sftp server>",
            "port": 22,
            "skipHostKeyValidation": true,
            "authenticationType": "SshPublicKey",
            "userName": "xxx",
            "privateKeyPath": "D:\\privatekey_openssh",
            "passPhrase": {
                "type": "SecureString",
                "value": "<pass phrase>"
            }
        },
        "connectVia": {
            "referenceName": "<name of integration runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

2. példa: SshPublicKey-hitelesítés titkos kulcstartalommal

{
    "name": "SftpLinkedService",
    "type": "Linkedservices",
    "properties": {
        "type": "Sftp",
        "typeProperties": {
            "host": "<sftp server>",
            "port": 22,
            "skipHostKeyValidation": true,
            "authenticationType": "SshPublicKey",
            "userName": "<username>",
            "privateKeyContent": {
                "type": "SecureString",
                "value": "<base64 string of the private key content>"
            },
            "passPhrase": {
                "type": "SecureString",
                "value": "<pass phrase>"
            }
        },
        "connectVia": {
            "referenceName": "<name of integration runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Többtényezős hitelesítés használata

Az alapszintű és az SSH nyilvános kulcsú hitelesítés kombinációját tartalmazó többtényezős hitelesítés használatához adja meg a fenti szakaszokban leírt felhasználónevet, jelszót és titkos kulcsadatokat.

Példa: többtényezős hitelesítés

{
    "name": "SftpLinkedService",
    "properties": {
        "type": "Sftp",
        "typeProperties": {
            "host": "<host>",
            "port": 22,
            "authenticationType": "MultiFactor",
            "userName": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            },
            "privateKeyContent": {
                "type": "SecureString",
                "value": "<base64 encoded private key content>"
            },
            "passPhrase": {
                "type": "SecureString",
                "value": "<passphrase for private key>"
            }
        },
        "connectVia": {
            "referenceName": "<name of integration runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Adathalmaz tulajdonságai

Az adathalmazok meghatározásához elérhető szakaszok és tulajdonságok teljes listáját az Adathalmazok című cikkben találja.

Az Azure Data Factory a következő fájlformátumokat támogatja. A formátumalapú beállításokat az egyes cikkekben találja.

Az SFTP a formátumalapú adatkészlet beállításainál location az alábbi tulajdonságokat támogatja:

Property Leírás Required
típus Az adathalmaz típustulajdonságának location SftpLocation értékre kell állítania. Igen
folderPath A mappa elérési útja. Ha helyettesítő karakterrel szeretné szűrni a mappát, hagyja ki ezt a beállítást, és adja meg az elérési utat a tevékenység forrásbeállításaiban. Nem
fileName A fájl neve a megadott folderPath alatt. Ha helyettesítő karakterrel szeretné szűrni a fájlokat, hagyja ki ezt a beállítást, és adja meg a fájl nevét a tevékenység forrásbeállításaiban. Nem

Példa

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<SFTP linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "SftpLocation",
                "folderPath": "root/folder/subfolder"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

Másolási tevékenység tulajdonságai

A tevékenységek meghatározásához elérhető szakaszok és tulajdonságok teljes listáját a Folyamatok című cikkben találja. Ez a szakasz az SFTP-forrás által támogatott tulajdonságok listáját tartalmazza.

SFTP mint forrás

Az Azure Data Factory a következő fájlformátumokat támogatja. A formátumalapú beállításokat az egyes cikkekben találja.

Az SFTP a formátumalapú másolási forrás beállításai között az storeSettings alábbi tulajdonságokat támogatja:

Property Leírás Required
típus Az alatta lévő storeSettings típustulajdonságot SftpRead Gépház értékre kell állítani. Igen
A másolandó fájlok megkeresése
1. LEHETŐSÉG: statikus elérési út
Másolja az adathalmazban megadott mappából/fájl elérési útból. Ha az összes fájlt egy mappából szeretné másolni, adja meg wildcardFileName a következőt *is: .
2. LEHETŐSÉG: helyettesítő karakter
- helyettesítő karakterekFolderPath
A mappa elérési útja helyettesítő karakterekkel a forrásmappák szűréséhez.
Az engedélyezett helyettesítő karakterek * (nullával vagy több karakterrel egyező) és ? (nullával vagy egyetlen karakterrel egyező) karakterek; akkor használhatók ^ a feloldásra, ha a mappa tényleges neve helyettesítő karakterrel rendelkezik, vagy ez a feloldó karakter található benne.
További példákért tekintse meg a Mappa és fájlszűrő példákat.
Nem
2. LEHETŐSÉG: helyettesítő karakter
- wildcardFileName
A forrásfájlok szűréséhez használt fájlnév helyettesítő karakterekkel a megadott mappaPath/wildcardFolderPath alatt.
Az engedélyezett helyettesítő karakterek * (nullával vagy több karakterrel) és ? (nullával vagy egyetlen karakterrel egyező) karakterek; akkor használhatók ^ a feloldásra, ha a tényleges fájlnév helyettesítő karaktert tartalmaz, vagy ez a feloldó karakter található benne. További példákért tekintse meg a Mappa és fájlszűrő példákat.
Igen
3. LEHETŐSÉG: a fájlok listája
- fileListPath
Egy megadott fájlkészlet másolását jelzi. Mutasson egy szövegfájlra, amely tartalmazza a másolni kívánt fájlok listáját (soronként egy fájl, az adathalmazban konfigurált elérési út relatív elérési útjával).
Ha ezt a lehetőséget használja, ne adja meg a fájlnevet az adathalmazban. További példákért lásd a Fájllista példákat.
Nem
További beállítások
Rekurzív Azt jelzi, hogy az adatok rekurzív módon vannak-e beolvasva az almappákból vagy csak a megadott mappából. Ha a rekurzív érték igaz, és a fogadó fájlalapú tároló, a rendszer nem másol vagy hoz létre üres mappát vagy almappát a fogadóban.
Az engedélyezett értékek értéke igaz (alapértelmezett) és hamis.
Ez a tulajdonság nem érvényes a konfiguráláskor fileListPath.
Nem
deleteFilesAfterCompletion Azt jelzi, hogy a bináris fájlok törölve lesznek-e a forrástárból a céltárolóba való sikeres áthelyezés után. A fájltörlés fájlonként történik, ezért ha a másolási tevékenység meghiúsul, látni fogja, hogy egyes fájlok már át lettek másolva a célhelyre, és törölve lettek a forrásból, míg mások továbbra is a forrástárban maradnak.
Ez a tulajdonság csak bináris fájlok másolási forgatókönyvében érvényes. Az alapértelmezett érték: hamis.
Nem
modifiedDatetimeStart A fájlok szűrése a Legutóbb módosítva attribútum alapján történik.
A fájlok akkor lesznek kijelölve, ha az utolsó módosításuk időpontja nagyobb vagy egyenlő, modifiedDatetimeStart mint modifiedDatetimeEnda . Az idő az UTC időzónára lesz alkalmazva 2018-12-01T05:00:00Z formátumban.
A tulajdonságok null értékűek lehetnek, ami azt jelenti, hogy az adathalmazra nincs fájlattribútum-szűrő alkalmazva. Ha modifiedDatetimeStart dátum/idő érték van megadva, de modifiedDatetimeEnd null értékű, az azt jelenti, hogy a rendszer kijelöli azokat a fájlokat, amelyeknek az utolsó módosított attribútuma nagyobb vagy egyenlő a datetime értékkel. Ha modifiedDatetimeEnd dátum/idő értékkel rendelkezik, de modifiedDatetimeStart NULL értékű, az azt jelenti, hogy a legutóbbi módosított attribútummal rendelkező fájlok a dátum/idő értéknél kisebbek.
Ez a tulajdonság nem érvényes a konfiguráláskor fileListPath.
Nem
modifiedDatetimeEnd Lásd fentebb. Nem
enablePartitionDiscovery Particionált fájlok esetén adja meg, hogy elemezni szeretné-e a partíciókat a fájl elérési útján, és további forrásoszlopokként adja hozzá őket.
Az engedélyezett értékek hamisak (alapértelmezett) és igazak.
Nem
partitionRootPath Ha a partíciófelderítés engedélyezve van, adja meg az abszolút gyökér elérési utat a particionált mappák adatoszlopként való olvasásához.

Ha nincs megadva, alapértelmezés szerint
– Ha fájlelérési utat használ az adathalmazban vagy a forrásban lévő fájlok listájában, a partíció gyökérútvonala az adathalmazban konfigurált elérési út.
– Helyettesítő karakteres mappaszűrő használata esetén a partíció gyökérútvonala az első helyettesítő karakter előtti alútvonal.

Tegyük fel például, hogy az adathalmaz elérési útját "root/folder/year=2020/month=08/day=27" értékre konfigurálja:
- Ha a partíció gyökér elérési útját "root/folder/year=2020" értékként adja meg, a másolási tevékenység a fájlokon belüli oszlopok mellett két további oszlopot monthday hoz létre, valamint a "08" és a "27" értéket.
– Ha nincs megadva partíciógyökér elérési útja, a rendszer nem hoz létre további oszlopot.
Nem
maxConcurrent Csatlakozás ions Az adattárhoz a tevékenység futtatása során létrehozott egyidejű kapcsolatok felső korlátja. Csak akkor adjon meg értéket, ha korlátozni szeretné az egyidejű kapcsolatokat. Nem
disableChunking Amikor adatokat másol az SFTP-ből, a szolgáltatás először megpróbálja lekérni a fájl hosszát, majd több részre osztja a fájlt, és párhuzamosan olvassa be őket. Adja meg, hogy az SFTP-kiszolgáló támogatja-e a fájlhossz lekérését vagy egy bizonyos eltolásból való olvasást.
Az engedélyezett értékek hamisak (alapértelmezett), igazak.
Nem

Példa

"activities":[
    {
        "name": "CopyFromSFTP",
        "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": "SftpReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv",
                    "disableChunking": false
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

SFTP mint fogadó

Az Azure Data Factory a következő fájlformátumokat támogatja. A formátumalapú beállításokat az egyes cikkekben találja.

Az SFTP formátumalapú másolási fogadó beállításainál storeSettings az alábbi tulajdonságok támogatottak:

Property Leírás Required
típus Az alatta lévő storeSettings típustulajdonságot SftpWrite Gépház értékre kell állítani. Igen
copyBehavior Meghatározza a másolási viselkedést, ha a forrás fájlalapú adattárból származó fájlok.

Az engedélyezett értékek a következők:
- PreserveHierarchy (alapértelmezett): Megőrzi a fájlhierarchiát a célmappában. A forrásfájlnak a forrásmappához viszonyított elérési útja megegyezik a célfájl célmappához viszonyított elérési útával.
- FlattenHierarchy: A forrásmappából származó összes fájl a célmappa első szintjén található. A célfájlok automatikusan létrehozott névvel rendelkeznek.
- MergeFiles: A forrásmappából származó összes fájlt egyetlen fájlba egyesíti. Ha a fájlnév meg van adva, az egyesített fájlnév a megadott név. Ellenkező esetben ez egy automatikusan létrehozott fájlnév.
Nem
maxConcurrent Csatlakozás ions Az adattárhoz a tevékenység futtatása során létrehozott egyidejű kapcsolatok felső korlátja. Csak akkor adjon meg értéket, ha korlátozni szeretné az egyidejű kapcsolatokat. Nem
useTempFileRename Jelezze, hogy ideiglenes fájlokba szeretne-e feltölteni és átnevezni őket, vagy közvetlenül írni a célmappába vagy fájlhelyre. Alapértelmezés szerint a szolgáltatás először ideiglenes fájlokba ír, majd átnevezi őket a feltöltés befejezésekor. Ez a sorozat (1) segít elkerülni azokat az ütközéseket, amelyek sérült fájlhoz vezethetnek, ha más folyamatok is ugyanarra a fájlra írnak, és (2) győződjön meg arról, hogy a fájl eredeti verziója létezik az átvitel során. Ha az SFTP-kiszolgáló nem támogatja az átnevezési műveletet, tiltsa le ezt a beállítást, és győződjön meg arról, hogy nincs egyidejű írás a célfájlba. További információkért tekintse meg a táblázat végén található hibaelhárítási tippet. Nem. Az alapértelmezett érték igaz.
operationTimeout Az SFTP-kiszolgálónak küldött írási kérések várakozási ideje túllépi az időkorlátot. Az alapértelmezett érték 60 perc (01:00:00). Nem

Tipp.

Ha "UserErrorSftpPathNotFound", "UserErrorSftpPermissionDenied" vagy "SftpOperationFail" hibaüzenet jelenik meg, amikor adatokat ír az SFTP-be, és a használt SFTP-felhasználó rendelkezik a megfelelő engedélyekkel, ellenőrizze, hogy az SFTP-kiszolgáló támogatja-e a fájl átnevezési műveletét. Ha nem, tiltsa le a Feltöltés ideiglenes fájllal (useTempFileRename) beállítást, és próbálkozzon újra. A tulajdonságról az előző táblázatból tudhat meg többet. Ha saját üzemeltetésű integrációs modult használ a Copy tevékenység, mindenképpen használja a 4.6-os vagy újabb verziót.

Példa

"activities":[
    {
        "name": "CopyToSFTP",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "BinarySink",
                "storeSettings":{
                    "type": "SftpWriteSettings",
                    "copyBehavior": "PreserveHierarchy"
                }
            }
        }
    }
]

Mappa- és fájlszűrő példák

Ez a szakasz azt a viselkedést ismerteti, amely a helyettesítő karakterek szűrőinek mappaútvonalakkal és fájlnevekkel való használatával jár.

folderPath fileName Rekurzív A forrásmappa struktúrája és a szűrés eredménye (a félkövér fájlokat a rendszer lekéri)
Folder* (üres, alapértelmezett beállítás) false FolderA
    File1.csv
    File2.json
    Almappák1
        File3.csv
        File4.json
        File5.csv
MásikFolderB
    File6.csv
Folder* (üres, alapértelmezett beállítás) true FolderA
    File1.csv
    File2.json
    Almappák1
        File3.csv
        File4.json
        File5.csv
MásikFolderB
    File6.csv
Folder* *.csv false FolderA
    File1.csv
    File2.json
    Almappák1
        File3.csv
        File4.json
        File5.csv
MásikFolderB
    File6.csv
Folder* *.csv true FolderA
    File1.csv
    File2.json
    Almappák1
        File3.csv
        File4.json
        File5.csv
MásikFolderB
    File6.csv

Példák fájllistára

Ez a táblázat azt a viselkedést ismerteti, amely a Copy tevékenység forrásban lévő fájllista elérési útjának használatával jár. Feltételezi, hogy a következő forrásmappa-struktúrával rendelkezik, és félkövér típusú fájlokat szeretne másolni:

Minta forrásstruktúra Tartalom a FileListToCopy.txt fájlban Az Azure Data Factory konfigurálása
Gyökér
    FolderA
        File1.csv
        File2.json
        Almappák1
            File3.csv
            File4.json
            File5.csv
    Metaadatok
        FileListToCopy.txt
File1.csv
Almappák1/File3.csv
Almappák1/File5.csv
Az adathalmazban:
- Mappa elérési útja: root/FolderA

A Copy tevékenység forrásban:
- Fájllista elérési útja: root/Metadata/FileListToCopy.txt

A fájllista elérési útja egy szövegfájlra mutat ugyanabban az adattárban, amely tartalmazza a másolni kívánt fájlok listáját (soronként egy fájl, az adathalmazban konfigurált elérési út relatív elérési útjával).

Adatfolyam-tulajdonságok leképezése

A leképezési adatfolyamok adatainak átalakításakor az SFTP-ből a következő formátumokban olvashat és írhat fájlokat:

A formátumspecifikus beállítások az adott formátum dokumentációjában találhatók. További információ: Forrásátalakítás a leképezési adatfolyamban és fogadóátalakítás a leképezési adatfolyamban.

Megjegyzés:

Az SSH-gazdagépkulcs érvényesítése jelenleg nem támogatott az adatfolyam leképezésében.

Megjegyzés:

A helyszíni SFTP-sever eléréséhez az Azure Data Factoryt vagy a Synapse-munkaterület felügyelt virtuális hálózatát kell használnia egy privát végpont használatával. A részletes lépésekért tekintse meg ezt az oktatóanyagot .

Forrásátalakítás

Az alábbi táblázat az SFTP-forrás által támogatott tulajdonságokat sorolja fel. Ezeket a tulajdonságokat a Forrás beállításai lapon szerkesztheti. Beágyazott adatkészlet használata esetén további beállítások jelennek meg, amelyek megegyeznek az adathalmaz tulajdonságai szakaszban leírt tulajdonságokkal.

Name Leírás Required Megengedett értékek Adatfolyam-szkript tulajdonság
Helyettesítő karakter elérési útja A helyettesítő karakterek mintája arra utasítja az ADF-t, hogy egyetlen forrásátalakítás során végighaladjon az egyes egyező mappákon és fájlokon. Ez egy hatékony módja annak, hogy több fájlt dolgozzanak fel egyetlen folyamaton belül. Nem Karakterlánc[] helyettesítő karakterekPaths
Partíció gyökérútvonala Ha a fájlforrásban vannak particionált mappák formátummal key=value (például year=2019), akkor a partíciómappa fának a legfelső szintjét hozzárendelheti az adatfolyam egy oszlopnevére. Nem Sztring partitionRootPath
Nem található fájl engedélyezése Ha igaz, a rendszer nem ad hibát, ha nem talál fájlokat. Nem true vagy false ignoreNoFilesFound
Fájlok listája Ez egy fájlkészlet. Hozzon létre egy szövegfájlt, amely tartalmazza a feldolgozandó relatív elérésiút-fájlok listáját. Mutasson erre a szövegfájlra. Nem true vagy false Filelist
A fájlnév tárolására használt oszlop Tárolja a forrásfájl nevét egy oszlopban az adatokban. Itt adjon meg egy új oszlopnevet a fájlnév-sztring tárolásához. Nem Sztring rowUrlColumn
A befejezés után Ha nem szeretne semmit tenni a forrásfájllal az adatfolyam futtatása után, törölje a forrásfájlt, vagy helyezze át a forrásfájlt. Az áthelyezés elérési útjai relatívek. Nem Törlés: true vagy false
Mozgatni: ['<from>', '<to>']
purgeFiles
moveFiles
Szűrés utoljára módosítva A feldolgozandó fájlok szűréséhez megadhatja a legutóbbi módosítás dátumtartományát. Minden dátumidő UTC-ben van megadva. Nem Timestamp modifiedAfter
modifiedBefore

Példa SFTP-forrásszkriptre

Ha SFTP-adatkészletet használ forrástípusként, a társított adatfolyam-szkript a következő:

source(allowSchemaDrift: true,
	validateSchema: false,
	ignoreNoFilesFound: true,
	purgeFiles: true,
	fileList: true,
	modifiedAfter: (toTimestamp(1647388800000L)),
	modifiedBefore: (toTimestamp(1647561600000L)),
	partitionRootPath: 'partdata',
	wildcardPaths:['partdata/**/*.csv']) ~> SFTPSource

Fogadó átalakítása

Az alábbi táblázat az SFTP-fogadó által támogatott tulajdonságokat sorolja fel. Ezeket a tulajdonságokat a Gépház lapon szerkesztheti. Beágyazott adatkészlet használata esetén további beállítások jelennek meg, amelyek megegyeznek az adathalmaz tulajdonságai szakaszban leírt tulajdonságokkal.

Name Leírás Required Megengedett értékek Adatfolyam-szkript tulajdonság
A mappa törlése Meghatározza, hogy a célmappa törlődik-e az adatok megírása előtt. Nem true vagy false megcsonkít
Fájlnév beállítás A megírt adatok elnevezési formátuma. Alapértelmezés szerint partíciónként egy fájl formátuma part-#####-tid-<guid>. Nem Minta: Sztring
Partíciónként: Sztring[]
Névfájl oszlopadatokként: Sztring
Névmappa oszlopadatokként: Sztring
Kimenet egyetlen fájlba: ['<fileName>']
filePattern
partitionFileNames
rowUrlColumn
rowFolderUrlColumn
partitionFileNames
Az összes idézőjele Meghatározza, hogy az összes értéket idézőjelekbe foglalja-e. Nem true vagy false quoteAll

Példa SFTP fogadószkriptre

Ha SFTP-adatkészletet használ fogadótípusként, a társított adatfolyam-szkript a következő:

IncomingStream sink(allowSchemaDrift: true,
	validateSchema: false,
	filePattern:'loans[n].csv',
	truncate: true,
	skipDuplicateMapInputs: true,
	skipDuplicateMapOutputs: true) ~> SFTPSink

Keresési tevékenység tulajdonságai

A keresési tevékenység tulajdonságairól további információt a Keresési tevékenység című témakörben talál.

GetMetadata tevékenység tulajdonságai

A GetMetadata tevékenységtulajdonságairól további információt a GetMetadata tevékenység című témakörben talál.

Tevékenységtulajdonságok törlése

A tevékenységtulajdonságok törléséről további információt a Tevékenység törlése című témakörben talál.

Örökölt modellek

Megjegyzés:

A visszamenőleges kompatibilitáshoz hasonlóan az alábbi modellek továbbra is támogatottak. Javasoljuk, hogy a korábban tárgyalt új modellt használja, mert a szerzői felhasználói felület átállt az új modell létrehozására.

Örökölt adathalmaz-modell

Property Leírás Required
típus Az adathalmaz típustulajdonságának FileShare értékre kell állítania. Igen
folderPath A mappa elérési útja. A helyettesítő karakterek szűrője támogatott. Az engedélyezett helyettesítő karakterek * (nulla vagy több karakternek felel meg) és ? (nullával vagy egyetlen karakterrel egyezik meg); akkor használható ^ a feloldásra, ha a tényleges fájlnévben helyettesítő karakter vagy ez a feloldó karakter található.

Példák: gyökérmappák/almappák/, további példák a Mappa és fájlszűrő példákban.
Igen
fileName A megadott "folderPath" alatti fájlok neve vagy helyettesítő karaktere . Ha nem ad meg értéket ehhez a tulajdonsághoz, az adathalmaz a mappában lévő összes fájlra mutat.

Szűrő esetén az engedélyezett helyettesítő karakterek (nullával vagy több karakterrel) és ? (nullával vagy egyetlen karakterrel) egyeznek * .
- 1. példa: "fileName": "*.csv"
- 2. példa: "fileName": "???20180427.txt"
A feloldás akkor használható ^ , ha a mappa tényleges neve helyettesítő karaktert vagy ebben a feloldó karaktert használ.
Nem
modifiedDatetimeStart A fájlok szűrése a Legutóbb módosítva attribútum alapján történik. A fájlok akkor lesznek kijelölve, ha az utolsó módosításuk időpontja nagyobb vagy egyenlő, modifiedDatetimeStart mint modifiedDatetimeEnda . Az idő az UTC időzónára lesz alkalmazva 2018-12-01T05:00:00Z formátumban.

Az adatáthelyezés általános teljesítményét befolyásolja, hogy engedélyezi ezt a beállítást, ha nagy számú fájlból szeretne fájlszűrőt végezni.

A tulajdonságok null értékűek lehetnek, ami azt jelenti, hogy az adathalmazra nincs fájlattribútum-szűrő alkalmazva. Ha modifiedDatetimeStart dátum/idő érték van megadva, de modifiedDatetimeEnd null értékű, az azt jelenti, hogy a rendszer kijelöli azokat a fájlokat, amelyeknek az utolsó módosított attribútuma nagyobb vagy egyenlő a datetime értékkel. Ha modifiedDatetimeEnd dátum/idő értékkel rendelkezik, de modifiedDatetimeStart NULL értékű, az azt jelenti, hogy a legutóbbi módosított attribútummal rendelkező fájlok a dátum/idő értéknél kisebbek.
Nem
modifiedDatetimeEnd A fájlok szűrése a Legutóbb módosítva attribútum alapján történik. A fájlok akkor lesznek kijelölve, ha az utolsó módosításuk időpontja nagyobb vagy egyenlő, modifiedDatetimeStart mint modifiedDatetimeEnda . Az idő az UTC időzónára lesz alkalmazva 2018-12-01T05:00:00Z formátumban.

Az adatáthelyezés általános teljesítményét befolyásolja, hogy engedélyezi ezt a beállítást, ha nagy számú fájlból szeretne fájlszűrőt végezni.

A tulajdonságok null értékűek lehetnek, ami azt jelenti, hogy az adathalmazra nincs fájlattribútum-szűrő alkalmazva. Ha modifiedDatetimeStart dátum/idő érték van megadva, de modifiedDatetimeEnd null értékű, az azt jelenti, hogy a rendszer kijelöli azokat a fájlokat, amelyeknek az utolsó módosított attribútuma nagyobb vagy egyenlő a datetime értékkel. Ha modifiedDatetimeEnd dátum/idő értékkel rendelkezik, de modifiedDatetimeStart NULL értékű, az azt jelenti, hogy a legutóbbi módosított attribútummal rendelkező fájlok a dátum/idő értéknél kisebbek.
Nem
format Ha fájlokat szeretne másolni a fájlalapú tárolók (bináris másolás) között, hagyja ki a formátumszakaszt a bemeneti és kimeneti adatkészlet-definíciókban.

Ha egy adott formátumú fájlokat szeretne elemezni, a következő fájlformátumtípusok támogatottak: TextFormat, JsonFormat, AvroFormat, OrcFormat és ParquetFormat. A formátum alatti típustulajdonság beállítása az alábbi értékek egyikére. További információ: Szövegformátum, Json formátum, Avro formátum, Orc formátum és Parquet formátumszakaszok.
Nem (csak bináris másolási forgatókönyv esetén)
tömörítés Adja meg az adatok tömörítési típusát és szintjét. További információ: Támogatott fájlformátumok és tömörítési kodekek.
A támogatott típusok a GZip, a Deflate, a BZip2 és a ZipDeflate.
A támogatott szintek optimálisak és leggyorsabbak.
Nem

Tipp.

Ha az összes fájlt át szeretné másolni egy mappában, csak a folderPath értéket adja meg.
Ha egyetlen fájlt szeretne másolni egy megadott névvel, adja meg a folderPath mappát a mapparészlel, a fájlnévvel pedig a fileName értéket.
Ha egy mappa alá szeretné másolni a fájlok egy részhalmazát, adja meg a folderPath mappát a mapparészlel, a fileName tulajdonságot pedig a helyettesítő karakter szűrővel.

Megjegyzés:

Ha fileFilter tulajdonságot használt a fájlszűrőhöz, az továbbra is támogatott, de azt javasoljuk, hogy mostantól használja a fájlnévhez hozzáadott új szűrőképességet.

Példa

{
    "name": "SFTPDataset",
    "type": "Datasets",
    "properties": {
        "type": "FileShare",
        "linkedServiceName":{
            "referenceName": "<SFTP 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"
            }
        }
    }
}

Örökölt Copy tevékenység forrásmodell

Property Leírás Required
típus A Copy tevékenység forrás típustulajdonságának a FileSystemSource értékre kell állítania Igen
Rekurzív Azt jelzi, hogy az adatok rekurzív módon vannak-e beolvasva az almappákból vagy csak a megadott mappából. Ha a rekurzív értéke igaz , és a fogadó fájlalapú tároló, az üres mappák és almappák nem lesznek másolva vagy létrehozva a fogadóban.
Az engedélyezett értékek igaz (alapértelmezett) és hamisak
Nem
maxConcurrent Csatlakozás ions Az adattárhoz a tevékenység futtatása során létrehozott egyidejű kapcsolatok felső korlátja. Csak akkor adjon meg értéket, ha korlátozni szeretné az egyidejű kapcsolatokat. Nem

Példa

"activities":[
    {
        "name": "CopyFromSFTP",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<SFTP input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "FileSystemSource",
                "recursive": true
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

A Copy tevékenység által forrásként és fogadóként támogatott adattárak listáját a támogatott adattárakban találja.