Kopieren von Daten aus oder in Azure Files mithilfe von Azure Data Factory

Gilt für: Azure Data Factory Azure Synapse Analytics

Tipp

Data Factory in Microsoft Fabric ist die nächste Generation von Azure Data Factory mit einer einfacheren Architektur, integrierter KI und neuen Features. Wenn Sie mit der Datenintegration noch nicht vertraut sind, beginnen Sie mit Fabric Data Factory. Vorhandene ADF-Workloads können auf Fabric aktualisiert werden, um auf neue Funktionen in der Datenwissenschaft, Echtzeitanalysen und Berichterstellung zuzugreifen.

In diesem Artikel wird beschrieben, wie Daten in und aus Azure Files kopiert werden. Weitere Informationen zu Azure Data Factory finden Sie im Artikel introductory.

Unterstützte Funktionen

Dieser Azure Files Connector wird für die folgenden Funktionen unterstützt:

Unterstützte Funktionen Infrarot Verwalteter privater Endpunkt
Copy-Aktivität (Quelle/Senke) (1) (2) ✓ Speicherkonto V1 ausschließen
Lookup-Aktivität (1) (2) ✓ Speicherkonto V1 ausschließen
GetMetadata-Aktivität (1) (2) ✓ Speicherkonto V1 ausschließen
Aktivität löschen (1) (2) ✓ Speicherkonto V1 ausschließen

(1) Azure Integrationslaufzeit (2) Selbst gehostete Integrationslaufzeit

Sie können Daten aus Azure Files in jeden unterstützten Senkendatenspeicher kopieren oder Daten aus jedem unterstützten Quelldatenspeicher in Azure Files kopieren. Eine Liste der Datenspeicher, die die Kopieraktivität als Quellen und Senken unterstützt, finden Sie unter Unterstützte Datenspeicher und Formate.

Insbesondere unterstützt dieser Azure Files Connector Folgendes:

Erste Schritte

Zum Ausführen der Kopieraktivität mit einer Pipeline können Sie eines der folgenden Tools oder SDKs verwenden:

Erstellen eines verknüpften Diensts zum Azure Files mithilfe der Benutzeroberfläche

Führen Sie die folgenden Schritte aus, um in der Benutzeroberfläche des Azure-Portals einen verknüpften Dienst zu Azure Files zu erstellen.

  1. Navigieren Sie in Ihrem Azure Data Factory- oder Synapse-Arbeitsbereich zur Registerkarte "Verwalten", und wählen Sie "Verknüpfte Dienste" aus, und klicken Sie dann auf "Neu":

  2. Suchen Sie nach Datei, und wählen Sie den Connector für Azure Files mit der Bezeichnung Azure Dateispeicher aus.

    Screenshot des Azure File Storage-Connectors.

  3. Konfigurieren Sie die Dienstdetails, testen Sie die Verbindung, und erstellen Sie den neuen verknüpften Dienst.

    Screenshot der Konfiguration des verknüpften Diensts für einen Azure-Dateispeicher.

Details zur Connector-Konfiguration

In den folgenden Abschnitten werden Details zu Eigenschaften bereitgestellt, die zum Definieren von Entitäten verwendet werden, die für Azure Files spezifisch sind.

Eigenschaften des verknüpften Diensts

Der Azure Files Connector unterstützt die folgenden Authentifizierungstypen. Weitere Informationen finden Sie in den entsprechenden Abschnitten.

Hinweis

Sie können den verknüpften Azure Files-Dienst mit einem Legacymodell verwenden, in dem auf der Benutzeroberfläche zum Erstellen einer ADF die „Standardauthentifizierung“ angezeigt wird. Dies wird unverändert unterstützt, es wird jedoch empfohlen, in Zukunft das neue Modell zu verwenden. Das Legacymodell überträgt Daten an den bzw. aus dem Speicher über SMB (Server Message Block), während das neue Modell das Speicher-SDK verwendet, das einen besseren Durchsatz aufweist. Um ein Upgrade durchzuführen, können Sie den verknüpften Dienst bearbeiten und die Authentifizierungsmethode in „Kontoschlüssel“ oder „SAS-URI“ ändern. Für das Dataset und die Kopieraktivität sind keine Änderungen erforderlich.

