Dela via


Kopiera data till eller från Azure Data Lake Storage Gen1 med Azure Data Factory eller Azure Synapse Analytics

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!

Den här artikeln beskriver hur du kopierar data till och från Azure Data Lake Storage Gen1. Mer information finns i introduktionsartikeln för Azure Data Factory eller Azure Synapse Analytics.

Kommentar

Azure Data Lake Storage Gen1 drogs tillbaka den 29 februari 2024. Migrera till Azure Data Lake Storage Gen2-anslutningsappen. Se den här artikeln för migreringsvägledningen för Azure Data Lake Storage Gen1.

Funktioner som stöds

Den här Azure Data Lake Storage Gen1-anslutningsappen stöds för följande funktioner:

Funktioner som stöds IR
Kopieringsaktivitet (källa/mottagare) (1) (2)
Mappa dataflöde (källa/mottagare) (1)
Sökningsaktivitet (1) (2)
GetMetadata-aktivitet (1) (2)
Ta bort aktivitet (1) (2)

(1) Azure Integration Runtime (2) Lokalt installerad integrationskörning

Mer specifikt kan du med den här anslutningsappen:

  • Kopiera filer med någon av följande autentiseringsmetoder: tjänstens huvudnamn eller hanterade identiteter för Azure-resurser.
  • Kopiera filer som är eller parsa eller generera filer med de filformat och komprimeringskodc som stöds.
  • Bevara ACL:er när du kopierar till Azure Data Lake Storage Gen2.

Viktigt!

Om du kopierar data med hjälp av den lokalt installerade integrationskörningen konfigurerar du företagets brandvägg för att tillåta utgående trafik till <ADLS account name>.azuredatalakestore.net och login.microsoftonline.com/<tenant>/oauth2/token på port 443. Det senare är Azure Security Token Service som integrationskörningen behöver kommunicera med för att hämta åtkomsttoken.

Kom igång

Dricks

En genomgång av hur du använder Azure Data Lake Store-anslutningsappen finns i Läsa in data i Azure Data Lake Store.

Om du vill utföra kopieringsaktiviteten med en pipeline kan du använda något av följande verktyg eller SDK:er:

Skapa en länkad tjänst till Azure Data Lake Storage Gen1 med hjälp av användargränssnittet

Använd följande steg för att skapa en länkad tjänst till Azure Data Lake Storage Gen1 i azure-portalens användargränssnitt.

  1. Bläddra till fliken Hantera i Din Azure Data Factory- eller Synapse-arbetsyta och välj Länkade tjänster och välj sedan Nytt:

  2. Sök efter Azure Data Lake Storage Gen1 och välj anslutningsappen Azure Data Lake Storage Gen1.

    Skärmbild av Azure Data Lake Storage Gen1-anslutningsappen.

  3. Konfigurera tjänstinformationen, testa anslutningen och skapa den nya länkade tjänsten.

    Skärmbild av konfiguration av länkad tjänst för Azure Data Lake Storage Gen1.

Konfigurationsinformation för anslutningsprogram

Följande avsnitt innehåller information om egenskaper som används för att definiera entiteter som är specifika för Azure Data Lake Store Gen1.

Länkade tjänstegenskaper

Följande egenskaper stöds för den länkade Azure Data Lake Store-tjänsten:

Property Beskrivning Obligatoriskt
type Egenskapen type måste vara inställd på AzureDataLakeStore. Ja
dataLakeStoreUri Information om Azure Data Lake Store-kontot. Den här informationen har något av följande format: https://[accountname].azuredatalakestore.net/webhdfs/v1 eller adl://[accountname].azuredatalakestore.net/. Ja
subscriptionId Det Azure-prenumerations-ID som Data Lake Store-kontot tillhör. Krävs för mottagare
resourceGroupName Namnet på Den Azure-resursgrupp som Data Lake Store-kontot tillhör. Krävs för mottagare
connectVia Den integrationskörning som ska användas för att ansluta till datalagret. Du kan använda Azure Integration Runtime eller en lokalt installerad integrationskörning om ditt datalager finns i ett privat nätverk. Om den här egenskapen inte har angetts används standardkörningen för Azure-integrering. Nej

Använda autentisering med tjänstens huvudnamn

Följ dessa steg om du vill använda autentisering med tjänstens huvudnamn.

  1. Registrera en programentitet i Microsoft Entra-ID och ge den åtkomst till Data Lake Store. Detaljerade steg finns i Tjänst-till-tjänst-autentisering. Anteckna följande värden som du använder för att definiera den länkade tjänsten:

    • Program-ID:t
    • Programnyckel
    • Klientorganisations-ID
  2. Ge tjänstens huvudnamn rätt behörighet. Se exempel på hur behörighet fungerar i Data Lake Storage Gen1 från Åtkomstkontroll i Azure Data Lake Storage Gen1.

    • Som källa: I Datautforskarens>åtkomst beviljar du minst Kör-behörighet för ALLA överordnade mappar, inklusive roten, tillsammans med läsbehörighet för filerna som ska kopieras. Du kan välja att lägga till den här mappen och alla underordnade för rekursiv och lägga till som åtkomstbehörighet och en standardbehörighetspost. Det finns inget krav på åtkomstkontroll på kontonivå (IAM).
    • Som mottagare: I Datautforskarens>åtkomst beviljar du minst Kör-behörighet för ALLA överordnade mappar, inklusive roten, tillsammans med skrivbehörighet för mottagarmappen. Du kan välja att lägga till den här mappen och alla underordnade för rekursiv och lägga till som åtkomstbehörighet och en standardbehörighetspost.

