Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
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 sposób kopiowania danych z serwera FTP. Aby dowiedzieć się więcej, przeczytaj artykuły wprowadzające dotyczące usług Azure Data Factory i Synapse Analytics.
Obsługiwane możliwości
Ten łącznik FTP jest obsługiwany w przypadku następujących funkcji:
| Obsługiwane możliwości | środowisko IR |
|---|---|
| działanie Kopiuj (źródło/-) | (1) (2) |
| Działanie Wyszukiwanie | (1) (2) |
| Działanie GetMetadata | (1) (2) |
| Usuń aktywność | (1) (2) |
(1) Środowisko uruchomieniowe integracji Azure (2) Środowisko uruchomieniowe integracji hostowane lokalnie
W szczególności ten łącznik FTP obsługuje:
- Kopiowanie plików przy użyciu uwierzytelniania podstawowego lub anonimowego .
- Kopiowanie plików w stanie niezmienionym lub analizowanie plików z obsługiwanymi formatami plików i kodekami kompresji.
Łącznik FTP obsługuje serwer FTP działający w trybie pasywnym. Tryb aktywny nie jest obsługiwany.
Wymagania wstępne
Jeśli magazyn danych znajduje się wewnątrz sieci lokalnej, sieci wirtualnej platformy Azure lub Amazon Virtual Private Cloud, musisz skonfigurować lokalne środowisko Integration Runtime, 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 zarządzanego środowiska Integration Runtime w 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.
Wprowadzenie
Aby wykonać działanie kopiowania za pomocą pipeline'u, możesz użyć jednego z następujących narzędzi lub zestawów SDK:
- Narzędzie do kopiowania danych
- Portal Azure
- zestawu SDK platformy .NET
- Zestaw SDK dla języka Python
- Azure PowerShell
- API REST
- Szablon usługi Azure Resource Manager
Tworzenie połączonej usługi z serwerem FTP przy użyciu interfejsu użytkownika
Wykonaj poniższe kroki, aby utworzyć połączoną usługę z serwerem FTP 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:
Szukaj FTP i wybierz łącznik FTP.
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 protokołu FTP.
Właściwości połączonej usługi
Następujące właściwości są obsługiwane w przypadku połączonej usługi FTP:
| Własność | Opis | Wymagane |
|---|---|---|
| typ | Właściwość type musi być ustawiona na: FtpServer. | Tak |
| gospodarz | Określ nazwę lub adres IP serwera FTP. | Tak |
| port | Określ port, na którym nasłuchuje serwer FTP. Dozwolone wartości to: liczba całkowita, wartość domyślna to 21. |
Nie. |
| włączSsl | Określ, czy używać protokołu FTP za pośrednictwem kanału SSL/TLS. Dozwolone wartości to: true (wartość domyślna), false. |
Nie. |
| włączWeryfikacjęCertyfikatuSerwera | Określ, czy włączyć weryfikację certyfikatu TLS/SSL serwera podczas korzystania z protokołu FTP za pośrednictwem kanału SSL/TLS. Dozwolone wartości to: true (wartość domyślna), false. |
Nie. |
| typ uwierzytelniania | Określ typ uwierzytelniania. Dozwolone wartości to: Podstawowa, Anonimowa |
Tak |
| userName | Określ użytkownika, który ma dostęp do serwera FTP. | Nie. |
| hasło | Określ hasło użytkownika (userName). Oznacz to pole jako element SecureString w celu bezpiecznego przechowywania go lub odwołuj się do wpisu tajnego przechowywanego w usłudze Azure Key Vault. | Nie. |
| connectVia | Środowisko Integration Runtime używane do połączenia z magazynem danych. Dowiedz się więcej w sekcji Wymagania wstępne . Jeśli nie zostanie określony, używa domyślnego środowiska Azure Integration Runtime. | Nie. |
Uwaga
Łącznik FTP obsługuje dostęp do serwera FTP bez szyfrowania ani jawnego szyfrowania SSL/TLS; nie obsługuje niejawnego szyfrowania SSL/TLS.
Przykład 1: używanie uwierzytelniania anonimowego
{
"name": "FTPLinkedService",
"properties": {
"type": "FtpServer",
"typeProperties": {
"host": "<ftp server>",
"port": 21,
"enableSsl": true,
"enableServerCertificateValidation": true,
"authenticationType": "Anonymous"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Przykład 2: używanie uwierzytelniania podstawowego
{
"name": "FTPLinkedService",
"properties": {
"type": "FtpServer",
"typeProperties": {
"host": "<ftp server>",
"port": 21,
"enableSsl": true,
"enableServerCertificateValidation": true,
"authenticationType": "Basic",
"userName": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"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 ograniczonego
- Format programu Excel
- Format JSON
- Format ORC
- Format Parquet
- Format XML
Następujące właściwości są obsługiwane dla FTP w location ustawieniach w zestawie danych opartym na formacie:
| Własność | Opis | Wymagane |
|---|---|---|
| typ | Właściwość type w obszarze location zestawu danych musi być ustawiona na FtpServerLocation. |
Tak |
| folderPath | Ścieżka do folderu. Jeśli chcesz używać symbolu wieloznakowego do filtrowania folderu, pomiń to ustawienie i określ je w ustawieniach źródła działań. | Nie. |
| nazwaPliku | Nazwa pliku pod daną ścieżką folderu. Jeśli chcesz używać symbolu wieloznakowego do filtrowania plików, pomiń to ustawienie i określ je w ustawieniach źródła działań. | Nie. |
Przykład:
{
"name": "DelimitedTextDataset",
"properties": {
"type": "DelimitedText",
"linkedServiceName": {
"referenceName": "<FTP linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, auto retrieved during authoring > ],
"typeProperties": {
"location": {
"type": "FtpServerLocation",
"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 działań, zobacz artykuł Pipelines (Potoki ). Ta sekcja zawiera listę właściwości obsługiwanych przez źródło FTP.
FTP 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 ograniczonego
- 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 FTP w ustawieniach storeSettings w źródle kopiowania opartym na formacie:
| Własność | Opis | Wymagane |
|---|---|---|
| typ | Właściwość type w obszarze storeSettings musi być ustawiona na FtpReadSettings. |
Tak |
| Znajdź pliki do skopiowania: | ||
| OPCJA 1: ścieżka statyczna |
Skopiuj z podanej ścieżki folderu/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 ^ , aby uniknąć, jeśli rzeczywista nazwa folderu ma symbol wieloznaczny lub znak ucieczki wewnątrz. Zobacz więcej przykładów w przykładach filtru folderów i plików. |
Nie. |
| OPCJA 2: symbol wieloznaczny - symbol wieloznacznyFileName |
Nazwa pliku z symbolami wieloznacznymi w ramach danego 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 ^ , aby uniknąć, jeśli rzeczywista nazwa pliku ma symbol wieloznaczny lub znak ucieczki wewnątrz. Zobacz więcej przykładów w przykładach filtru folderów i plików. |
Tak |
| OPCJA 3: lista plików - fileListPath |
Wskazuje, aby skopiować dany zestaw plików. Wskaż plik tekstowy zawierający listę plików, które chcesz skopiować, jeden plik na wiersz, czyli ścieżkę względną do ścieżki skonfigurowanej w zestawie danych. W przypadku korzystania z tej opcji nie należy określać nazwy pliku w zestawie danych. Zobacz więcej przykładów w przykładach listy plików. |
Nie. |
| Dodatkowe ustawienia: | ||
| Rekurencyjny | Wskazuje, czy dane są odczytywane rekursywnie z podfolderów, czy tylko z określonego folderu. Należy pamiętać, że gdy rekursywna ma wartość true, a ujście jest magazynem opartym na plikach, pusty folder lub podfolder nie jest kopiowany ani tworzony w ujściu. Dozwolone wartości to true (wartość domyślna) i false. Ta właściwość nie ma zastosowania podczas konfigurowania 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 osobno, 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, podczas gdy inne nadal pozostają w miejscu przechowywania źródłowego. Ta właściwość jest prawidłowa tylko w scenariuszu kopiowania plików binarnych. Wartość domyślna: false. |
Nie. |
| useBinaryTransfer | Określ, czy ma być używany tryb transferu binarnego. Wartości są prawdziwe dla trybu binarnego (wartość domyślna) i false dla ASCII. | Nie. |
| włączOdkrywaniePrzegród | 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. W przypadku nieokreślenia, 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. — Przy używaniu filtru folderów wieloznacznych ścieżka główna partycji to podścieżka 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. |
| maksLiczbaJednoczesnychPołączeń | Górny limit połączeń współbieżnych nawiązanych z magazynem danych podczas wykonywania działania. Określ wartość tylko wtedy, gdy chcesz ograniczyć połączenia współbieżne. | Nie. |
| disableChunking (wyłączanie fragmentowania) | Podczas kopiowania danych z protokołu FTP 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 FTP obsługuje pobieranie długości pliku, czy też próby odczytu z określonego przesunięcia. Dozwolone wartości to false (wartość domyślna), true. |
Nie. |
Przykład:
"activities":[
{
"name": "CopyFromFTP",
"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": "FtpReadSettings",
"recursive": true,
"wildcardFolderPath": "myfolder*A",
"wildcardFileName": "*.csv",
"disableChunking": false
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
Przykłady filtrów folderów i plików
W tej sekcji opisano wynikowe zachowanie ścieżki folderu i nazwy pliku z filtrami wieloznacznymi.
| 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 Subfolder1 File3.csv File4.json File5.csv DrugiFolderB File6.csv |
Folder* |
(puste, użyj wartości domyślnej) | prawda | FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv DrugiFolderB File6.csv |
Folder* |
*.csv |
fałsz | FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv DrugiFolderB File6.csv |
Folder* |
*.csv |
prawda | FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv DrugiFolderB File6.csv |
Przykłady listy plików
W tej sekcji opisano wynikowe zachowanie używania ścieżki listy plików w źródle działania kopiowania.
Zakładając, że masz następującą strukturę folderów źródłowych i chcesz skopiować pliki pogrubione:
| Przykładowa struktura źródła | Zawartość pliku FileListToCopy.txt | Konfigurowanie |
|---|---|---|
| korzeń FolderA File1.csv File2.json Subfolder1 File3.csv File4.json File5.csv Metadane FileListToCopy.txt |
File1.csv Podfolder1/Plik3.csv Podfolder1/File5.csv |
W zestawie danych: - Ścieżka folderu: root/FolderAW źródle procesu kopiowania: - Ś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 działania wyszukiwania
Aby dowiedzieć się więcej o właściwościach, sprawdź akcję Wyszukiwania.
Właściwości działania GetMetadata
Aby dowiedzieć się więcej o właściwościach, sprawdź działanie GetMetadata
Usuń właściwości działania
Aby dowiedzieć się więcej o właściwościach, zobacz Działanie Usuwania
Starsze modele
Uwaga
Następujące modele są nadal obsługiwane dla zachowania zgodności wstecznej. Proponuje się użycie nowego modelu wymienionego w powyższych sekcjach, a interfejs tworzenia przeszedł do generowania nowego modelu.
Model dziedzictwa zestawu danych
| Własność | Opis | Wymagane |
|---|---|---|
| typ | 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 ^ , aby uniknąć, jeśli rzeczywista nazwa folderu 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 |
| nazwaPliku |
Nazwa lub filtr wieloznaczny dla plików znajdujących się w określonej ścieżce "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: * (pasuje do zera lub większej liczby znaków) i ? (pasuje do zera lub pojedynczego znaku).- Przykład 1: "fileName": "*.csv"— Przykład 2: "fileName": "???20180427.txt"Użyj ^ polecenia , aby uniknąć, jeśli rzeczywista nazwa pliku ma symbol wieloznaczny lub znak ucieczki wewnątrz. |
Nie. |
| format | Jeśli chcesz skopiować pliki w oryginale między magazynami opartymi na plikach (kopiowanie binarne), pomiń sekcję formatu zarówno w definicjach zestawu danych wejściowych, jak i wyjściowych. Jeśli chcesz przeanalizować pliki w określonym formacie, obsługiwane są następujące typy formatów plików: TextFormat, JsonFormat, AvroFormat, OrcFormat, 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, Avro Format, Orc Format 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 to: Optymalne i najszybsze. |
Nie. |
| useBinaryTransfer | Określ, czy ma być używany tryb transferu binarnego. Wartości są prawdziwe dla trybu binarnego (wartość domyślna) i false dla ASCII. | Nie. |
Napiwek
Aby skopiować wszystkie pliki w folderze, określ tylko folderPath .
Aby skopiować pojedynczy plik o podanej 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ą ścieżki folderu i fileName z filtrem wieloznacznym.
Uwaga
Jeśli używasz właściwości "fileFilter" dla filtru plików, jest ona nadal obsługiwana w niezmienionej postaci, podczas gdy zaleca się użycie nowej funkcji filtrowania dodanej do ciągu "fileName".
Przykład:
{
"name": "FTPDataset",
"properties": {
"type": "FileShare",
"linkedServiceName":{
"referenceName": "<FTP linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"folderPath": "folder/subfolder/",
"fileName": "myfile.csv.gz",
"format": {
"type": "TextFormat",
"columnDelimiter": ",",
"rowDelimiter": "\n"
},
"compression": {
"type": "GZip",
"level": "Optimal"
}
}
}
}
Starszy model źródłowy operacji kopiowania
| Własność | Opis | Wymagane |
|---|---|---|
| typ | Właściwość type źródła działania kopiowania musi być ustawiona na: FileSystemSource | Tak |
| Rekurencyjny | Wskazuje, czy dane są odczytywane rekursywnie z podfolderów, czy tylko z określonego folderu. Uwaga: Gdy ustawienie rekursywne jest na true i lokalizacja docelowa jest magazynem opartym na plikach, pusty folder lub podfolder nie zostanie skopiowany ani utworzony w lokalizacji docelowej. Dozwolone wartości to: true (wartość domyślna), false |
Nie. |
| maksLiczbaJednoczesnychPołączeń | Górny limit połączeń współbieżnych nawiązanych 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": "CopyFromFTP",
"type": "Copy",
"inputs": [
{
"referenceName": "<FTP 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 działania kopiowania, zobacz obsługiwane magazyny danych.