Kopieren von Daten in oder aus einem Dateisystem mithilfe von Azure Data Factory oder Azure Synapse Analytics
GILT FÜR: Azure Data Factory Azure Synapse Analytics
Tipp
Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!
In diesem Artikel wird beschrieben, wie Sie Daten in ein bzw. aus einem Dateisystem kopieren. Um mehr zu lernen, lesen Sie den Einführungsartikel für Azure Data Factory oder Azure Synapse Analytics.
Unterstützte Funktionen
Für den Dateisystem-Connector werden die folgenden Funktionen unterstützt:
Unterstützte Funktionen | IR |
---|---|
Kopieraktivität (Quelle/Senke) | ① ② |
Lookup-Aktivität | ① ② |
GetMetadata-Aktivität | ① ② |
Delete-Aktivität | ① ② |
① Azure Integration Runtime ② Selbstgehostete Integration Runtime
Der Dateisystemconnector unterstützt insbesondere Folgendes:
- Kopieren von Dateien von bzw. zu einer Netzwerkdateifreigabe. Installieren Sie zur Verwendung einer Linux-Dateifreigabe Samba auf Ihrem Linux-Server.
- Kopieren von Dateien unter Verwendung der Windows-Authentifizierung
- Kopieren von Dateien im jeweiligen Zustand oder Analysieren bzw. Generieren von Dateien mit den unterstützten Dateiformaten und Codecs für die Komprimierung
Voraussetzungen
Wenn sich Ihr Datenspeicher in einem lokalen Netzwerk, in einem virtuellen Azure-Netzwerk oder in einer virtuellen privaten Amazon-Cloud befindet, müssen Sie eine selbstgehostete Integration Runtime konfigurieren, um eine Verbindung herzustellen.
Handelt es sich bei Ihrem Datenspeicher um einen verwalteten Clouddatendienst, können Sie die Azure Integration Runtime verwenden. Ist der Zugriff auf IP-Adressen beschränkt, die in den Firewallregeln genehmigt sind, können Sie Azure Integration Runtime-IPs zur Positivliste hinzufügen.
Sie können auch das Feature managed virtual network integration runtime (Integration Runtime für verwaltete virtuelle Netzwerke) in Azure Data Factory verwenden, um auf das lokale Netzwerk zuzugreifen, ohne eine selbstgehostete Integration Runtime zu installieren und zu konfigurieren.
Weitere Informationen zu den von Data Factory unterstützten Netzwerksicherheitsmechanismen und -optionen finden Sie unter Datenzugriffsstrategien.
Erste Schritte
Sie können eines der folgenden Tools oder SDKs verwenden, um die Kopieraktivität mit einer Pipeline zu verwenden:
- Das Tool „Daten kopieren“
- Azure-Portal
- Das .NET SDK
- Das Python SDK
- Azure PowerShell
- Die REST-API
- Die Azure Resource Manager-Vorlage
Erstellen eines verknüpften Dateisystemdiensts über die Benutzeroberfläche
Gehen Sie wie folgt vor, um einen mit dem Dateisystem verknüpften Dienst in der Azure-Portal-Benutzeroberfläche zu erstellen.
Navigieren Sie in Ihrem Azure Data Factory- oder Synapse-Arbeitsbereich zur Registerkarte „Verwalten“, und wählen Sie „Verknüpfte Dienste“ und anschließend „Neu“ aus:
Suchen Sie nach einer Datei und wählen Sie den File System Connector aus.
Konfigurieren Sie die Dienstdetails, testen Sie die Verbindung, und erstellen Sie den neuen verknüpften Dienst.
Details zur Connector-Konfiguration
Die folgenden Abschnitte enthalten Details zu Eigenschaften, die zur Definition von Data Factory- und Synapse-Pipeline-Entitäten speziell für Dateisysteme verwendet werden.
Eigenschaften des verknüpften Diensts
Folgende Eigenschaften werden für den mit einem Dateisystem verknüpften Dienst unterstützt:
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
type | Die type-Eigenschaft muss auf Folgendes festgelegt werden: FileServer. | Ja |
host | Gibt den Stammpfad des Ordners an, den Sie kopieren möchten. Verwenden Sie für Sonderzeichen in der Zeichenfolge das Escapezeichen „“. Beispiele finden Sie unter Beispieldefinitionen für verknüpfte Dienste und Datasets . | Ja |
userId | Geben Sie die ID des Benutzers an, der auf dem Server zugreifen darf. | Ja |
password | Geben Sie das Kennwort für das Benutzerkonto (userId) an. Markieren Sie dieses Feld als einen „SecureString“, um es sicher zu speichern, oder verweisen Sie auf ein in Azure Key Vault gespeichertes Geheimnis. | Ja |
connectVia | Die Integrationslaufzeit, die zum Herstellen einer Verbindung mit dem Datenspeicher verwendet werden muss. Weitere Informationen finden Sie im Abschnitt Voraussetzungen. Wenn keine Option angegeben ist, wird die standardmäßige Azure Integration Runtime verwendet. | Nein |
Beispieldefinitionen für verknüpfte Dienste und Datasets
Szenario | „host“ in der Definition des verknüpften Diensts | „folderPath“ in der Datasetdefinition |
---|---|---|
Freigegebener Remoteordner: Beispiele: \\Meinserver\Freigabe\* oder \\Meinserver\Freigabe\Ordner\Unterordner\* |
In JSON: \\\\myserver\\share Auf der Benutzeroberfläche: \\myserver\share |
In JSON: .\\ oder folder\\subfolder Auf der Benutzeroberfläche: .\ oder folder\subfolder |
Hinweis
Bei der Erstellung auf der Benutzeroberfläche müssen Sie keinen doppelten Rückwärtsschrägstrich (\\
) wie bei JSON als Escapezeichen eingeben. Geben Sie einen einfachen Rückwärtsschrägstrich an.
Hinweis
Das Kopieren von Dateien vom lokalen Computer wird unter Azure Integration Runtime nicht unterstützt.
Lesen Sie hier die Befehlszeile, um den Zugriff auf den lokalen Computer unter selbstgehostete Integration Runtime zu aktivieren. Es ist standardmäßig deaktiviert.
Beispiel:
{
"name": "FileLinkedService",
"properties": {
"type": "FileServer",
"typeProperties": {
"host": "<host>",
"userId": "<domain>\\<user>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Dataset-Eigenschaften
Eine vollständige Liste mit den Abschnitten und Eigenschaften, die zum Definieren von Datasets zur Verfügung stehen, finden Sie im Artikel zu Datasets.
Azure Data Factory unterstützt die folgenden Dateiformate. Informationen zu formatbasierten Einstellungen finden Sie in den jeweiligen Artikeln.
- Avro-Format
- Binärformat
- Textformat mit Trennzeichen
- Excel-Format
- JSON-Format
- ORC-Format
- Parquet-Format
- XML-Format
Die folgenden Eigenschaften werden für ein Dateisystem unter den location
-Einstellungen im formatbasierten Dataset unterstützt:
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
type | Die „type“-Eigenschaft unter location im Dataset muss auf FileServerLocation festgelegt werden. |
Ja |
folderPath | Der Pfad zum Ordner. Wenn Sie Platzhalter verwenden möchten, um Ordner zu filtern, überspringen Sie diese Einstellung, und geben Sie entsprechende Aktivitätsquelleneinstellungen an. Beachten Sie, dass Sie den Speicherort der Dateifreigabe in Ihrer Windows- oder Linux-Umgebung einrichten müssen, um den Ordner für die Freigabe verfügbar zu machen. | Nein |
fileName | Der Name der Datei unter dem angegebenen „folderPath“. Wenn Sie Platzhalter verwenden möchten, um Ordner zu filtern, überspringen Sie diese Einstellung, und geben Sie entsprechenden Aktivitätsquelleneinstellungen an. | Nein |
Beispiel:
{
"name": "DelimitedTextDataset",
"properties": {
"type": "DelimitedText",
"linkedServiceName": {
"referenceName": "<File system linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, auto retrieved during authoring > ],
"typeProperties": {
"location": {
"type": "FileServerLocation",
"folderPath": "root/folder/subfolder"
},
"columnDelimiter": ",",
"quoteChar": "\"",
"firstRowAsHeader": true,
"compressionCodec": "gzip"
}
}
}
Eigenschaften der Kopieraktivität
Eine vollständige Liste mit den Abschnitten und Eigenschaften zum Definieren von Aktivitäten finden Sie im Artikel Pipelines. Dieser Abschnitt enthält eine Liste der Eigenschaften, die von der Dateisystemquelle und -senke unterstützt werden.
Dateisystem als Quelle
Azure Data Factory unterstützt die folgenden Dateiformate. Informationen zu formatbasierten Einstellungen finden Sie in den jeweiligen Artikeln.
- Avro-Format
- Binärformat
- Textformat mit Trennzeichen
- Excel-Format
- JSON-Format
- ORC-Format
- Parquet-Format
- XML-Format
Die folgenden Eigenschaften werden für ein Dateisystem unter den storeSettings
-Einstellungen der formatbasierten Kopierquelle unterstützt:
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
type | Die „type“-Eigenschaft unter storeSettings muss auf FileServerReadSettings festgelegt werden. |
Ja |
Suchen Sie die zu kopierenden Dateien: | ||
OPTION 1: statischer Pfad |
Kopieren Sie aus dem im Dataset angegebenen Ordner/Dateipfad. Wenn Sie alle Dateien aus einem Ordner kopieren möchten, geben Sie zusätzlich für wildcardFileName den Wert * an. |
|
OPTION 2: serverseitiger Filter – fileFilter |
Der dateiserverseitige native Filter wird verwendet, dessen Leistung im Vergleich zum Platzhalterfilter OPTION 3 besser ist. Verwenden Sie * für eine Übereinstimmung mit null (0) oder mehreren Zeichen und ? für eine Übereinstimmung mit null (0) oder einem einzelnen Zeichen. Weitere Informationen zur Syntax und Hinweise finden Sie unter Hinweise in diesem Abschnitt. |
Nein |
OPTION 3: clientseitiger Filter – wildcardFolderPath |
Der Ordnerpfad mit Platzhalterzeichen, um Quellordner zu filtern. Ein solcher Filter erfolgt innerhalb des Dienstes, der die Ordner/Dateien unter dem angegebenen Pfad auflistet und dann den Platzhalterfilter anwendet. Zulässige Platzhalter sind: * (entspricht null oder mehr Zeichen) und ? (entspricht null oder einem einzelnen Zeichen). Verwenden Sie ^ als Escapezeichen, wenn Ihr tatsächlicher Dateiname einen Platzhalter oder dieses Escapezeichen enthält. Weitere Beispiele finden Sie unter Beispiele für Ordner- und Dateifilter. |
Nein |
OPTION 3: clientseitiger Filter – wildcardFileName |
Der Dateiname mit Platzhalterzeichen unter dem angegebenen „folderPath/wildcardFolderPath“ für das Filtern von Quelldateien. Ein solcher Filter erfolgt innerhalb des Diensts, der die Dateien unter dem angegebenen Pfad aufzählt und dann den Platzhalterfilter anwendet. Zulässige Platzhalter sind: * (entspricht null oder mehr Zeichen) und ? (entspricht null oder einem einzelnen Zeichen). Verwenden Sie ^ als Escapezeichen, wenn Ihr tatsächlicher Dateiname einen Platzhalter oder dieses Escapezeichen enthält.Weitere Beispiele finden Sie unter Beispiele für Ordner- und Dateifilter. |
Ja |
OPTION 3: eine Liste von Dateien – fileListPath |
Gibt an, dass eine bestimmte Dateigruppe kopiert werden soll. Verweisen Sie auf eine Textdatei, die eine Liste der zu kopierenden Dateien enthält, und zwar eine Datei pro Zeile. Dies ist der relative Pfad zu dem im Dataset konfigurierten Pfad. Geben Sie bei Verwendung dieser Option keinen Dateinamen im Dataset an. Weitere Beispiele finden Sie unter Beispiele für Dateilisten. |
Nein |
Zusätzliche Einstellungen: | ||
recursive | Gibt an, ob die Daten rekursiv aus den Unterordnern oder nur aus dem angegebenen Ordner gelesen werden. Wenn „recursive“ auf „true“ festgelegt ist und es sich bei der Senke um einen dateibasierten Speicher handelt, wird ein leerer Ordner oder Unterordner nicht in die Senke kopiert oder dort erstellt. Zulässige Werte sind true (Standard) und false. Diese Eigenschaft gilt nicht, wenn Sie fileListPath konfigurieren. |
Nein |
deleteFilesAfterCompletion | Gibt an, ob die Binärdateien gelöscht werden, nachdem sie erfolgreich aus dem Quellspeicher in den Zielspeicher verschoben wurden. Der Dateilöschvorgang erfolgt pro Datei. Das heißt, wenn der Vorgang fehlschlägt, wurden einige Dateien bereits zum Ziel kopiert und aus der Quelle gelöscht, während andere noch im Quellspeicher verbleiben. Diese Eigenschaft ist nur im Szenario zum Kopieren von Binärdateien gültig. Standardwert: FALSE. |
Nein |
modifiedDatetimeStart | Dateifilterung basierend auf dem Attribut: Letzte Änderung. Die Dateien werden ausgewählt, wenn der Zeitpunkt ihrer letzten Änderung größer als oder gleich modifiedDatetimeStart und kleiner als modifiedDatetimeEnd ist. Die Zeit wird auf die UTC-Zeitzone im Format YYYY-MM-DDTHH:mm:ssZ angewendet. Die Eigenschaften können NULL sein, was bedeutet, dass kein Dateiattributfilter auf das Dataset angewandt wird. Wenn modifiedDatetimeStart den datetime-Wert aufweist, aber modifiedDatetimeEnd NULL ist, bedeutet dies, dass die Dateien ausgewählt werden, deren Attribut für die letzte Änderung größer oder gleich dem datetime-Wert ist. Wenn modifiedDatetimeEnd einen datetime-Wert aufweist, aber modifiedDatetimeStart NULL ist, bedeutet dies, dass die Dateien ausgewählt werden, deren Attribut für die letzte Änderung kleiner als der datetime-Wert ist.Diese Eigenschaft gilt nicht, wenn Sie fileListPath konfigurieren. |
Nein |
modifiedDatetimeEnd | Identisch mit modifiedDateTimeStart | No |
enablePartitionDiscovery | Geben Sie bei partitionierten Dateien an, ob die Partitionen anhand des Dateipfads analysiert und als zusätzliche Quellspalten hinzugefügt werden sollen. Zulässige Werte sind false (Standard) und true. |
Nein |
partitionRootPath | Wenn die Partitionsermittlung aktiviert ist, geben Sie den absoluten Stammpfad an, um partitionierte Ordner als Datenspalten zu lesen. Wenn dieser Wert nicht angegeben ist, gilt standardmäßig Folgendes: - Wenn Sie den Dateipfad im Dataset oder die Liste der Dateien in der Quelle verwenden, ist der Partitionsstammpfad der im Dataset konfigurierte Pfad. – Wenn Sie einen Platzhalterordnerfilter verwenden, ist der Stammpfad der Partition der Unterpfad vor dem ersten Platzhalter. Angenommen, Sie konfigurieren den Pfad im Dataset als „root/folder/year=2020/month=08/day=27“: – Wenn Sie den Stammpfad der Partition als „root/folder/year=2020“ angeben, generiert die Kopieraktivität zusätzlich zu den Spalten in den Dateien zwei weitere Spalten month und day mit den Werten „08“ bzw. „27“.– Wenn kein Stammpfad für die Partition angegeben ist, wird keine zusätzliche Spalte generiert. |
Nein |
maxConcurrentConnections | Die Obergrenze gleichzeitiger Verbindungen mit dem Datenspeicher während der Aktivitätsausführung. Geben Sie diesen Wert nur an, wenn Sie die Anzahl der gleichzeitigen Verbindungen begrenzen möchten. | Nein |
Beispiel:
"activities":[
{
"name": "CopyFromFileSystem",
"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": "FileServerReadSettings",
"recursive": true,
"wildcardFolderPath": "myfolder*A",
"wildcardFileName": "*.csv"
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
Dateisystem als Senke
Azure Data Factory unterstützt die folgenden Dateiformate. Informationen zu formatbasierten Einstellungen finden Sie in den jeweiligen Artikeln.
Hinweis
Die Option MergeFilescopyBehavior ist nur in Azure Data Factory-Pipelines und nicht in Synapse Analytics-Pipelines verfügbar.
Die folgenden Eigenschaften werden für ein Dateisystem unter den storeSettings
-Einstellungen der formatbasierten Kopiersenke unterstützt:
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
type | Die „type“-Eigenschaft unter storeSettings muss auf FileServerWriteSettings festgelegt werden. |
Ja |
copyBehavior | Definiert das Kopierverhalten, wenn es sich bei der Quelle um Dateien aus einem dateibasierten Datenspeicher handelt. Zulässige Werte sind: - PreserveHierarchy (Standard): Behält die Dateihierarchie im Zielordner bei. Der relative Pfad der Quelldatei zum Quellordner entspricht dem relativen Pfad der Zieldatei zum Zielordner. - FlattenHierarchy: Alle Dateien aus dem Quellordner befinden sich auf der ersten Ebene des Zielordners. Die Namen für die Zieldateien werden automatisch generiert. - MergeFiles: Alle Dateien aus dem Quellordner werden in einer Datei zusammengeführt. Wenn der Dateiname angegeben wurde, entspricht der zusammengeführte Dateiname dem angegebenen Namen. Andernfalls wird der Dateiname automatisch generiert. |
Nein |
maxConcurrentConnections | Die Obergrenze gleichzeitiger Verbindungen mit dem Datenspeicher während der Aktivitätsausführung. Geben Sie diesen Wert nur an, wenn Sie die Anzahl der gleichzeitigen Verbindungen begrenzen möchten. | Nein |
Beispiel:
"activities":[
{
"name": "CopyToFileSystem",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Parquet output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "ParquetSink",
"storeSettings":{
"type": "FileServerWriteSettings",
"copyBehavior": "PreserveHierarchy"
}
}
}
}
]
Beispiele für Ordner- und Dateifilter
Dieser Abschnitt beschreibt das sich ergebende Verhalten für den Ordnerpfad und den Dateinamen mit Platzhalterfiltern.
folderPath | fileName | recursive | Quellordnerstruktur und Filterergebnis (Dateien mit Fettformatierung werden abgerufen.) |
---|---|---|---|
Folder* |
(empty, use default) | false | FolderA Datei1.csv File2.json Unterordner1 File3.csv File4.json File5.csv AndererOrdnerB Datei6.csv |
Folder* |
(empty, use default) | true | FolderA Datei1.csv File2.json Unterordner1 File3.csv File4.json File5.csv AndererOrdnerB Datei6.csv |
Folder* |
*.csv |
false | FolderA Datei1.csv Datei2.json Unterordner1 File3.csv File4.json File5.csv AndererOrdnerB Datei6.csv |
Folder* |
*.csv |
true | FolderA Datei1.csv Datei2.json Unterordner1 File3.csv File4.json File5.csv AndererOrdnerB Datei6.csv |
Beispiele für Dateilisten
In diesem Abschnitt wird das resultierende Verhalten beschrieben, wenn der Dateilistenpfad in der Quelle der Kopieraktivität verwendet wird.
Angenommen, Sie haben die folgende Quellordnerstruktur und möchten die Dateien kopieren, deren Namen fett formatiert sind:
Beispielquellstruktur | Inhalt in „FileListToCopy.txt“ | Pipeline Konfiguration |
---|---|---|
root FolderA Datei1.csv Datei2.json Unterordner1 File3.csv File4.json File5.csv Metadaten FileListToCopy.txt |
Datei1.csv Unterordner1/Datei3.csv Unterordner1/Datei5.csv |
Im Dataset: – Ordnerpfad: root/FolderA In der Quelle der Kopieraktivität: – Dateilistenpfad: root/Metadata/FileListToCopy.txt Der Dateilistenpfad verweist auf eine Textdatei im selben Datenspeicher. Sie enthält eine Liste der Dateien, die Sie kopieren möchten. Jede Zeile enthält den relativen Pfad zu der Datei, der auf dem im Dataset konfigurierten Stammpfad basiert. |
Beispiele für "recursive" und "copyBehavior"
Dieser Abschnitt beschreibt das resultierende Verhalten des Kopiervorgangs für verschiedene Kombinationen von rekursiven und CopyBehavior-Werten.
recursive | copyBehavior | Struktur des Quellordners | Resultierendes Ziel |
---|---|---|---|
true | preserveHierarchy | Folder1 Datei1 Datei2 Unterordner1 Datei3 Datei4 Datei5 |
Der Zielordner „Ordner1“ wird mit der gleichen Struktur erstellt wie die Quelle: Folder1 Datei1 Datei2 Unterordner1 Datei3 Datei4 Datei5 |
true | flattenHierarchy | Folder1 Datei1 Datei2 Unterordner1 Datei3 Datei4 Datei5 |
Der Zielordner „Ordner1“ wird mit der folgenden Struktur erstellt: Folder1 Automatisch generierter Name für Datei1 Automatisch generierter Name für Datei2 Automatisch generierter Name für Datei3 Automatisch generierter Name für Datei4 Automatisch generierter Name für Datei5 |
true | mergeFiles | Folder1 Datei1 Datei2 Unterordner1 Datei3 Datei4 Datei5 |
Der Zielordner „Ordner1“ wird mit der folgenden Struktur erstellt: Folder1 Inhalte von Datei1 + Datei2 + Datei3 + Datei4 + Datei5 werden in einer Datei mit einem automatisch generierten Namen zusammengeführt. |
false | preserveHierarchy | Folder1 Datei1 Datei2 Unterordner1 Datei3 Datei4 Datei5 |
Der Zielordner „Ordner1“ wird mit der folgenden Struktur erstellt: Folder1 Datei1 Datei2 Unterordner1 mit Datei3, Datei4 und Datei5 wird nicht übernommen. |
false | flattenHierarchy | Folder1 Datei1 Datei2 Unterordner1 Datei3 Datei4 Datei5 |
Der Zielordner „Ordner1“ wird mit der folgenden Struktur erstellt: Folder1 Automatisch generierter Name für Datei1 Automatisch generierter Name für Datei2 Unterordner1 mit Datei3, Datei4 und Datei5 wird nicht übernommen. |
false | mergeFiles | Folder1 Datei1 Datei2 Unterordner1 Datei3 Datei4 Datei5 |
Der Zielordner „Ordner1“ wird mit der folgenden Struktur erstellt: Folder1 Die Inhalte von Datei1 + Datei2 werden in einer Datei mit einem automatisch generierten Dateinamen zusammengeführt. Automatisch generierter Name für Datei1 Unterordner1 mit Datei3, Datei4 und Datei5 wird nicht übernommen. |
Eigenschaften der Lookup-Aktivität
Ausführliche Informationen zu den Eigenschaften finden Sie unter Lookup-Aktivität.
Eigenschaften der GetMetadata-Aktivität
Ausführliche Informationen zu den Eigenschaften finden Sie unter GetMetadata-Aktivität.
Eigenschaften der Delete-Aktivität
Ausführliche Informationen zu den Eigenschaften finden Sie unter Delete-Aktivität.
Legacy-Modelle
Hinweis
Die folgenden Modelle werden aus Gründen der Abwärtskompatibilität weiterhin unverändert unterstützt. Es wird jedoch empfohlen, in Zukunft das in den obigen Abschnitten erwähnte neue Modell zu verwenden, da das neue Modell nun von der Benutzeroberfläche für die Dokumenterstellung generiert wird.
Legacy-Datasetmodell
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
type | Die type-Eigenschaft des Datasets muss auf folgenden Wert festgelegt werden: FileShare | Ja |
folderPath | Pfad zum Ordner. Der Platzhalterfilter wird unterstützt. Zulässige Platzhalter sind: * (entspricht null oder mehr Zeichen) und ? (entspricht null oder einem einzelnen Zeichen). Verwenden Sie ^ als Escapezeichen, wenn Ihr tatsächlicher Dateiname einen Platzhalter oder dieses Escapezeichen enthält. Beispiele: „Stammordner/Unterordner/“. Weitere Beispiele finden Sie unter Beispieldefinitionen für verknüpfte Dienste und Datasets und Beispiele für Ordner- und Dateifilter. |
Nein |
fileName | Name oder Platzhalterfilter für die Dateien unter dem angegebenen Wert für „folderPath“. Wenn Sie für diese Eigenschaft keinen Wert angeben, verweist das Dataset auf alle Dateien im Ordner. Für Filter sind folgende Platzhalter zulässig: * (entspricht null [0] oder mehr Zeichen) und ? (entspricht null [0] oder einem einzelnen Zeichen).- Beispiel 1: "fileName": "*.csv" - Beispiel 2: "fileName": "???20180427.txt" Verwenden Sie ^ als Escapezeichen, wenn der tatsächliche Dateiname einen Platzhalter oder dieses Escapezeichen enthält.Wenn „fileName“ nicht für ein Ausgabedataset und preserveHierarchy nicht in der Aktivitätssenke angegeben sind, generiert die Kopieraktivität den Dateinamen automatisch mit dem folgenden Muster: Data.[GUID der Aktivitätsausführungs-ID].[GUID bei FlattenHierarchy].[ggf. konfiguriertes Format].[ggf. konfigurierte Komprimierung] , z. B. „Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz“. Wenn Sie den Kopiervorgang mit einem Tabellennamen anstelle einer Abfrage durchführen und tabellarische Daten als Quelle verwenden, lautet das Namensmuster „ [Tabellenname].[Format].[ggf. konfigurierte Komprimierung] “. Beispiel: „MyTable.csv“. |
Nein |
modifiedDatetimeStart | Dateifilterung basierend auf dem Attribut: Letzte Änderung. Die Dateien werden ausgewählt, wenn der Zeitpunkt ihrer letzten Änderung größer als oder gleich modifiedDatetimeStart und kleiner als modifiedDatetimeEnd ist. Die Zeit wird auf die UTC-Zeitzone im Format YYYY-MM-DDTHH:mm:ssZ angewendet. Beachten Sie, dass die generelle Leistung der Datenverschiebung beeinträchtigt wird, wenn Sie diese Einstellung aktivieren und eine Dateifilterung für eine große Zahl von Dateien vornehmen möchten. Die Eigenschaften können NULL sein, was bedeutet, dass kein Dateiattributfilter auf das Dataset angewandt wird. Wenn modifiedDatetimeStart den datetime-Wert aufweist, aber modifiedDatetimeEnd NULL ist, bedeutet dies, dass die Dateien ausgewählt werden, deren Attribut für die letzte Änderung größer oder gleich dem datetime-Wert ist. Wenn modifiedDatetimeEnd einen datetime-Wert aufweist, aber modifiedDatetimeStart NULL ist, bedeutet dies, dass die Dateien ausgewählt werden, deren Attribut für die letzte Änderung kleiner als der datetime-Wert ist. |
No |
modifiedDatetimeEnd | Dateifilterung basierend auf dem Attribut: Letzte Änderung. Die Dateien werden ausgewählt, wenn der Zeitpunkt ihrer letzten Änderung größer als oder gleich modifiedDatetimeStart und kleiner als modifiedDatetimeEnd ist. Die Zeit wird auf die UTC-Zeitzone im Format „2018-12-01T05:00:00Z“ angewandt. Beachten Sie, dass die generelle Leistung der Datenverschiebung beeinträchtigt wird, wenn Sie diese Einstellung aktivieren und eine Dateifilterung für eine große Zahl von Dateien vornehmen möchten. Die Eigenschaften können NULL sein, was bedeutet, dass kein Dateiattributfilter auf das Dataset angewandt wird. Wenn modifiedDatetimeStart den datetime-Wert aufweist, aber modifiedDatetimeEnd NULL ist, bedeutet dies, dass die Dateien ausgewählt werden, deren Attribut für die letzte Änderung größer oder gleich dem datetime-Wert ist. Wenn modifiedDatetimeEnd einen datetime-Wert aufweist, aber modifiedDatetimeStart NULL ist, bedeutet dies, dass die Dateien ausgewählt werden, deren Attribut für die letzte Änderung kleiner als der datetime-Wert ist. |
Nein |
format | Wenn Sie Dateien unverändert zwischen dateibasierten Speichern kopieren möchten (binäre Kopie), können Sie den Formatabschnitt bei den Definitionen von Eingabe- und Ausgabedatasets überspringen. Für das Analysieren oder Generieren von Dateien mit einem bestimmten Format werden die folgenden Dateiformattypen unterstützt: TextFormat, JsonFormat, AvroFormat, OrcFormat und ParquetFormat. Sie müssen die type -Eigenschaft unter „format“ auf einen dieser Werte festlegen. Weitere Informationen finden Sie in den Abschnitten Textformat, JSON-Format, Avro-Format, Orc-Format und Parquet-Format. |
Nein (nur für Szenarien mit Binärkopien) |
compression | Geben Sie den Typ und den Grad der Komprimierung für die Daten an. Weitere Informationen finden Sie unter Unterstützte Dateiformate und Codecs für die Komprimierung. Folgende Typen werden unterstützt: GZip, Deflate, BZip2 und ZipDeflate. Folgende Ebenen werden unterstützt: Optimal und Fastest. |
Nein |
Tipp
Wenn Sie alle Dateien eines Ordners kopieren möchten, geben Sie nur folderPath an.
Wenn Sie eine einzelne Datei mit einem bestimmten Namen kopieren möchten, geben Sie folderPath mit dem Ordner und fileName mit dem Dateinamen an.
Wenn Sie eine Teilmenge der Dateien eines Ordners kopieren möchten, geben Sie folderPath mit dem Ordner und fileName mit dem Platzhalterfilter an.
Hinweis
Wenn Sie die Eigenschaft „fileFilter“ für den Dateifilter verwendet haben, wird sie weiterhin unverändert unterstützt. Es wird aber empfohlen, ab sofort die Filterfunktion zu verwenden, die „fileName“ neu hinzugefügt wurde.
Beispiel:
{
"name": "FileSystemDataset",
"properties": {
"type": "FileShare",
"linkedServiceName":{
"referenceName": "<file system 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"
}
}
}
}
Legacy-Kopieraktivität: Quellenmodell
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
type | Die type-Eigenschaft der Quelle der Kopieraktivität muss auf Folgendes festgelegt werden: FileSystemSource | Ja |
recursive | Gibt an, ob die Daten rekursiv aus den Unterordnern oder nur aus dem angegebenen Ordner gelesen werden. Beachten Sie Folgendes: Wenn „recursive“ auf TRUE festgelegt und die Senke ein dateibasierter Speicher ist, wird ein leerer Ordner/Unterordner nicht in die Senke kopiert bzw. nicht in ihr erstellt. Zulässige Werte sind true (Standard) oder false. |
Nein |
maxConcurrentConnections | Die Obergrenze gleichzeitiger Verbindungen mit dem Datenspeicher während der Aktivitätsausführung. Geben Sie diesen Wert nur an, wenn Sie die Anzahl der gleichzeitigen Verbindungen begrenzen möchten. | Nein |
Beispiel:
"activities":[
{
"name": "CopyFromFileSystem",
"type": "Copy",
"inputs": [
{
"referenceName": "<file system input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "FileSystemSource",
"recursive": true
},
"sink": {
"type": "<sink type>"
}
}
}
]
Legacy-Kopieraktivität – Senkenmodell
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
type | Die type-Eigenschaft der Senke der Kopieraktivität muss auf Folgendes festgelegt sein: FileSystemSink | Ja |
copyBehavior | Definiert das Kopierverhalten, wenn es sich bei der Quelle um Dateien aus einem dateibasierten Datenspeicher handelt. Zulässige Werte sind: - PreserveHierarchy (Standard): Die Dateihierarchie wird im Zielordner beibehalten. Der relative Pfad der Quelldatei zum Quellordner entspricht dem relativen Pfad der Zieldatei zum Zielordner. - FlattenHierarchy: Alle Dateien aus dem Quellordner befinden sich in der ersten Ebene des Zielordners. Die Zieldateinamen werden automatisch generiert. - MergeFiles: Alle Dateien aus dem Quellordner werden in einer Datei zusammengeführt. Bei der Zusammenführung wird keine Datensatzdeduplizierung durchgeführt. Wenn der Dateiname angegeben wurde, entspricht der zusammengeführte Name dem angegebenen Namen. Andernfalls wird ein automatisch generierter Dateiname verwendet. |
Nein |
maxConcurrentConnections | Die Obergrenze gleichzeitiger Verbindungen mit dem Datenspeicher während der Aktivitätsausführung. Geben Sie diesen Wert nur an, wenn Sie die Anzahl der gleichzeitigen Verbindungen begrenzen möchten. | Nein |
Beispiel:
"activities":[
{
"name": "CopyToFileSystem",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<file system output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "FileSystemSink",
"copyBehavior": "PreserveHierarchy"
}
}
}
]
Zugehöriger Inhalt
Eine Liste der Datenspeicher, die als Quelles und Senken für die Kopieraktivität unterstützt werden, finden Sie in der Dokumentation für Unterstützte Datenspeicher.