Följande egenskaper stöds:

Property Beskrivning Obligatoriskt
servicePrincipalId Ange programmets klient-ID. Ja
servicePrincipalKey Ange programmets nyckel. Markera det här fältet som en för att lagra det på ett SecureString säkert sätt eller referera till en hemlighet som lagras i Azure Key Vault. Ja
tenant Ange klientinformation, till exempel domännamn eller klientorganisations-ID, under vilket ditt program finns. Du kan hämta den genom att hovra musen i det övre högra hörnet i Azure-portalen. Ja
azureCloudType För autentisering med tjänstens huvudnamn anger du vilken typ av Azure-molnmiljö som ditt Microsoft Entra-program är registrerat i.
Tillåtna värden är AzurePublic, AzureChina, AzureUsGovernment och AzureGermany. Som standard används tjänstens molnmiljö.
Nej

Exempel:

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<service principal key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
            "subscriptionId": "<subscription of ADLS>",
            "resourceGroupName": "<resource group of ADLS>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Använda systemtilldelad hanterad identitetsautentisering

En datafabrik eller Synapse-arbetsyta kan associeras med en systemtilldelad hanterad identitet som representerar tjänsten för autentisering. Du kan direkt använda den här systemtilldelade hanterade identiteten för Data Lake Store-autentisering, ungefär som med ditt eget huvudnamn för tjänsten. Det gör att den här avsedda resursen kan komma åt och kopiera data till eller från Data Lake Store.

Följ dessa steg om du vill använda systemtilldelad hanterad identitetsautentisering.

  1. Hämta systemtilldelad hanterad identitetsinformation genom att kopiera värdet för det "Tjänstidentitetsprogram-ID" som genereras tillsammans med din fabrik eller Synapse-arbetsyta.

  2. Ge den systemtilldelade hanterade identiteten åtkomst till Data Lake Store. Se exempel på hur behörighet fungerar i Data Lake Storage Gen1 från Åtkomstkontroll i Azure Data Lake Storage Gen1.

    • Som källa: I Datautforskarens>åtkomst beviljar du minst Kör-behörighet för ALLA överordnade mappar, inklusive roten, tillsammans med läsbehörighet för filerna som ska kopieras. Du kan välja att lägga till den här mappen och alla underordnade för rekursiv och lägga till som åtkomstbehörighet och en standardbehörighetspost. Det finns inget krav på åtkomstkontroll på kontonivå (IAM).
    • Som mottagare: I Datautforskarens>åtkomst beviljar du minst Kör-behörighet för ALLA överordnade mappar, inklusive roten, tillsammans med skrivbehörighet för mottagarmappen. Du kan välja att lägga till den här mappen och alla underordnade för rekursiv och lägga till som åtkomstbehörighet och en standardbehörighetspost.

Du behöver inte ange några andra egenskaper än den allmänna Data Lake Store-informationen i den länkade tjänsten.

Exempel:

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "subscriptionId": "<subscription of ADLS>",
            "resourceGroupName": "<resource group of ADLS>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Använda användartilldelad hanterad identitetsautentisering

En datafabrik kan tilldelas en eller flera användartilldelade hanterade identiteter. Du kan använda den här användartilldelade hanterade identiteten för Blob Storage-autentisering, vilket gör det möjligt att komma åt och kopiera data från eller till Data Lake Store. Mer information om hanterade identiteter för Azure-resurser finns i Hanterade identiteter för Azure-resurser

Följ dessa steg om du vill använda användartilldelad hanterad identitetsautentisering:

  1. Skapa en eller flera användartilldelade hanterade identiteter och bevilja åtkomst till Azure Data Lake. Se exempel på hur behörighet fungerar i Data Lake Storage Gen1 från Åtkomstkontroll i Azure Data Lake Storage Gen1.

    • Som källa: I Datautforskarens>åtkomst beviljar du minst Kör-behörighet för ALLA överordnade mappar, inklusive roten, tillsammans med läsbehörighet för filerna som ska kopieras. Du kan välja att lägga till den här mappen och alla underordnade för rekursiv och lägga till som åtkomstbehörighet och en standardbehörighetspost. Det finns inget krav på åtkomstkontroll på kontonivå (IAM).
    • Som mottagare: I Datautforskarens>åtkomst beviljar du minst Kör-behörighet för ALLA överordnade mappar, inklusive roten, tillsammans med skrivbehörighet för mottagarmappen. Du kan välja att lägga till den här mappen och alla underordnade för rekursiv och lägga till som åtkomstbehörighet och en standardbehörighetspost.
  2. Tilldela en eller flera användartilldelade hanterade identiteter till din datafabrik och skapa autentiseringsuppgifter för varje användartilldelad hanterad identitet.

