Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY: Azure Data Factory
Azure Synapse Analytics
Napiwek
Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !
W tym artykule opisano, jak używać działania kopiowania do przenoszenia danych z i na bezpieczny serwer FTP (SFTP) oraz jak używać Przepływu danych do przekształcania danych na serwerze SFTP. Aby dowiedzieć się więcej, przeczytaj artykuł wprowadzający dotyczący usługi Azure Data Factory lub Azure Synapse Analytics.
Obsługiwane możliwości
Ten łącznik SFTP jest obsługiwany dla następujących funkcjonalności:
Obsługiwane możliwości | IR |
---|---|
Działanie kopiowania (źródło/cel) | (1) (2) |
Przepływ danych mapowania (źródło/ujście) | (1) |
Działanie Wyszukiwania | (1) (2) |
Działanie GetMetadata | (1) (2) |
Usuń czynność | (1) (2) |
(1) Środowisko uruchomieniowe Azure (2) Środowisko uruchomieniowe zlokalizowane na własnym serwerze
W szczególności łącznik SFTP obsługuje następujące elementy:
- Kopiowanie plików na i z serwera SFTP przy użyciu uwierzytelniania podstawowego, klucza publicznego SSH lub uwierzytelniania wieloskładnikowego.
- Kopiowanie plików tak jak jest lub przez analizowanie lub generowanie plików z obsługiwanymi formatami plików i kodekami kompresji.
Wymagania wstępne
Jeśli magazyn danych znajduje się wewnątrz sieci lokalnej, sieci wirtualnej platformy Azure lub Amazon Virtual Private Cloud, musisz skonfigurować własne środowisko uruchomieniowe do integracji, aby się z nim połączyć.
Jeśli magazyn danych jest zarządzaną usługą danych w chmurze, możesz użyć środowiska Azure Integration Runtime. Jeśli dostęp jest ograniczony do adresów IP zatwierdzonych w regułach zapory, możesz dodać adresy IP środowiska Azure Integration Runtime do listy dozwolonych.
Możesz również użyć funkcji środowiska Integration Runtime zarządzanej sieci wirtualnej w usłudze Azure Data Factory, aby uzyskać dostęp do sieci lokalnej bez instalowania i konfigurowania własnego środowiska Integration Runtime.
Aby uzyskać więcej informacji na temat mechanizmów zabezpieczeń sieci i opcji obsługiwanych przez usługę Data Factory, zobacz Strategie dostępu do danych.
Rozpocznij
Aby wykonać działanie Kopiuj za pomocą potoku, możesz użyć jednego z następujących narzędzi lub zestawów SDK:
- Narzędzie do kopiowania danych
- Portal Azure
- Zestaw SDK platformy .NET
- Zestaw SDK języka Python
- Azure PowerShell
- Interfejs API REST
- Szablon usługi Azure Resource Manager
Tworzenie połączonej usługi SFTP przy użyciu interfejsu użytkownika
Wykonaj poniższe kroki, aby utworzyć połączoną usługę SFTP w interfejsie użytkownika witryny Azure Portal.
Przejdź do karty Zarządzanie w obszarze roboczym usługi Azure Data Factory lub Synapse i wybierz pozycję Połączone usługi, a następnie kliknij pozycję Nowy:
Wyszukaj SFTP i wybierz łącznik SFTP.
Skonfiguruj szczegóły usługi, przetestuj połączenie i utwórz nową połączoną usługę.
Szczegóły konfiguracji łącznika
Poniższe sekcje zawierają szczegółowe informacje o właściwościach używanych do definiowania jednostek specyficznych dla sfTP.
Właściwości połączonej usługi
Następujące właściwości są obsługiwane dla połączonej usługi SFTP:
Własność | Opis | Wymagane |
---|---|---|
typ | Właściwość type musi być ustawiona na Sftp. | Tak |
gospodarz | Nazwa lub adres IP serwera SFTP. | Tak |
port | Port, na którym nasłuchuje serwer SFTP. Dozwolona wartość to liczba całkowita, a wartość domyślna to 22. |
Nie. |
skipHostKeyValidation (pomijajWalidacjeKluczaHosta) | Określ, czy pominąć walidację klucza hosta. Dozwolone wartości to true i false (wartość domyślna). |
Nie. |
odcisk klucza hosta | Określ odcisk palca klucza hosta. | Tak, jeśli dla ustawienia "skipHostKeyValidation" ustawiono wartość false. |
typ uwierzytelniania | Określ typ uwierzytelniania. Dozwolone wartości to Basic, SshPublicKey i MultiFactor. Aby uzyskać więcej właściwości, zobacz sekcję Korzystanie z uwierzytelniania podstawowego. Aby zapoznać się z przykładami w formacie JSON, zobacz sekcję Use SSH public key authentication (Używanie uwierzytelniania za pomocą klucza publicznego SSH). |
Tak |
connectVia | Środowisko Integration Runtime będzie użyte do połączenia z repozytorium danych. Aby dowiedzieć się więcej, zobacz sekcję Wymagania wstępne . Jeśli środowisko Integration Runtime nie zostanie określone, usługa używa domyślnego środowiska Azure Integration Runtime. | Nie. |
Korzystanie z uwierzytelniania podstawowego
Aby użyć uwierzytelniania podstawowego , ustaw właściwość authenticationType na Podstawowa i określ następujące właściwości oprócz właściwości ogólnych łącznika SFTP, które zostały wprowadzone w poprzedniej sekcji:
Nieruchomość | Opis | Wymagane |
---|---|---|
userName | Użytkownik, który ma dostęp do serwera SFTP. | Tak |
hasło | Hasło użytkownika (userName). Oznacz to pole jako SecureString, aby bezpiecznie go przechowywać lub odwołaj się do tajemnicy przechowywanej w usłudze Azure Key Vault. | Tak |
Przykład:
{
"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"
}
}
}
Korzystanie z uwierzytelniania za pomocą klucza publicznego SSH
Aby użyć uwierzytelniania klucza publicznego SSH, ustaw właściwość "authenticationType" jako SshPublicKey i określ następujące właściwości oprócz ogólnych właściwości łącznika SFTP wprowadzonych w ostatniej sekcji:
Nieruchomość | Opis | Wymagane |
---|---|---|
userName | Użytkownik, który ma dostęp do serwera SFTP. | Tak |
privateKeyPath | Określ ścieżkę bezwzględną do pliku klucza prywatnego, do którego może uzyskać dostęp środowisko Integration Runtime. Ma to zastosowanie tylko wtedy, gdy typ lokalnego środowiska Integration Runtime jest określony w "connectVia". | Określ wartość privateKeyPath lub privateKeyContent . |
privateKeyContent | Zawartość klucza prywatnego SSH zakodowana w formacie Base64. Klucz prywatny SSH powinien mieć format OpenSSH. Oznacz to pole jako SecureString, aby bezpiecznie je przechowywać, lub odwołaj się do tajemnicy przechowywanej w usłudze Azure Key Vault. | Określ wartość privateKeyPath lub privateKeyContent . |
hasło | Określ frazę dostępu lub hasło, aby odszyfrować klucz prywatny, jeśli plik klucza lub zawartość klucza jest chroniona za pomocą frazy dostępu. Oznacz to pole jako SecureString, aby bezpiecznie je przechowywać lub odwołać się do sekretu przechowywanego w usłudze Azure Key Vault. | Tak, jeśli plik klucza prywatnego lub zawartość klucza jest chroniona przez frazę dostępu. |
Uwaga
Łącznik SFTP obsługuje klucz RSA/DSA OpenSSH. Upewnij się, że zawartość pliku klucza rozpoczyna się od ciągu "-----BEGIN [RSA/DSA] PRIVATE KEY-----". Jeśli plik klucza prywatnego jest plikiem w formacie PPK, użyj narzędzia PuTTY, aby przekonwertować plik PPK na format OpenSSH.
Przykład 1: uwierzytelnianie za pomocą SshPublicKey przy użyciu klucza prywatnego i ścieżki do pliku
{
"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"
}
}
}
Przykład 2: uwierzytelnianie SshPublicKey przy użyciu zawartości klucza prywatnego
{
"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"
}
}
}
Korzystanie z uwierzytelniania wieloskładnikowego
Aby użyć uwierzytelniania wieloskładnikowego, które jest połączeniem uwierzytelniania podstawowego oraz uwierzytelniania kluczem publicznym SSH, określ nazwę użytkownika, hasło oraz informacje o kluczu prywatnym opisane w powyższych sekcjach.
Przykład: uwierzytelnianie wieloskładnikowe
{
"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"
}
}
}
Właściwości zestawu danych
Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania zestawów danych, zobacz artykuł Zestawy danych.
Usługa Azure Data Factory obsługuje następujące formaty plików. Zapoznaj się z każdym artykułem, aby zapoznać się z ustawieniami opartymi na formacie.
- Format Avro
- Format binarny
- Format tekstu rozdzielanego
- Format programu Excel
- Format JSON
- Format ORC
- Format Parquet
- Format XML
Następujące właściwości są obsługiwane w przypadku protokołu SFTP w ustawieniach location
w zestawie danych opartym na formacie:
Nieruchomość | Opis | Wymagane |
---|---|---|
typ | Właściwość type w obszarze location w zestawie danych musi być ustawiona na SftpLocation. |
Tak |
folderPath | Ścieżka do folderu. Jeśli chcesz użyć symbolu wieloznakowego do filtrowania folderu, pomiń to ustawienie i określ ścieżkę w ustawieniach źródła działań. | Nie. |
nazwaPliku | Nazwa pliku w określonej ścieżce folderu. Jeśli chcesz używać symbolu wieloznakowego do filtrowania plików, pomiń to ustawienie i określ nazwę pliku w ustawieniach źródła działań. | Nie. |
Przykład:
{
"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"
}
}
}
Właściwości działania kopiowania
Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania aktywności, zobacz artykuł Pipelines. Ta sekcja zawiera listę właściwości obsługiwanych przez źródło SFTP.
SFTP jako źródło
Usługa Azure Data Factory obsługuje następujące formaty plików. Zapoznaj się z każdym artykułem, aby zapoznać się z ustawieniami opartymi na formacie.
- Format Avro
- Format binarny
- Format tekstu oddzielanego
- Format programu Excel
- Format JSON
- Format ORC
- Format Parquet
- Format XML
Następujące właściwości są obsługiwane w przypadku protokołu SFTP w ustawieniach storeSettings
w źródle kopiowania opartym na formacie:
Nieruchomość | Opis | Wymagane |
---|---|---|
typ | Właściwość type w obszarze storeSettings musi być ustawiona na SftpReadSettings. |
Tak |
Lokalizowanie plików do skopiowania | ||
OPCJA 1: ścieżka statyczna |
Skopiuj z folderu/ścieżki pliku określonej w zestawie danych. Jeśli chcesz skopiować wszystkie pliki z folderu, dodatkowo określ wildcardFileName jako * . |
|
OPCJA 2: symbol wieloznaczny - symbol wieloznacznyFolderPath |
Ścieżka folderu z symbolami wieloznacznymi do filtrowania folderów źródłowych. Dozwolone symbole wieloznaczne to * (pasuje do zera lub większej liczby znaków) i ? (pasuje do zera lub pojedynczego znaku); użyj polecenia ^ , aby uniknąć, jeśli rzeczywista nazwa folderu ma symbol wieloznaczny lub znak ucieczki wewnątrz. Aby uzyskać więcej przykładów, zobacz Przykłady filtrów folderów i plików. |
Nie. |
OPCJA 2: symbol wieloznaczny - symbol wieloznacznyFileName |
Nazwa pliku z symbolami wieloznacznymi w ramach określonego folderuPath/symbol wieloznacznyFolderPath do filtrowania plików źródłowych. Dozwolone symbole wieloznaczne to * (pasuje do zera lub większej liczby znaków) i ? (pasuje do zera lub pojedynczego znaku); użyj polecenia ^ , aby uciec, jeśli rzeczywista nazwa pliku ma symbol wieloznaczny lub znak ucieczki wewnątrz. Aby uzyskać więcej przykładów, zobacz Przykłady filtrów folderów i plików. |
Tak |
OPCJA 3: lista plików - fileListPath |
Wskazuje, aby skopiować określony zestaw plików. Wskaż plik tekstowy zawierający listę plików, które chcesz skopiować (jeden plik na wiersz ze ścieżką względną do ścieżki skonfigurowanej w zestawie danych). Jeśli używasz tej opcji, nie określaj nazwy pliku w zestawie danych. Aby uzyskać więcej przykładów, zobacz Przykłady listy plików. |
Nie. |
Ustawienia dodatkowe | ||
Rekurencyjne | Wskazuje, czy dane są odczytywane rekursywnie z podfolderów, czy tylko z określonego folderu. Gdy rekursja jest ustawiona na wartość true, a miejsce docelowe jest magazynem opartym na plikach, pusty folder lub podfolder nie jest kopiowany ani tworzony w lokalizacji docelowej. Dozwolone wartości to true (wartość domyślna) i false. Ta właściwość nie ma zastosowania podczas konfiguracji fileListPath . |
Nie. |
usuńPlikiPoZakończeniu | Wskazuje, czy pliki binarne zostaną usunięte z magazynu źródłowego po pomyślnym przeniesieniu do magazynu docelowego. Usunięcie pliku odbywa się dla każdego pliku, więc gdy kopiowanie nie powiedzie się, zobaczysz, że niektóre pliki zostały już skopiowane do miejsca docelowego i usunięte ze źródła, a inne nadal znajdują się w magazynie źródłowym. Ta właściwość jest prawidłowa tylko w scenariuszu kopiowania plików binarnych. Wartość domyślna: false. |
Nie. |
zmodyfikowanaDataCzasPoczątek | Pliki są filtrowane na podstawie atrybutu Ostatnia modyfikacja. Pliki są wybierane, jeśli ich czas ostatniej modyfikacji jest większy lub równy modifiedDatetimeStart i mniejszy niż modifiedDatetimeEnd . Czas jest stosowany do strefy czasowej UTC w formacie 2018-12-01T05:00:00Z. Właściwości mogą mieć wartość NULL, co oznacza, że żaden filtr atrybutu pliku nie jest stosowany do zestawu danych. Jeśli modifiedDatetimeStart ma wartość data/godzina, ale modifiedDatetimeEnd ma wartość NULL, oznacza to, że wybrano pliki, których ostatnio zmodyfikowany atrybut jest większy lub równy wartości daty/godziny. Jeśli modifiedDatetimeEnd ma wartość typu data/godzina, ale modifiedDatetimeStart ma wartość NULL, oznacza to, że pliki, których ostatnio zmodyfikowany atrybut jest mniejszy niż wartość daty/godziny, są zaznaczone.Ta właściwość nie ma zastosowania podczas konfigurowania elementu fileListPath . |
Nie. |
zmodyfikowanyKoniecDatyCzasu | Jak wyżej. | Nie. |
enablePartitionDiscovery | W przypadku plików podzielonych na partycje określ, czy analizować partycje ze ścieżki pliku i dodać je jako dodatkowe kolumny źródłowe. Dozwolone wartości to false (wartość domyślna) i true. |
Nie. |
partitionRootPath | Po włączeniu odnajdywania partycji określ bezwzględną ścieżkę katalogu głównego, aby odczytywać foldery podzielone na partycje jako kolumny danych. Jeśli nie zostanie określony, domyślnie, — Jeśli używasz ścieżki pliku w zestawie danych lub liście plików w źródle, ścieżka główna partycji jest ścieżką skonfigurowaną w zestawie danych. — W przypadku używania filtru folderów wieloznacznych ścieżka główna partycji jest ścieżką podrzędną przed pierwszym symbolem wieloznacznym. Załóżmy na przykład, że ścieżka w zestawie danych zostanie skonfigurowana jako "root/folder/year=2020/month=08/day=27": - Jeśli określisz ścieżkę główną partycji jako "root/folder/year=2020", działanie kopiowania wygeneruje dwie kolejne kolumny month i day z wartością "08" i "27" odpowiednio, oprócz kolumn wewnątrz plików.— Jeśli nie określono ścieżki głównej partycji, nie zostanie wygenerowana żadna dodatkowa kolumna. |
Nie. |
maksymalna liczba jednoczesnych połączeń | Górny limit połączeń współbieżnych ustanawianych dla magazynu danych podczas przebiegu procesu. Określ wartość tylko wtedy, gdy chcesz ograniczyć połączenia współbieżne. | Nie. |
disableChunking (wyłączanie fragmentowania) | Podczas kopiowania danych z SFTP usługa próbuje najpierw uzyskać długość pliku, a następnie podzielić plik na wiele części i odczytać je równolegle. Określ, czy serwer SFTP obsługuje pobieranie długości pliku lub odczyt z określonego przesunięcia. Dozwolone wartości to false (wartość domyślna), true. |
Nie. |
Przykład:
"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 jako ujście
Usługa Azure Data Factory obsługuje następujące formaty plików. Zapoznaj się z każdym artykułem, aby zapoznać się z ustawieniami opartymi na formacie.
Następujące właściwości są obsługiwane w przypadku protokołu SFTP w ustawieniach storeSettings
w ujściu kopiowania opartego na formacie:
Własność | Opis | Wymagane |
---|---|---|
typ | Właściwość type w obszarze storeSettings musi być ustawiona na SftpWriteSettings. |
Tak |
zachowanie kopiowania | Definiuje zachowanie kopiowania, gdy źródłem są pliki z magazynu danych opartego na plikach. Dozwolone wartości to: - PreserveHierarchy (wartość domyślna): Zachowuje hierarchię plików w folderze docelowym. Ścieżka względna pliku źródłowego do folderu źródłowego jest identyczna ze ścieżką względną pliku docelowego do folderu docelowego. - FlattenHierarchy: Wszystkie pliki z folderu źródłowego znajdują się na pierwszym poziomie folderu docelowego. Pliki docelowe mają automatycznie wygenerowane nazwy. - MergeFiles: Łączy wszystkie pliki z folderu źródłowego w jeden plik. Jeśli określono nazwę pliku, scalona nazwa pliku jest określoną nazwą. W przeciwnym razie jest to automatycznie wygenerowana nazwa pliku. |
Nie. |
maksymalnaLiczbaJednoczesnychPołączeń | Górny limit połączeń współbieżnych ustanowionych z magazynem danych podczas wykonywania działania. Określ wartość tylko wtedy, gdy chcesz ograniczyć połączenia współbieżne. | Nie. |
useTempFileRename | Określ, czy przekazywać pliki tymczasowe i zmieniać ich nazwy, czy bezpośrednio zapisywać w folderze docelowym lub lokalizacji pliku. Domyślnie usługa najpierw zapisuje dane w plikach tymczasowych, a następnie zmienia ich nazwę po zakończeniu przekazywania. Ta sekwencja pomaga (1) uniknąć konfliktów, które mogą spowodować uszkodzenie pliku, jeśli inne procesy zapisują się w tym samym pliku, i (2) upewnij się, że oryginalna wersja pliku istnieje podczas transferu. Jeśli serwer SFTP nie obsługuje operacji zmiany nazwy, wyłącz tę opcję i upewnij się, że nie masz współbieżnego zapisu do pliku docelowego. Aby uzyskać więcej informacji, zobacz poradę dotyczącą rozwiązywania problemów na końcu tej tabeli. | Nr. Wartość domyślna to true. |
operationTimeout | Czas oczekiwania przed przekroczeniem limitu czasu każdego żądania zapisu na serwerze SFTP. Wartość domyślna to 60 minut (01:00:00). | Nie. |
Napiwek
Jeśli wystąpi błąd "UserErrorSftpPathNotFound", "UserErrorSftpPermissionDenied" lub "SftpOperationFail" podczas zapisywania danych w SFTP, i jeśli użytkownik SFTP, którego używasz, ma odpowiednie uprawnienia, sprawdź, czy operacja zmiany nazwy plików na serwerze SFTP działa. Jeśli nie jest, wyłącz opcję Przekaż z plikiem tymczasowym (useTempFileRename
) i spróbuj ponownie. Aby dowiedzieć się więcej na temat tej właściwości, zobacz poprzednią tabelę. Jeśli używasz osadzonego środowiska uruchomieniowego integracji dla operacji kopiowania, upewnij się, że używasz wersji 4.6 lub nowszej.
Przykład:
"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"
}
}
}
}
]
Przykłady filtrów folderów i plików
W tej sekcji opisano zachowanie wynikające z używania filtrów wieloznacznych ze ścieżkami folderów i nazwami plików.
folderPath | nazwaPliku | Rekurencyjny | Struktura folderu źródłowego i wynik filtru (pobierane są pliki pogrubione ) |
---|---|---|---|
Folder* |
(puste, użyj wartości domyślnej) | fałsz | FolderA File1.csv File2.json Podkatalog1 File3.csv File4.json File5.csv InnyFolderB File6.csv |
Folder* |
(puste, użyj wartości domyślnej) | prawda | Folder A File1.csv File2.json Podkatalog1 File3.csv File4.json File5.csv InnyFolderB File6.csv |
Folder* |
*.csv |
fałsz | FolderA File1.csv File2.json Podfolder-1 File3.csv File4.json File5.csv AnotherFolderB File6.csv |
Folder* |
*.csv |
prawda | FolderA File1.csv File2.json Podfolder 1 File3.csv File4.json File5.csv InnyFolderB File6.csv |
Przykłady listy plików
W tej tabeli opisano zachowanie wynikające z używania ścieżki listy plików w źródle aktywności Kopiuj. Przyjęto założenie, że masz następującą strukturę folderu źródłowego i chcesz skopiować pliki, które mają pogrubiony typ:
Przykładowa struktura źródła | Zawartość pliku FileListToCopy.txt | Konfiguracja usługi Azure Data Factory |
---|---|---|
korzeń FolderA File1.csv File2.json Podfolder 1 File3.csv File4.json File5.csv Metadane FileListToCopy.txt |
File1.csv Podkatalog1/File3.csv Podkatalog1/File5.csv |
W zestawie danych: - Ścieżka folderu: root/FolderA W źródle aktywności Kopiuj: - Ścieżka listy plików: root/Metadata/FileListToCopy.txt Ścieżka listy plików wskazuje plik tekstowy w tym samym magazynie danych, który zawiera listę plików, które chcesz skopiować (jeden plik na wiersz, ze ścieżką względną do ścieżki skonfigurowanej w zestawie danych). |
Właściwości mapowania przepływu danych
Podczas przekształcania danych w przepływach danych do mapowania można odczytywać i zapisywać pliki z SFTP w następujących formatach:
Ustawienia specyficzne dla formatu znajdują się w dokumentacji dla tego formatu. Aby uzyskać więcej informacji, zobacz Przekształcanie źródła w mapowaniu przepływu danych i Przekształcanie ujścia w mapowaniu przepływu danych.
Uwaga
Walidacja klucza hosta SSH nie jest uwzględniana w przepływie danych związanych z mapowaniem teraz.
Uwaga
Aby uzyskać dostęp do lokalnego serwera SFTP, musisz użyć usługi Azure Data Factory lub obszaru roboczego Synapse z wykorzystaniem zarządzanej sieci wirtualnej i prywatnego punktu końcowego. Zapoznaj się z tym samouczkiem , aby uzyskać szczegółowe instrukcje.
Przekształcanie źródła
W poniższej tabeli wymieniono właściwości obsługiwane przez źródło SFTP. Te właściwości można edytować na karcie Opcje źródła. W przypadku korzystania z wbudowanego zestawu danych zostaną wyświetlone dodatkowe ustawienia, które są takie same jak właściwości opisane w sekcji właściwości zestawu danych.
Nazwa/nazwisko | Opis | Wymagane | Dozwolone wartości | Właściwość skryptu przepływu danych |
---|---|---|---|---|
Ścieżka z symbolem zastępczym | Użycie wzorca z symbolami wieloznacznymi spowoduje, że usługa ADF będzie przetwarzać każdy pasujący folder i plik w ramach jednej transformacji źródłowej. Jest to skuteczny sposób przetwarzania wielu plików w ramach jednego przepływu. | Nie. | String[] | symbole wieloznacznePaths |
Ścieżka główna partycji | Jeśli foldery partycjonowane w źródle pliku mają format key=value (na przykład year=2019 ), możesz przypisać najwyższy poziom drzewa folderów partycji do nazwy kolumny w strumieniu danych. |
Nie. | String | partitionRootPath |
Nie zezwalaj na znalezienie plików | Jeśli wartość true, błąd nie zostanie zgłoszony, jeśli nie znaleziono żadnych plików. | Nie. |
true lub false |
ignorujBrakPlikówZnalezionych |
Lista plików | Jest to zestaw plików. Utwórz plik tekstowy zawierający listę plików z ich ścieżkami względnymi do przetworzenia. Wskaż ten plik tekstowy. | Nie. |
true lub false |
lista plików |
Kolumna do przechowywania nazwy pliku | Zapisz nazwę pliku źródłowego w kolumnie w danych. Wprowadź tutaj nową nazwę kolumny, aby zapisać ciąg nazwy pliku. | Nie. | String | rowUrlColumn |
Po zakończeniu | Wybierz, czy po uruchomieniu przepływu danych nic nie zrobić z plikiem źródłowym, usunąć plik źródłowy, czy przenieść plik źródłowy. Ścieżki przenoszenia są względne. | Nie. | Usuń: true lub false Ruch: ['<from>', '<to>'] |
usuwanie plików PrzenieśPliki |
Filtruj według ostatniej modyfikacji | Możesz filtrować, które pliki są przetwarzane, określając zakres dat ostatniej modyfikacji. Wszystkie daty i godziny są w formacie UTC. | Nie. | Sygnatura czasowa | zmienionoPo modifiedBefore |
Przykład skryptu źródłowego SFTP
Jeśli używasz zestawu danych SFTP jako typu źródła, skojarzony skrypt przepływu danych to:
source(allowSchemaDrift: true,
validateSchema: false,
ignoreNoFilesFound: true,
purgeFiles: true,
fileList: true,
modifiedAfter: (toTimestamp(1647388800000L)),
modifiedBefore: (toTimestamp(1647561600000L)),
partitionRootPath: 'partdata',
wildcardPaths:['partdata/**/*.csv']) ~> SFTPSource
Przekształcenie ujścia
W poniższej tabeli wymieniono właściwości obsługiwane przez odbiornik SFTP. Te właściwości można edytować na karcie Ustawienia . W przypadku korzystania z wbudowanego zestawu danych zostaną wyświetlone dodatkowe ustawienia, które są takie same jak właściwości opisane w sekcji właściwości zestawu danych.
Nazwa/nazwisko | Opis | Wymagane | Dozwolone wartości | Właściwość skryptu przepływu danych |
---|---|---|---|---|
Wyczyść folder | Określa, czy folder docelowy zostanie wyczyszczony przed zapisaniem danych. | Nie. |
true lub false |
skracać |
Opcja Nazwa pliku | Format nazewnictwa zapisanych danych. Domyślnie jeden plik na partycję w formacie part-#####-tid-<guid> . |
Nie. | Wzorzec: ciąg Dla partycji: Tablica ciągów znaków[] Nazwij plik jako dane kolumny: typ string Nazwa folderu jako dane kolumny: Ciąg Dane wyjściowe do pojedynczego pliku: ['<fileName>'] |
filePattern partitionFileNames rowUrlColumn rowFolderUrlColumn nazwyPlikówPartycji |
Zacytuj wszystko | Określa, czy wszystkie wartości mają być ujęte w cudzysłów. | Nie. |
true lub false |
quoteAll |
Przykładowy skrypt ujścia SFTP
W przypadku użycia zestawu danych SFTP jako typu ujścia skojarzony skrypt przepływu danych to:
IncomingStream sink(allowSchemaDrift: true,
validateSchema: false,
filePattern:'loans[n].csv',
truncate: true,
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> SFTPSink
Właściwości działania wyszukiwania
Aby uzyskać informacje o właściwościach działania wyszukiwania, zobacz Działanie wyszukiwania.
Właściwości działania GetMetadata
Aby uzyskać informacje o właściwościach aktywności GetMetadata, zobacz aktywność GetMetadata.
Usuń właściwości działania
Aby uzyskać informacje o właściwościach działania Delete, zobacz Delete activity.
Starsze modele
Uwaga
Następujące modele są nadal obsługiwane w celu zapewnienia zgodności z poprzednimi wersjami. Zalecamy użycie wcześniej omówionego nowego modelu, ponieważ interfejs użytkownika tworzenia zmienił się na generowanie nowego modelu.
Starszy model zestawu danych
Własność | Opis | Wymagane |
---|---|---|
rodzaj | Właściwość type zestawu danych musi być ustawiona na FileShare. | Tak |
folderPath | Ścieżka do folderu. Obsługiwany jest filtr wieloznaczny. Dozwolone symbole wieloznaczne to * (pasuje do zera lub większej liczby znaków) i ? (pasuje do zera lub pojedynczego znaku); użyj polecenia ^ , aby uciec, jeśli rzeczywista nazwa pliku ma symbol wieloznaczny lub znak ucieczki wewnątrz. Przykłady: folder główny/podfolder/, zobacz więcej przykładów w przykładach filtru folderów i plików. |
Tak |
nazwa pliku |
Nazwa lub filtr symboli zastępczych dla plików w ramach określonej ścieżki "folderPath". Jeśli nie określisz wartości dla tej właściwości, zestaw danych wskazuje wszystkie pliki w folderze. W przypadku filtru dozwolone symbole wieloznaczne to * (dopasowują zero lub więcej znaków) i ? (dopasowują zero lub pojedynczy znak).- Przykład 1: "fileName": "*.csv" — Przykład 2: "fileName": "???20180427.txt" Użyj ^ , aby zabezpieczyć się, jeśli rzeczywista nazwa folderu zawiera symbol wieloznaczny lub znak ucieczki. |
Nie. |
modifiedDatetimeStart | Pliki są filtrowane na podstawie atrybutu Ostatnia modyfikacja. Pliki są wybierane, jeśli ich czas ostatniej modyfikacji jest większy lub równy modifiedDatetimeStart i mniejszy niż modifiedDatetimeEnd . Czas jest stosowany do strefy czasowej UTC w formacie 2018-12-01T05:00:00Z. Ogólna wydajność przenoszenia danych będzie miała wpływ na włączenie tego ustawienia, gdy chcesz filtrować pliki z dużej liczby plików. Właściwości mogą mieć wartość NULL, co oznacza, że żaden filtr atrybutu pliku nie jest stosowany do zestawu danych. Jeśli modifiedDatetimeStart ma wartość data/godzina, ale modifiedDatetimeEnd ma wartość NULL, oznacza to, że wybrano pliki, których ostatnio zmodyfikowany atrybut jest większy lub równy wartości daty/godziny. Jeśli modifiedDatetimeEnd ma wartość typu data/godzina, ale modifiedDatetimeStart ma wartość NULL, oznacza to, że pliki, których ostatnio zmodyfikowany atrybut jest mniejszy niż wartość daty/godziny, są zaznaczone. |
Nie. |
zmodyfikowanyKoniecDatyICzasu | Pliki są filtrowane na podstawie atrybutu Ostatnia modyfikacja. Pliki są wybierane, jeśli ich czas ostatniej modyfikacji jest większy lub równy modifiedDatetimeStart i mniejszy niż modifiedDatetimeEnd . Czas jest stosowany do strefy czasowej UTC w formacie 2018-12-01T05:00:00Z. Ogólna wydajność przenoszenia danych będzie miała wpływ na włączenie tego ustawienia, gdy chcesz filtrować pliki z dużej liczby plików. Właściwości mogą mieć wartość NULL, co oznacza, że żaden filtr atrybutu pliku nie jest stosowany do zestawu danych. Jeśli modifiedDatetimeStart ma wartość data/godzina, ale modifiedDatetimeEnd ma wartość NULL, oznacza to, że wybrano pliki, których ostatnio zmodyfikowany atrybut jest większy lub równy wartości daty/godziny. Jeśli modifiedDatetimeEnd ma wartość typu data/godzina, ale modifiedDatetimeStart ma wartość NULL, oznacza to, że pliki, których ostatnio zmodyfikowany atrybut jest mniejszy niż wartość daty/godziny, są zaznaczone. |
Nie. |
formatowanie | Jeśli chcesz skopiować pliki w stanie nienaruszonym pomiędzy przechowywaniem plików (kopiowanie binarne), pomiń sekcję formatu w definicjach zarówno wejściowego, jak i wyjściowego zestawu danych. Jeśli chcesz przeanalizować pliki w określonym formacie, obsługiwane są następujące typy formatów plików: TextFormat, JsonFormat, AvroFormat, OrcFormat i ParquetFormat. Ustaw właściwość type w formacie na jedną z tych wartości. Aby uzyskać więcej informacji, zobacz sekcje Format tekstu, Format JSON, Format Avro, Format Orc i Parquet Format . |
Nie (tylko w scenariuszu kopiowania binarnego) |
kompresja | Określ typ i poziom kompresji danych. Aby uzyskać więcej informacji, zobacz Obsługiwane formaty plików i koderów kompresji. Obsługiwane typy to GZip, Deflate, BZip2 i ZipDeflate. Obsługiwane poziomy są optymalne i najszybsze. |
Nie. |
Napiwek
Aby skopiować wszystkie pliki w folderze, określ tylko folderPath .
Aby skopiować pojedynczy plik o określonej nazwie, określ folderPath ze częścią folderu i fileName nazwą pliku.
Aby skopiować podzbiór plików w folderze, określ folderPath z częścią folderu i fileName z filtrem wieloznacznym.
Uwaga
Jeśli używasz właściwości fileFilter dla filtru pliku, nadal jest obsługiwana tak, jak to jest, ale zalecamy użycie nowej funkcji filtrowania dodanej do fileName od teraz.
Przykład:
{
"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"
}
}
}
}
Model źródłowy starszej aktywności kopiowania
Własność | Opis | Wymagane |
---|---|---|
typ | Właściwość type źródła operacji kopiowania musi być ustawiona na FileSystemSource | Tak |
Rekursywny | Wskazuje, czy dane są odczytywane rekursywnie z podfolderów, czy tylko z określonego folderu. Gdy rekursywność jest ustawiona na true, a przeznaczenie to magazyn oparty na plikach, puste foldery i podfoldery nie zostaną skopiowane ani utworzone w miejscu przeznaczenia. Dozwolone wartości to true (wartość domyślna) i false |
Nie. |
maksymalnaLiczbaJednoczesnychPołączeń (maxConcurrentConnections) | Górny limit połączeń współbieżnych ustanowionych z magazynem danych podczas wykonywania działania. Określ wartość tylko wtedy, gdy chcesz ograniczyć połączenia współbieżne. | Nie. |
Przykład:
"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>"
}
}
}
]
Powiązana zawartość
Aby uzyskać listę magazynów danych obsługiwanych jako źródła i ujścia przez działanie Kopiuj, zobacz obsługiwane magazyny danych.