Kontoschlüsselauthentifizierung

Data Factory unterstützt die folgenden Eigenschaften für Azure Files Kontoschlüsselauthentifizierung:

Eigenschaft Beschreibung Erforderlich
Typ Die type-Eigenschaft muss auf Folgendes festgelegt werden: AzureFileStorage. Ja
connectionString Geben Sie die informationen an, die zum Herstellen einer Verbindung mit Azure Files erforderlich sind.
Sie können den Kontoschlüssel auch in Azure Key Vault platzieren und die konfiguration accountKey aus dem connection string herausziehen. Weitere Informationen finden Sie in den folgenden Beispielen und den Store-Anmeldeinformationen im Artikel Azure Key Vault.
Ja
fileShare Geben Sie die Dateifreigabe an. Ja
Momentaufnahme Geben Sie das Datum der Dateifreigabe-Momentaufnahme an, wenn die Kopie von einer Momentaufnahme erstellt werden soll. Nein
connectVia Die Integration Runtime wird verwendet, um eine Verbindung mit dem Datenspeicher herzustellen. Sie können Azure Integration Runtime oder selbst gehostete Integration Runtime verwenden (wenn sich Ihr Datenspeicher im privaten Netzwerk befindet). Wenn nicht angegeben, wird die Standard-Azure Integration Runtime verwendet. Nein

Beispiel:

{
    "name": "AzureFileStorageLinkedService",
    "properties": {
        "type": "AzureFileStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net;",
            "fileShare": "<file share name>"
        },
        "connectVia": {
          "referenceName": "<name of Integration Runtime>",
          "type": "IntegrationRuntimeReference"
        }
    }
}

Example: Speichern sie den Kontoschlüssel in Azure Key Vault

{
    "name": "AzureFileStorageLinkedService",
    "properties": {
        "type": "AzureFileStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;",
            "fileShare": "<file share name>",
            "accountKey": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }            
    }
}

SAS-Authentifizierung (Shared Access Signature)

Shared Access Signatures bieten delegierten Zugriff auf Ressourcen in Ihrem Speicherkonto. Sie können eine Shared Access Signature (SAS) verwenden, um einem Client für einen bestimmten Zeitraum eingeschränkte Berechtigungen für Objekte in Ihrem Speicherkonto zu gewähren. Weitere Informationen zu Shared Access Signatures finden Sie unter Shared Access Signatures (SAS): Verstehen des Shared Access Signature-Modells.

Der Dienst unterstützt die folgenden Eigenschaften für die Verwendung der gemeinsamen Zugriffs-Signatur-Authentifizierung:

Eigenschaft Beschreibung Erforderlich
Typ Die type-Eigenschaft muss auf Folgendes festgelegt werden: AzureFileStorage. Ja
sasUri Geben Sie den SAS-URI zur den Ressourcen an.
Markieren Sie dieses Feld als SecureString, um es sicher zu speichern. Sie können das SAS-Token auch in Azure Key Vault platzieren, um die automatische Drehung zu verwenden und den Tokenteil zu entfernen. Weitere Informationen finden Sie in den folgenden Beispielen und Anmeldeinformationen in Azure Key Vault speichern.
Ja
fileShare Geben Sie die Dateifreigabe an. Ja
Momentaufnahme Geben Sie das Datum der Dateifreigabe-Momentaufnahme an, wenn die Kopie von einer Momentaufnahme erstellt werden soll. Nein
connectVia Die Integration Runtime wird verwendet, um eine Verbindung mit dem Datenspeicher herzustellen. Sie können Azure Integration Runtime oder selbst gehostete Integration Runtime verwenden (wenn sich Ihr Datenspeicher im privaten Netzwerk befindet). Wenn nicht angegeben, wird die Standard-Azure Integration Runtime verwendet. Nein