Följande egenskap stöds:

Property Beskrivning Obligatoriskt
autentiseringsuppgifter Ange den användartilldelade hanterade identiteten som autentiseringsobjekt. Ja

Exempel:

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "subscriptionId": "<subscription of ADLS>",
            "resourceGroupName": "<resource group of ADLS>",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Egenskaper för datauppsättning

En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera datauppsättningar finns i artikeln Datauppsättningar .

Azure Data Factory stöder följande filformat. Se varje artikel för formatbaserade inställningar.

Följande egenskaper stöds för Azure Data Lake Store Gen1 under location inställningar i den formatbaserade datauppsättningen:

Property Beskrivning Obligatoriskt
type Typegenskapen under location i datamängden måste anges till AzureDataLakeStoreLocation. Ja
folderPath Sökvägen till en mapp. Om du vill använda ett jokertecken för att filtrera mappar hoppar du över den här inställningen och anger den i aktivitetskällans inställningar. Nej
fileName Filnamnet under den angivna folderPath. Om du vill använda ett jokertecken för att filtrera filer hoppar du över den här inställningen och anger den i inställningarna för aktivitetskällan. Nej

Exempel:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<ADLS Gen1 linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AzureDataLakeStoreLocation",
                "folderPath": "root/folder/subfolder"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

Kopiera egenskaper för aktivitet

En fullständig lista över avsnitt och egenskaper som är tillgängliga för att definiera aktiviteter finns i Pipelines. Det här avsnittet innehåller en lista över egenskaper som stöds av Azure Data Lake Store-källa och mottagare.

Azure Data Lake Store som källa

Azure Data Factory stöder följande filformat. Se varje artikel för formatbaserade inställningar.

Följande egenskaper stöds för Azure Data Lake Store Gen1 under storeSettings inställningar i den formatbaserade kopieringskällan:

Property Beskrivning Obligatoriskt
type Typegenskapen under storeSettings måste vara inställd på AzureDataLakeStoreReadSettings. Ja
Leta upp filerna som ska kopieras:
ALTERNATIV 1: statisk sökväg
Kopiera från den angivna mapp-/filsökvägen som anges i datauppsättningen. Om du vill kopiera alla filer från en mapp anger du wildcardFileName dessutom som *.
ALTERNATIV 2: namnintervall
- listAfter
Hämta de mappar/filer vars namn är efter det här värdet alfabetiskt (exklusivt). Det använder filtret på tjänstsidan för ADLS Gen1, vilket ger bättre prestanda än ett jokerteckenfilter.
Tjänsten tillämpar det här filtret på sökvägen som definierats i datauppsättningen och endast en entitetsnivå stöds. Se fler exempel i filterexempel för namnintervall.
Nej
ALTERNATIV 2: namnintervall
- listBefore
Hämta de mappar/filer vars namn ligger före det här värdet alfabetiskt (inklusive). Det använder filtret på tjänstsidan för ADLS Gen1, vilket ger bättre prestanda än ett jokerteckenfilter.
Tjänsten tillämpar det här filtret på sökvägen som definierats i datauppsättningen och endast en entitetsnivå stöds. Se fler exempel i filterexempel för namnintervall.
Nej
ALTERNATIV 3: jokertecken
- jokerteckenFolderPath
Mappsökvägen med jokertecken för att filtrera källmappar.
Tillåtna jokertecken är: * (matchar noll eller fler tecken) och ? (matchar noll eller ett enda tecken); använd ^ för att fly om ditt faktiska mappnamn har jokertecken eller detta escape-tecken inuti.
Se fler exempel i exempel på mapp- och filfilter.
Nej
ALTERNATIV 3: jokertecken
- jokerteckenFileName
Filnamnet med jokertecken under den angivna mappenPath/wildcardFolderPath för att filtrera källfiler.
Tillåtna jokertecken är: * (matchar noll eller fler tecken) och ? (matchar noll eller enstaka tecken); använd ^ för att fly om ditt faktiska filnamn har jokertecken eller detta escape-tecken inuti. Se fler exempel i exempel på mapp- och filfilter.
Ja
ALTERNATIV 4: en lista över filer
– fileListPath
Anger att en angiven filuppsättning ska kopieras. Peka på en textfil som innehåller en lista över filer som du vill kopiera, en fil per rad, vilket är den relativa sökvägen till sökvägen som konfigurerats i datauppsättningen.
Ange inte filnamn i datauppsättningen när du använder det här alternativet. Se fler exempel i fillisteexempel.
Nej
Ytterligare inställningar:
rekursiv Anger om data läse rekursivt från undermapparna eller endast från den angivna mappen. När rekursiv är inställd på true och mottagaren är ett filbaserat arkiv kopieras eller skapas inte en tom mapp eller undermapp i mottagaren.
Tillåtna värden är sanna (standard) och falska.
Den här egenskapen gäller inte när du konfigurerar fileListPath.
Nej
deleteFilesAfterCompletion Anger om de binära filerna kommer att tas bort från källarkivet när de har flyttats till målarkivet. Filborttagningen är per fil, så när kopieringsaktiviteten misslyckas ser du att vissa filer redan har kopierats till målet och tagits bort från källan, medan andra fortfarande finns kvar i källarkivet.
Den här egenskapen är endast giltig i scenariot med kopiering av binära filer. Standardvärdet: false.
Nej
modifiedDatetimeStart Filfilter baserat på attributet: Senast ändrad.
Filerna väljs om deras senaste ändringstid är större än eller lika med modifiedDatetimeStart och mindre än modifiedDatetimeEnd. Tiden tillämpas på UTC-tidszonen i formatet "2018-12-01T05:00:00Z".
Egenskaperna kan vara NULL, vilket innebär att inget filattributfilter tillämpas på datamängden. När modifiedDatetimeStart har datetime-värde men modifiedDatetimeEnd är NULL innebär det att de filer vars senast ändrade attribut är större än eller lika med datetime-värdet har valts. När modifiedDatetimeEnd har datetime-värde men modifiedDatetimeStart är NULL innebär det att de filer vars senast ändrade attribut är mindre än datetime-värdet har valts.
Den här egenskapen gäller inte när du konfigurerar fileListPath.
Nej
modifiedDatetimeEnd Samma som ovan. Nej
enablePartitionDiscovery För filer som är partitionerade anger du om partitionerna ska parsas från filsökvägen och lägga till dem som ytterligare källkolumner.
Tillåtna värden är false (standard) och true.
Nej
partitionRootPath När partitionsidentifiering är aktiverat anger du den absoluta rotsökvägen för att läsa partitionerade mappar som datakolumner.

