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ó) | (1) (2) |
Adatfolyam leképezése (forrás/fogadó) | (1) |
Keresési tevékenység | (1) (2) |
GetMetadata-tevékenység | (1) (2) |
Tevékenység törlése | (1) (2) |
(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:
- Az Adatok másolása eszköz
- Az Azure Portal
- A .NET SDK
- A Python SDK
- Azure PowerShell
- A REST API
- Az Azure Resource Manager-sablon
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.
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:
Keresse meg az SFTP-t, és válassza ki az SFTP-összekötőt.
Konfigurálja a szolgáltatás részleteit, tesztelje a kapcsolatot, és hozza létre az új társított szolgáltatást.
Az összekötő 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:
Tulajdonság | Leírás | Kötelező |
---|---|---|
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:
Tulajdonság | Leírás | Kötelező |
---|---|---|
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:
Tulajdonság | Leírás | Kötelező |
---|---|---|
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 privateKeyPath privateKeyContent a . |
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 privateKeyPath privateKeyContent a . |
passPhrase | 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. |
Feljegyzé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.
- Avro formátum
- Bináris formátum
- Tagolt szövegformátum
- Excel-formátum
- JSON formátum
- ORC formátum
- Parquet formátum
- XML-formátum
Az SFTP a formátumalapú adatkészlet beállításainál location
az alábbi tulajdonságokat támogatja:
Tulajdonság | Leírás | Kötelező |
---|---|---|
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.
- Avro formátum
- Bináris formátum
- Tagolt szövegformátum
- Excel-formátum
- JSON formátum
- ORC formátum
- Parquet formátum
- XML-formátum
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:
Tulajdonság | Leírás | Kötelező |
---|---|---|
típus | Az alatta lévő storeSettings típustulajdonságot SftpReadSettings é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 modifiedDatetimeEnd a . 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 month day 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 |
maxConcurrentConnections | 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:
Tulajdonság | Leírás | Kötelező |
---|---|---|
típus | Az alatta lévő storeSettings típustulajdonságot SftpWriteSettings é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 |
maxConcurrentConnections | 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. | Szám 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 | 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.
Feljegyzés
Az SSH-gazdagépkulcs érvényesítése jelenleg nem támogatott az adatfolyam leképezésében.
Feljegyzé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.
Név | Leírás | Kötelező | 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 Mozog: ['<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 | Időbélyegző | 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 Beállítások 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.
Név | Leírás | Kötelező | 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
Feljegyzé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
Tulajdonság | Leírás | Kötelező |
---|---|---|
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 modifiedDatetimeEnd a . 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 modifiedDatetimeEnd a . 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.
Feljegyzé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
Tulajdonság | Leírás | Kötelező |
---|---|---|
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 |
maxConcurrentConnections | 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>"
}
}
}
]
Kapcsolódó tartalom
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.