Beispiel:

{
    "name": "AzureFileStorageLinkedService",
    "properties": {
        "type": "AzureFileStorage",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the resource e.g. https://<accountname>.file.core.windows.net/?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
            },
            "fileShare": "<file share name>",
            "snapshot": "<snapshot version>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Example: Speichern des SAS-Tokens in Azure Key Vault

{
    "name": "AzureFileStorageLinkedService",
    "properties": {
        "type": "AzureFileStorage",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource without token e.g. https://<accountname>.file.core.windows.net/>"
            },
            "sasToken": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName with value of SAS token e.g. ?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>" 
            },
            "fileShare": "<file share name>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Authentifizierung mit einer systemseitig zugewiesenen verwalteten Identität

Eine Data Factory- oder Synapse-Pipeline kann einer system zugewiesenen verwalteten Identität für Azure Ressourcen zugeordnet werden, die diese Ressource für die Authentifizierung für andere Azure Dienste darstellt. Sie können diese vom System zugewiesene verwaltete Identität für Azure Files Authentifizierung verwenden. Weitere Informationen zu verwalteten Identitäten für Azure Ressourcen finden Sie unter Managed-Identitäten für Azure Ressourcen.

Führen Sie die folgenden Schritte aus, um die Authentifizierung mit einer systemseitig zugewiesenen verwalteten Identität zu verwenden:

  1. Rufen Sie die Informationen zur systemseitig zugewiesenen verwalteten Identität ab, indem Sie den Wert der Objekt-ID der systemseitig zugewiesenen verwalteten Identität kopieren, die zusammen mit Ihrer Factory- oder Ihrem Synapse-Arbeitsbereich generiert wurde.

  2. Erteilen Sie die Berechtigung "Verwaltete Identität" in Azure Files. Weitere Informationen zu den Rollen finden Sie in diesem Artikel.

    • Als Quelle, in Zugriffssteuerung (IAM), gewähren Sie mindestens die Rolle Storage File Data Privileged Reader.
    • Als Sink, in Zugriffssteuerung (IAM), gewähren Sie mindestens die Rolle Storage File Data Privileged Contributor.

Diese Eigenschaften werden für einen Azure Files verknüpften Dienst unterstützt:

Eigenschaft Beschreibung Erforderlich
Typ Die type-Eigenschaft muss auf AzureFileStorage festgelegt werden. Ja
serviceEndpoint Geben Sie den Azure Files Dienstendpunkt mit dem Muster https://<accountName>.file.core.windows.net/ an. Ja
fileShare Geben Sie die Dateifreigabe an. Ja
Momentaufnahme Geben Sie das Datum der Dateifreigabe-Momentaufnahme an, wenn die Kopie von einer Momentaufnahme erstellt werden soll. Nein
connectVia Die Integration Runtime wird verwendet, um eine Verbindung mit dem Datenspeicher herzustellen. Sie können Azure Integration Runtime verwenden. Wenn nicht angegeben, wird die Standard-Azure Integration Runtime verwendet. Nein

Hinweis

Die vom System zugewiesene Authentifizierung über verwaltete Identität wird nur von der Azure-Integrationslaufzeit unterstützt.

Beispiel:

{
    "name": "AzureFileStorageLinkedService",
    "properties": {
        "type": "AzureFileStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.file.core.windows.net/",
            "fileShare": "<file share name>",
            "snapshot": "<snapshot version>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Authentifizierung mithilfe einer benutzerdefinierten verwalteten Identität

Eine Data Factory kann mit einer oder mehreren benutzerseitig zugewiesenen verwalteten Identitäten zugewiesen werden. Sie können diese vom Benutzer zugewiesene verwaltete Identität für Azure Files Authentifizierung verwenden, die den Zugriff auf und das Kopieren von Daten von oder Azure Files ermöglicht. Weitere Informationen zu verwalteten Identitäten für Azure Ressourcen finden Sie unter Managed-Identitäten für Azure Ressourcen.

Führen Sie die folgenden Schritte aus, um die Authentifizierung mit einer benutzerseitig zugewiesenen verwalteten Identität zu verwenden:

  1. Erstellen Sie eine oder mehrere benutzerzugewiesene verwaltete Identitäten und gewähren Sie Berechtigungen in Azure Files. Weitere Informationen zu den Rollen finden Sie in diesem Artikel.

    • Als Quelle, in Zugriffssteuerung (IAM), gewähren Sie mindestens die Rolle Storage File Data Privileged Reader.
    • Als Sink, in Zugriffssteuerung (IAM), gewähren Sie mindestens die Rolle Storage File Data Privileged Contributor.
  2. Weisen Sie Ihrer Data Factory eine oder mehrere benutzerseitig zugewiesene verwaltete Identitäten zu, und erstellen Sie Anmeldeinformationen für jede benutzerseitig zugewiesene verwaltete Identität.

Diese Eigenschaften werden für einen Azure Files verknüpften Dienst unterstützt:

Eigenschaft Beschreibung Erforderlich
Typ Die type-Eigenschaft muss auf AzureFileStorage festgelegt werden. Ja
serviceEndpoint Geben Sie den Azure Files Dienstendpunkt mit dem Muster https://<accountName>.file.core.windows.net/ an. Ja
Zugangsdaten Geben Sie die benutzerseitig zugewiesene verwaltete Identität als Anmeldeinformationsobjekt an. Ja
fileShare Geben Sie die Dateifreigabe an. Ja
Momentaufnahme Geben Sie das Datum der Dateifreigabe-Momentaufnahme an, wenn die Kopie von einer Momentaufnahme erstellt werden soll. Nein
connectVia Die Integration Runtime wird verwendet, um eine Verbindung mit dem Datenspeicher herzustellen. Sie können Azure Integration Runtime oder selbst gehostete Integration Runtime verwenden (wenn sich Ihr Datenspeicher im privaten Netzwerk befindet). Wenn nicht angegeben, wird die Standard-Azure Integration Runtime verwendet. Nein

Beispiel:

{
    "name": "AzureFileStorageLinkedService",
    "properties": {
        "type": "AzureFileStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.file.core.windows.net/",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            },
            "fileShare": "<file share name>",
            "snapshot": "<snapshot version>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Legacymodell

Eigenschaft Beschreibung Erforderlich
Typ Die type-Eigenschaft muss auf Folgendes festgelegt werden: AzureFileStorage. Ja
host Gibt den Azure Files Endpunkt an als:
– Unter Verwendung der Benutzeroberfläche: Geben Sie \\<storage name>.file.core.windows.net\<file service name> an.
– Unter Verwendung von JSON: "host": "\\\\<storage name>.file.core.windows.net\\<file service name>".
Ja
userid Geben Sie den Benutzer an, um auf die Azure Files zuzugreifen:
– Unter Verwendung der Benutzeroberfläche: Geben Sie AZURE\<storage name> an.
– Unter Verwendung von JSON: "userid": "AZURE\\<storage name>".
Ja
Passwort Geben Sie den Speicherzugriffsschlüssel an. Markieren Sie dieses Feld als SecureString, um es sicher in Data Factory zu speichern, oder beziehen Sie ein in Azure Key Vault gespeichertes Geheimnis. Ja
connectVia Die Integration Runtime wird verwendet, um eine Verbindung mit dem Datenspeicher herzustellen. Sie können Azure Integration Runtime oder selbst gehostete Integration Runtime verwenden (wenn sich Ihr Datenspeicher im privaten Netzwerk befindet). Wenn nicht angegeben, wird die Standard-Azure Integration Runtime verwendet. Quelle: Nein, Senke: Ja

Beispiel:

{
    "name": "AzureFileStorageLinkedService",
    "properties": {
        "type": "AzureFileStorage",
        "typeProperties": {
            "host": "\\\\<storage name>.file.core.windows.net\\<file service name>",
            "userid": "AZURE\\<storage name>",
            "password": {
                "type": "SecureString",
                "value": "<storage access key>"
            }
        },
        "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.

Die folgenden Eigenschaften werden für Azure Files unter location Einstellungen im formatbasierten Datensatz unterstützt:

Eigenschaft Beschreibung Erforderlich
Typ Die „type“-Eigenschaft unter location im Dataset muss auf AzureFileStorageLocation 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. Nein
Dateiname Der Name der Datei unter dem angegebenen „folderPath“. Wenn Sie Platzhalter verwenden möchten, um Dateien zu filtern, überspringen Sie diese Einstellung und spezifizieren Sie dies in den Einstellungen der Aktivitätsquelle. Nein

Beispiel:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<Azure File Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AzureFileStorageLocation",
                "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 Azure Files Quelle und Sink unterstützt werden.

Azure Files als Quelle

Azure Data Factory unterstützt die folgenden Dateiformate. Informationen zu formatbasierten Einstellungen finden Sie in den jeweiligen Artikeln.

Folgende Eigenschaften werden für Azure-Files unter den storeSettings-Einstellungen in der formatbasierten Kopierquelle unterstützt:

Eigenschaft Beschreibung Erforderlich
Typ Die „type“-Eigenschaft unter storeSettings muss auf AzureFileStorageReadSettings festgelegt werden. Ja
Lokalisieren 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: Dateipräfix
– prefix
Präfix für den Dateinamen in der angegebenen Dateifreigabe, die in einem Dataset zum Filtern von Quelldateien konfiguriert ist. Es werden Dateien ausgewählt, deren Namen mit fileshare_in_linked_service/this_prefix beginnen. Er verwendet den dienstseitigen Filter für Azure Files, der eine bessere Leistung als ein Wildcardfilter bietet. Dieses Feature wird bei Verwendung eines verknüpften Legacydienstmodells nicht unterstützt. Nein
OPTION 3: Jokerzeichen
– wildcardFolderPath
Der Ordnerpfad mit Platzhalterzeichen, um Quellordner zu filtern.
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: Jokerzeichen
– wildcardFileName
Der Dateiname mit Platzhalterzeichen unter dem angegebenen „folderPath/wildcardFolderPath“ für das Filtern von Quelldateien.
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 4: 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.
Wenn Sie diese Option verwenden, dürfen Sie keinen Dateinamen im Dataset angeben. Weitere Beispiele finden Sie unter Beispiele für Dateilisten.
Nein
Zusätzliche Einstellungen:
rekursiv 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
DateienNachAbschlussLöschen Gibt an, ob die Binärdateien nach dem erfolgreichen Verschieben in den Zielspeicher aus dem Quellspeicher gelöscht werden. Die Dateien werden einzeln gelöscht, sodass Sie bei einem Fehler der Kopieraktivität feststellen werden, dass einige Dateien bereits ins Ziel kopiert und aus der Quelle gelöscht wurden, wohingegen sich andere weiter im Quellspeicher befinden.
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 „2018-12-01T05:00:00Z“ angewandt.
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 den 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 Wie oben. Nein
partitionserkennungAktivieren 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.

Falls nicht anders angegeben, gilt standardmäßig:
- 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 die beiden weiteren 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
maximale gleichzeitige Verbindungen Die Maximalanzahl 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": "CopyFromAzureFileStorage",
        "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": "AzureFileStorageReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Azure Files als Senke

Azure Data Factory unterstützt die folgenden Dateiformate. Informationen zu formatbasierten Einstellungen finden Sie in den jeweiligen Artikeln.

Folgende Eigenschaften werden für Azure Files unter den storeSettings-Einstellungen in der formatbasierten Kopiersenke unterstützt:

Eigenschaft Beschreibung Erforderlich
Typ Die „type“-Eigenschaft unter storeSettings muss auf AzureFileStorageWriteSettings festgelegt werden. Ja
Kopieverhalten 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
maximale gleichzeitige Verbindungen Die Maximalanzahl 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": "CopyToAzureFileStorage",
        "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": "AzureFileStorageWriteSettings",
                    "copyBehavior": "PreserveHierarchy"
                }
            }
        }
    }
]

Hinweis

Sie können bis zu 4 MB Daten in die Senke kopieren, wenn Sie eine systemseitig zugewiesene oder eine benutzerseitig zugewiesene verwaltete Identität als Authentifizierungstyp verwenden.

Beispiele für Ordner- und Dateifilter

Dieser Abschnitt beschreibt das sich ergebende Verhalten für den Ordnerpfad und den Dateinamen mit Platzhalterfiltern.

folderPath Dateiname rekursiv Ordnerstruktur der Quelle und Filterergebnis (Dateien in Fett werden abgerufen.)
Folder* (leer, Standardeinstellung verwenden) false FolderA
     Datei1.csv
     File2.json
    Unterverzeichnis1
        File3.csv
        File4.json
        File5.csv
AndererOrdnerB
    Datei6.csv
Folder* (leer, Standardeinstellung verwenden) wahr FolderA
     Datei1.csv
     File2.json
    Unterverzeichnis1
         File3.csv
         File4.json
         File5.csv
AndererOrdnerB
    Datei6.csv
Folder* *.csv false FolderA
     Datei1.csv
    Datei2.json
    Unterverzeichnis1
        File3.csv
        File4.json
        File5.csv
AndererOrdnerB
    Datei6.csv
Folder* *.csv wahr FolderA
     Datei1.csv
    Datei2.json
    Unterverzeichnis1
         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“ Konfiguration
root
    FolderA
         Datei1.csv
        Datei2.json
        Unterverzeichnis1
             File3.csv
            File4.json
             File5.csv
    Metadaten
        DateilisteZumKopieren.txt
Datei1.csv
Unterordner1/Datei3.csv
Unterordner1/Datei5.csv
Im Datensatz:
– Ordnerpfad: root/FolderA

In der Quelle der Kopieraktivitäten:
– Dateilistenpfad: root/Metadata/FileListToCopy.txt

Der Dateilistenpfad verweist auf eine Textdatei im selben Datenspeicher, der eine Liste der zu kopierenden Dateien enthält, und zwar eine Datei pro Zeile. Diese enthält den relativen Pfad zu dem im Dataset konfigurierten Pfad.

Beispiele für "recursive" und "copyBehavior"

Dieser Abschnitt beschreibt das resultierende Verhalten des Kopiervorgangs für verschiedene Kombinationen von rekursiven und CopyBehavior-Werten.

rekursiv Kopieverhalten Struktur des Quellordners Resultierendes Ziel
wahr Hierarchie erhalten Ordner1
    Datei1
    Datei2
    Unterverzeichnis1
        Datei3
        Datei4
        Datei5
Der Zielordner „Ordner1“ wird mit der gleichen Struktur erstellt wie die Quelle:

Ordner1
    Datei1
    Datei2
    Unterverzeichnis1
        Datei3
        Datei4
        Datei5
wahr flattenHierarchy Ordner1
    Datei1
    Datei2
    Unterverzeichnis1
        Datei3
        Datei4
        Datei5
Der Zielordner „Ordner1“ wird mit der folgenden Struktur erstellt:

Ordner1
    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
wahr Dateien zusammenführen Ordner1
    Datei1
    Datei2
    Unterverzeichnis1
        Datei3
        Datei4
        Datei5
Der Zielordner „Ordner1“ wird mit der folgenden Struktur erstellt:

Ordner1
    Inhalte von Datei1 + Datei2 + Datei3 + Datei4 + Datei5 werden in einer Datei mit einem automatisch generierten Namen zusammengeführt.
false Hierarchie erhalten Ordner1
    Datei1
    Datei2
    Unterverzeichnis1
        Datei3
        Datei4
        Datei5
Der Zielordner „Ordner1“ wird mit der folgenden Struktur erstellt:

Ordner1
    Datei1
    Datei2

Unterordner1 mit Datei3, Datei4 und Datei5 wird nicht übernommen.
false flattenHierarchy Ordner1
    Datei1
    Datei2
    Unterverzeichnis1
        Datei3
        Datei4
        Datei5
Der Zielordner „Ordner1“ wird mit der folgenden Struktur erstellt:

Ordner1
    Automatisch generierter Name für Datei1
    Automatisch generierter Name für Datei2

Unterordner1 mit Datei3, Datei4 und Datei5 wird nicht übernommen.
false Dateien zusammenführen Ordner1
    Datei1
    Datei2
    Unterverzeichnis1
        Datei3
        Datei4
        Datei5
Der Zielordner „Ordner1“ wird mit der folgenden Struktur erstellt:

Ordner1
    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.

Aktivitätseigenschaften löschen

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
Typ Die type-Eigenschaft des Datasets muss auf folgenden Wert festgelegt werden: FileShare Ja
folderPath Pfad zum Ordner.

Platzhalterfilter werden 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 Ordnername einen Platzhalter oder dieses Escapezeichen enthält.

Beispiele: Stammordner/Unterordner/. Weitere Beispiele finden Sie unter Beispiele für Ordner- und Dateifilter.
Ja
Dateiname Name oder Platzhalterfilter für die Datei(en) unter dem angegebenen „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 oder mehr Zeichen) und ? (entspricht null oder einem 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“ für ein Ausgabedatensatz nicht angegeben ist und preserveHierarchy in der Aktivitätensenke nicht angegeben ist, generiert die Copy-Aktivität den Dateinamen automatisch mit dem folgenden Muster: „Data.[Aktivitätsausführungs-ID GUID].[GUID bei FlattenHierarchy].[Format, falls konfiguriert].[Komprimierung, falls konfiguriert]“, zum Beispiel „Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz“. Wenn Sie aus einer tabellarischen Quelle kopieren und den Tabellennamen anstelle einer Abfrage verwenden, lautet das Namensmuster „[Tabellenname].[Format].[Komprimierung, falls konfiguriert]“, z. B. „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 „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 den 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
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 den 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 " Parkettformat" .
Nein (nur für Szenarien mit Binärkopien)
Komprimierung 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 Ordnerpfad und fileName mit einem Wildcard-Filter 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": "AzureFileStorageDataset",
    "properties": {
        "type": "FileShare",
        "linkedServiceName":{
            "referenceName": "<Azure File Storage 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
Typ Die type-Eigenschaft der Quelle der Kopieraktivität muss auf Folgendes festgelegt werden: FileSystemSource Ja
rekursiv 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
maximale gleichzeitige Verbindungen Die Maximalanzahl 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": "CopyFromAzureFileStorage",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Azure File Storage 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
Typ Die type-Eigenschaft der Senke der Kopieraktivität muss auf Folgendes festgelegt sein: FileSystemSink Ja
Kopieverhalten 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 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 Name dem angegebenen Namen. Andernfalls wird ein automatisch generierter Dateiname verwendet.
Nein
maximale gleichzeitige Verbindungen Die Maximalanzahl 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": "CopyToAzureFileStorage",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure File Storage output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "FileSystemSink",
                "copyBehavior": "PreserveHierarchy"
            }
        }
    }
]

Eine Liste der Datenspeicher, die als Quellen und Senken für die Kopieraktivität unterstützt werden, finden Sie in unterstützte Datenspeicher.