Om den inte har angetts, som standard,
– När du använder filsökvägen i datauppsättningen eller listan över filer på källan är partitionsrotsökvägen den sökväg som konfigurerats i datauppsättningen.
– När du använder mappfilter för jokertecken är partitionsrotsökvägen undersökvägen före det första jokertecknet.

Anta till exempel att du konfigurerar sökvägen i datauppsättningen som "root/folder/year=2020/month=08/day=27":
– Om du anger partitionsrotsökväg som "root/folder/year=2020" genererar kopieringsaktiviteten ytterligare två kolumner month och day med värdet "08" respektive "27", utöver kolumnerna i filerna.
– Om partitionsrotsökvägen inte har angetts genereras ingen extra kolumn.
Nej
maxConcurrentConnections Den övre gränsen för samtidiga anslutningar som upprättats till datalagret under aktivitetskörningen. Ange endast ett värde när du vill begränsa samtidiga anslutningar. Nej

Exempel:

"activities":[
    {
        "name": "CopyFromADLSGen1",
        "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": "AzureDataLakeStoreReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Azure Data Lake Store som mottagare

Azure Data Factory stöder följande filformat. Se varje artikel för formatbaserade inställningar.

Följande egenskaper stöds för Azure Data Lake Store Gen1 under storeSettings inställningar i den formatbaserade kopieringsmottagaren:

Property Beskrivning Obligatoriskt
type Typegenskapen under storeSettings måste anges till AzureDataLakeStoreWriteSettings. Ja
copyBehavior Definierar kopieringsbeteendet när källan är filer från ett filbaserat datalager.

Tillåtna värden är:
– PreserveHierarchy (standard): Bevarar filhierarkin i målmappen. Källfilens relativa sökväg till källmappen är identisk med målfilens relativa sökväg till målmappen.
– FlattenHierarchy: Alla filer från källmappen finns på den första nivån i målmappen. Målfilerna har automatiskt genererade namn.
– MergeFiles: Sammanfogar alla filer från källmappen till en fil. Om filnamnet anges är det kopplade filnamnet det angivna namnet. Annars är det ett automatiskt genererat filnamn.
Nej
expiryDateTime Anger förfallotiden för de skrivna filerna. Tiden tillämpas på UTC-tiden i formatet "2020-03-01T08:00:00Z". Som standard är det NULL, vilket innebär att de skrivna filerna aldrig har upphört att gälla. Nej
maxConcurrentConnections Den övre gränsen för samtidiga anslutningar som upprättats till datalagret under aktivitetskörningen. Ange endast ett värde när du vill begränsa samtidiga anslutningar. Nej

Exempel:

"activities":[
    {
        "name": "CopyToADLSGen1",
        "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": "AzureDataLakeStoreWriteSettings",
                    "copyBehavior": "PreserveHierarchy"
                }
            }
        }
    }
]

Exempel på namnintervallfilter

I det här avsnittet beskrivs det resulterande beteendet för namnintervallfilter.

Exempel på källstruktur Konfiguration Result
rot
    f
        file.csv
    yxa
        file2.csv
    ax.csv
    b
        file3.csv
    bx.csv
    c
        file4.csv
    cx.csv
I datauppsättning:
– Mappsökväg: root

I kopieringsaktivitetskällan:
- Lista efter: a
- Lista innan: b
Sedan kopieras följande filer:

rot
    yxa
        file2.csv
    ax.csv
    b
        file3.csv

Exempel på mapp- och filfilter

I det här avsnittet beskrivs det resulterande beteendet för mappsökvägen och filnamnet med jokerteckenfilter.

folderPath fileName rekursiv Källmappens struktur och filterresultat (filer i fetstil hämtas)
Folder* (Tom, använd standard) falskt MappA
    File1.csv
    File2.json
    Undermapp1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* (Tom, använd standard) true MappA
    File1.csv
    File2.json
    Undermapp1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* *.csv falskt MappA
    File1.csv
    File2.json
    Undermapp1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv
Folder* *.csv true MappA
    File1.csv
    File2.json
    Undermapp1
        File3.csv
        File4.json
        File5.csv
AnotherFolderB
    File6.csv

Exempel på fillista

I det här avsnittet beskrivs det resulterande beteendet för att använda sökvägen till fillistan i kopieringsaktivitetskällan.

Förutsatt att du har följande källmappstruktur och vill kopiera filerna i fetstil:

Exempel på källstruktur Innehåll i FileListToCopy.txt Konfiguration
rot
    MappA
        File1.csv
        File2.json
        Undermapp1
            File3.csv
            File4.json
            File5.csv
    Metadata
        FileListToCopy.txt
File1.csv
Undermapp1/File3.csv
Undermapp1/File5.csv
I datauppsättning:
– Mappsökväg: root/FolderA

I kopieringsaktivitetskällan:
– Sökväg till fillista: root/Metadata/FileListToCopy.txt

Sökvägen till fillistan pekar på en textfil i samma datalager som innehåller en lista över filer som du vill kopiera, en fil per rad med den relativa sökvägen till sökvägen som konfigurerats i datauppsättningen.

Exempel på hur kopieringsåtgärden fungerar

I det här avsnittet beskrivs det resulterande beteendet för kopieringsåtgärden för olika kombinationer av recursive och copyBehavior värden.

rekursiv copyBehavior Källmappsstruktur Resulterande mål
true preserveHierarchy Mapp1
    Fil1
    Fil 2
    Undermapp1
        Fil 3
        Fil 4
        Fil5
Målmapp1 skapas med samma struktur som källan:

Mapp1
    Fil1
    Fil 2
    Undermapp1
        Fil 3
        Fil 4
        Fil 5.
true flatHierarchy Mapp1
    Fil1
    Fil 2
    Undermapp1
        Fil 3
        Fil 4
        Fil5
Målmapp1 skapas med följande struktur:

Mapp1
    autogenererat namn för File1
    autogenererat namn för File2
    autogenererat namn för File3
    autogenererat namn för File4
    autogenererat namn för File5
true mergeFiles Mapp1
    Fil1
    Fil 2
    Undermapp1
        Fil 3
        Fil 4
        Fil5
Målmapp1 skapas med följande struktur:

Mapp1
    File1 + File2 + File3 + File4 + File5-innehåll sammanfogas till en fil med ett automatiskt genererat filnamn.
falskt preserveHierarchy Mapp1
    Fil1
    Fil 2
    Undermapp1
        Fil 3
        Fil 4
        Fil5
Målmapp1 skapas med följande struktur:

Mapp1
    Fil1
    Fil 2

Undermapp1 med File3, File4 och File5 hämtas inte.
falskt flatHierarchy Mapp1
    Fil1
    Fil 2
    Undermapp1
        Fil 3
        Fil 4
        Fil5
Målmapp1 skapas med följande struktur:

Mapp1
    autogenererat namn för File1
    autogenererat namn för File2

Undermapp1 med File3, File4 och File5 hämtas inte.
falskt mergeFiles Mapp1
    Fil1
    Fil 2
    Undermapp1
        Fil 3
        Fil 4
        Fil5
Målmapp1 skapas med följande struktur:

Mapp1
    Fil1 + Fil2-innehåll sammanfogas i en fil med automatiskt genererat filnamn. autogenererat namn för File1

Undermapp1 med File3, File4 och File5 hämtas inte.

Bevara ACL:er till Data Lake Storage Gen2

Dricks

Information om hur du kopierar data från Azure Data Lake Storage Gen1 till Gen2 i allmänhet finns i Kopiera data från Azure Data Lake Storage Gen1 till Gen2 för en genomgång och metodtips.

Om du vill replikera åtkomstkontrollistor (ACL) tillsammans med datafiler när du uppgraderar från Data Lake Storage Gen1 till Data Lake Storage Gen2 kan du läsa Bevara ACL:er från Data Lake Storage Gen1.

Mappa dataflödesegenskaper

När du transformerar data i mappning av dataflöden kan du läsa och skriva filer från Azure Data Lake Storage Gen1 i följande format:

Formatspecifika inställningar finns i dokumentationen för det formatet. Mer information finns i Källtransformering i mappning av dataflöde och Sink-transformering i mappning av dataflöde.

Källtransformering

I källtransformeringen kan du läsa från en container, mapp eller en enskild fil i Azure Data Lake Storage Gen1. På fliken Källalternativ kan du hantera hur filerna läse sig.

Skärmbild av fliken källalternativ i mappning av dataflödeskällans transformering.

Sökväg med jokertecken: Om du använder ett jokerteckensmönster instrueras tjänsten att loopa igenom varje matchande mapp och fil i en enda källtransformering. Det här är ett effektivt sätt att bearbeta flera filer i ett enda flöde. Lägg till flera matchande mönster med jokertecken med +-tecknet som visas när du hovrar över ditt befintliga jokerteckenmönster.

Från källcontainern väljer du en serie filer som matchar ett mönster. Det går bara att ange containern i datauppsättningen. Sökvägen till jokertecknet måste därför även innehålla mappsökvägen från rotmappen.

Jokerteckenexempel:

  • * Representerar alla teckenuppsättningar

  • ** Representerar rekursiv katalogkapsling

  • ? Ersätter ett tecken

  • [] Matchar ett av fler tecken inom hakparenteserna

  • /data/sales/**/*.csv Hämtar alla csv-filer under /data/sales

  • /data/sales/20??/**/ Hämtar alla filer rekursivt inom alla matchande 20xx-mappar

  • /data/sales/*/*/*.csv Hämtar csv-filer två nivåer under /data/försäljning

  • /data/sales/2004/12/[XY]1?.csv Hämtar alla csv-filer från december 2004 från och med X eller Y, följt av 1 och alla enskilda tecken

Partitionsrotsökväg: Om du har partitionerade mappar i filkällan med ett key=value format (till exempel year=2019) kan du tilldela den översta nivån i partitionsmappträdet till ett kolumnnamn i dataflödesdataströmmen.

Ange först ett jokertecken för att inkludera alla sökvägar som är de partitionerade mapparna plus lövfilerna som du vill läsa.

Skärmbild av filinställningarna för partitionskällan i mappningen av dataflödeskällans transformering.

Använd inställningen Partitionsrotsökväg för att definiera vad den översta nivån i mappstrukturen är. När du visar innehållet i dina data via en förhandsversion av data ser du att tjänsten lägger till de lösta partitionerna som finns på var och en av dina mappnivåer.

Partitionsrotsökväg

Lista över filer: Det här är en filuppsättning. Skapa en textfil som innehåller en lista över relativa sökvägsfiler som ska bearbetas. Peka på den här textfilen.

Kolumn för lagring av filnamn: Lagra namnet på källfilen i en kolumn i dina data. Ange ett nytt kolumnnamn här för att lagra filnamnssträngen.

Efter slutförande: Välj att inte göra något med källfilen när dataflödet har körts, ta bort källfilen eller flytta källfilen. Sökvägarna för flytten är relativa.

Om du vill flytta källfiler till en annan plats efter bearbetningen väljer du först "Flytta" för filåtgärd. Ange sedan katalogen "från". Om du inte använder jokertecken för sökvägen är inställningen "från" samma mapp som källmappen.

Om du har en källsökväg med jokertecken ser syntaxen ut så här nedan:

/data/sales/20??/**/*.csv

Du kan ange "från" som

/data/sales

Och "till" som

/backup/priorSales

I det här fallet flyttas alla filer som hämtades under /data/försäljning till /backup/priorSales.

Kommentar

Filåtgärder körs endast när du startar dataflödet från en pipelinekörning (en pipeline-felsökning eller körningskörning) som använder aktiviteten Kör dataflöde i en pipeline. Filåtgärder körs inte i felsökningsläge för dataflöde.

Filtrera efter senast ändrad: Du kan filtrera vilka filer du bearbetar genom att ange ett datumintervall för när de senast ändrades. Alla datumtider finns i UTC.

Aktivera insamling av ändringsdata: Om det är sant får du bara nya eller ändrade filer från den senaste körningen. Den första inläsningen av fullständiga ögonblicksbildsdata kommer alltid att hämtas i den första körningen, följt av att samla in nya eller ändrade filer endast i nästa körningar. Mer information finns i Ändra datainsamling.

Skärmbild som visar Aktivera insamling av ändringsdata.

Egenskaper för mottagare

I mottagartransformeringen kan du skriva till antingen en container eller mapp i Azure Data Lake Storage Gen1. På fliken Inställningar kan du hantera hur filerna skrivs.

alternativ för mottagare

Rensa mappen: Avgör om målmappen rensas innan data skrivs.

Filnamnsalternativ: Avgör hur målfilerna namnges i målmappen. Filnamnsalternativen är:

  • Standard: Tillåt att Spark namnger filer baserat på standardvärden för PART.
  • Mönster: Ange ett mönster som räknar upp utdatafilerna per partition. Lån[n].csv skapar till exempel loans1.csv, loans2.csv och så vidare.
  • Per partition: Ange ett filnamn per partition.
  • Som data i kolumnen: Ange utdatafilen till värdet för en kolumn. Sökvägen är relativ till datamängdscontainern, inte målmappen. Om du har en mappsökväg i datauppsättningen åsidosättas den.
  • Utdata till en enda fil: Kombinera de partitionerade utdatafilerna till en enda namngiven fil. Sökvägen är relativ till datamängdsmappen. Tänk på att kopplingsåtgärden eventuellt kan misslyckas baserat på nodstorleken. Det här alternativet rekommenderas inte för stora datamängder.

Citattecken alla: Avgör om alla värden ska omges av citattecken

Egenskaper för uppslagsaktivitet

Mer information om egenskaperna finns i Sökningsaktivitet.

Egenskaper för GetMetadata-aktivitet

Mer information om egenskaperna finns i GetMetadata-aktivitet

Ta bort aktivitetsegenskaper

Information om egenskaperna finns i Ta bort aktivitet

Äldre modeller

Kommentar

Följande modeller stöds fortfarande som de är för bakåtkompatibilitet. Du rekommenderas att använda den nya modellen som nämns i ovanstående avsnitt framöver, och redigeringsgränssnittet har växlat till att generera den nya modellen.

Äldre datauppsättningsmodell

Property Beskrivning Obligatoriskt
type Datamängdens typegenskap måste anges till AzureDataLakeStoreFile. Ja
folderPath Sökväg till mappen i Data Lake Store. Om den inte anges pekar den på roten.

Jokerteckenfilter stöds. Tillåtna jokertecken är * (matchar noll eller fler tecken) och ? (matchar noll eller enskilt tecken). Använd ^ för att komma undan om det faktiska mappnamnet har ett jokertecken eller ett escape-tecken inuti.

Till exempel: rootfolder/subfolder/. Se fler exempel i exempel på mapp- och filfilter.
Nej
fileName Namn- eller jokerteckenfilter för filerna under den angivna "folderPath". Om du inte anger något värde för den här egenskapen pekar datauppsättningen på alla filer i mappen.

För filter tillåts * jokertecken (matchar noll eller fler tecken) och ? (matchar noll eller enskilt tecken).
- Exempel 1: "fileName": "*.csv"
- Exempel 2: "fileName": "???20180427.txt"
Använd ^ för att fly om det faktiska filnamnet har ett jokertecken eller det här escape-teckenet inuti.

När fileName inte har angetts för en utdatauppsättning och preserveHierarchy inte anges i aktivitetsmottagaren genererar kopieringsaktiviteten automatiskt filnamnet med följande mönster: "Data.[ aktivitetskörnings-ID GUID]. [GUID om FlatHierarchy]. [format om det är konfigurerat]. [komprimering om konfigurerad]", till exempel "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz". Om du kopierar från en tabellkälla med hjälp av ett tabellnamn i stället för en fråga är namnmönstret "[tabellnamn].[ format]. [komprimering om konfigurerad]", till exempel "MyTable.csv".
Nej
modifiedDatetimeStart Filfilter baserat på attributet Senast ändrad. Filerna väljs om deras senaste ändringstid är större än eller lika med modifiedDatetimeStart och mindre än modifiedDatetimeEnd. Tiden tillämpas på UTC-tidszonen i formatet "2018-12-01T05:00:00Z".

Den övergripande prestandan för dataförflyttning påverkas av att aktivera den här inställningen när du vill göra filfilter med stora mängder filer.

Egenskaperna kan vara NULL, vilket innebär att inget filattributfilter tillämpas på datamängden. När modifiedDatetimeStart har ett datetime-värde men modifiedDatetimeEnd är NULL innebär det att de filer vars senast ändrade attribut är större än eller lika med datetime-värdet har valts. När modifiedDatetimeEnd har ett datetime-värde men modifiedDatetimeStart är NULL innebär det att de filer vars senast ändrade attribut är mindre än datetime-värdet har valts.
Nej
modifiedDatetimeEnd Filfilter baserat på attributet Senast ändrad. Filerna väljs om deras senaste ändringstid är större än eller lika med modifiedDatetimeStart och mindre än modifiedDatetimeEnd. Tiden tillämpas på UTC-tidszonen i formatet "2018-12-01T05:00:00Z".

Den övergripande prestandan för dataförflyttning påverkas av att aktivera den här inställningen när du vill göra filfilter med stora mängder filer.

Egenskaperna kan vara NULL, vilket innebär att inget filattributfilter tillämpas på datamängden. När modifiedDatetimeStart har ett datetime-värde men modifiedDatetimeEnd är NULL innebär det att de filer vars senast ändrade attribut är större än eller lika med datetime-värdet har valts. När modifiedDatetimeEnd har ett datetime-värde men modifiedDatetimeStart är NULL innebär det att de filer vars senast ändrade attribut är mindre än datetime-värdet har valts.
Nej
format Om du vill kopiera filer som de är mellan filbaserade lager (binär kopia) hoppar du över formatavsnittet i både indata- och utdatauppsättningsdefinitioner.

Om du vill parsa eller generera filer med ett visst format stöds följande filformattyper: TextFormat, JsonFormat, AvroFormat, OrcFormat och ParquetFormat. Ange typegenskapen under format till ett av dessa värden. Mer information finns i avsnitten Textformat, JSON-format, Avro-format, Orc-format och Parquet-format .
Nej (endast för scenario med binär kopiering)
komprimering Ange typ och komprimeringsnivå för data. Mer information finns i Filformat som stöds och komprimeringskodex.
Typer som stöds är GZip, Deflate, BZip2 och ZipDeflate.
Nivåerna som stöds är optimala och snabbaste.
Nej

Dricks

Om du vill kopiera alla filer under en mapp anger du endast folderPath .
Om du vill kopiera en enskild fil med ett visst namn anger du folderPath med en mappdel och fileName med ett filnamn.
Om du vill kopiera en delmängd av filer under en mapp anger du folderPath med en mappdel och fileName med ett jokerteckenfilter.

Exempel:

{
    "name": "ADLSDataset",
    "properties": {
        "type": "AzureDataLakeStoreFile",
        "linkedServiceName":{
            "referenceName": "<ADLS linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "folderPath": "datalake/myfolder/",
            "fileName": "*",
            "modifiedDatetimeStart": "2018-12-01T05:00:00Z",
            "modifiedDatetimeEnd": "2018-12-01T06:00:00Z",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": ",",
                "rowDelimiter": "\n"
            },
            "compression": {
                "type": "GZip",
                "level": "Optimal"
            }
        }
    }
}

Källmodell för äldre kopieringsaktivitet

Property Beskrivning Obligatoriskt
type Egenskapen type för kopieringsaktivitetskällan måste anges till AzureDataLakeStoreSource. Ja
rekursiv Anger om data läse rekursivt från undermapparna eller endast från den angivna mappen. När recursive är inställt på sant och mottagaren är ett filbaserat arkiv kopieras inte en tom mapp eller undermapp i mottagaren. Tillåtna värden är sanna (standard) och falska. Nej
maxConcurrentConnections Den övre gränsen för samtidiga anslutningar som upprättats till datalagret under aktivitetskörningen. Ange endast ett värde när du vill begränsa samtidiga anslutningar. Nej

Exempel:

"activities":[
    {
        "name": "CopyFromADLSGen1",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<ADLS Gen1 input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AzureDataLakeStoreSource",
                "recursive": true
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Modell för äldre kopieringsaktivitetsmottagare

Property Beskrivning Obligatoriskt
type Egenskapen type för kopieringsaktivitetsmottagaren måste anges till AzureDataLakeStoreSink. Ja
copyBehavior Definierar kopieringsbeteendet när källan är filer från ett filbaserat datalager.

Tillåtna värden är:
– PreserveHierarchy (standard): Bevarar filhierarkin i målmappen. Källfilens relativa sökväg till källmappen är identisk med målfilens relativa sökväg till målmappen.
– FlattenHierarchy: Alla filer från källmappen finns på den första nivån i målmappen. Målfilerna har automatiskt genererade namn.
– MergeFiles: Sammanfogar alla filer från källmappen till en fil. Om filnamnet anges är det kopplade filnamnet det angivna namnet. Annars genereras filnamnet automatiskt.
Nej
maxConcurrentConnections Den övre gränsen för samtidiga anslutningar som upprättats till datalagret under aktivitetskörningen. Ange endast ett värde när du vill begränsa samtidiga anslutningar. Nej

Exempel:

"activities":[
    {
        "name": "CopyToADLSGen1",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<ADLS Gen1 output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzureDataLakeStoreSink",
                "copyBehavior": "PreserveHierarchy"
            }
        }
    }
]

Ändra datainsamling (förhandsversion)

Azure Data Factory kan bara hämta nya eller ändrade filer från Azure Data Lake Storage Gen1 genom att aktivera Aktivera ändringsdatainsamling (förhandsversion) i omvandlingen av dataflödets mappningsdataflöde. Med det här anslutningsalternativet kan du bara läsa nya eller uppdaterade filer och tillämpa transformeringar innan du läser in omvandlade data till valfria måldatauppsättningar.

Kontrollera att pipelinen och aktivitetsnamnet är oförändrade, så att kontrollpunkten alltid kan registreras från den senaste körningen för att hämta ändringar därifrån. Om du ändrar pipelinens namn eller aktivitetsnamn återställs kontrollpunkten och du börjar från början i nästa körning.

När du felsöker pipelinen fungerar även Aktivera insamling av ändringsdata (förhandsversion ). Kontrollpunkten återställs när du uppdaterar webbläsaren under felsökningskörningen. När du är nöjd med resultatet från felsökningskörningen kan du publicera och utlösa pipelinen. Den startar alltid från början oavsett den tidigare kontrollpunkten som registrerats av felsökningskörningen.

I övervakningsavsnittet har du alltid chansen att köra en pipeline igen. När du gör det hämtas ändringarna alltid från kontrollpunktsposten i den valda pipelinekörningen.

En lista över datalager som stöds som källor och mottagare av kopieringsaktiviteten finns i datalager som stöds.