Kopiera och transformera data i Azure Data Lake Storage Gen2 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!
Azure Data Lake Storage Gen2 (ADLS Gen2) är en uppsättning funktioner som är dedikerade till stordataanalys som är inbyggda i Azure Blob Storage. Med den här lösningen kan du interagera med data med hjälp av både filsystem- och objektlagringsparadigm.
Den här artikeln beskriver hur du använder kopieringsaktivitet för att kopiera data från och till Azure Data Lake Storage Gen2 och använder Dataflöde för att transformera data i Azure Data Lake Storage Gen2. Mer information finns i introduktionsartikeln för Azure Data Factory eller Azure Synapse Analytics.
Dricks
För migreringsscenario för datasjöar eller informationslager kan du läsa mer i Migrera data från din datasjö eller ditt informationslager till Azure.
Funktioner som stöds
Den här Azure Data Lake Storage Gen2-anslutningsappen stöds för följande funktioner:
Funktioner som stöds | IR | Hanterad privat slutpunkt |
---|---|---|
aktiviteten Kopiera (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
För aktiviteten Kopiera kan du med den här anslutningsappen:
- Kopiera data från/till Azure Data Lake Storage Gen2 med hjälp av kontonyckel, tjänstens huvudnamn eller hanterade identiteter för Azure-resursautentiseringar.
- Kopiera filer som de är eller parsa eller generera filer med filformat som stöds och komprimeringskodex.
- Bevara filmetadata under kopiering.
- Bevara ACL:er vid kopiering från Azure Data Lake Storage Gen1/Gen2.
Kom igång
Dricks
En genomgång av hur du använder Data Lake Storage Gen2-anslutningsappen finns i Läsa in data i Azure Data Lake Storage Gen2.
Om du vill utföra aktiviteten Kopiera med en pipeline kan du använda något av följande verktyg eller SDK:er:
- Verktyget Kopiera data
- Azure-portalen
- The .NET SDK
- The Python SDK
- Azure PowerShell
- REST-API:et
- Azure Resource Manager-mallen
Skapa en länkad Azure Data Lake Storage Gen2-tjänst med hjälp av användargränssnittet
Använd följande steg för att skapa en länkad Azure Data Lake Storage Gen2-tjänst i Azure Portal användargränssnittet.
Bläddra till fliken Hantera i Din Azure Data Factory- eller Synapse-arbetsyta och välj Länkade tjänster och klicka sedan på Ny:
Sök efter Azure Data Lake Storage Gen2 och välj anslutningsappen Azure Data Lake Storage Gen2.
Konfigurera tjänstinformationen, testa anslutningen och skapa den nya länkade tjänsten.
Konfigurationsinformation för anslutningsprogram
Följande avsnitt innehåller information om egenskaper som används för att definiera Data Factory- och Synapse-pipelineentiteter som är specifika för Data Lake Storage Gen2.
Länkade tjänstegenskaper
Azure Data Lake Storage Gen2-anslutningsappen stöder följande autentiseringstyper. Mer information finns i motsvarande avsnitt:
- Kontonyckelautentisering
- Signaturautentisering för delad åtkomst
- Autentisering av tjänstens huvudnamn
- Systemtilldelad autentisering av hanterad identitet
- Användartilldelad hanterad identitetsautentisering
Kommentar
- Om du vill använda den offentliga Azure-integreringskörningen för att ansluta till Data Lake Storage Gen2 genom att använda alternativet Tillåt betrodd Microsoft-tjänster att komma åt det här lagringskontot som är aktiverat i Azure Storage-brandväggen, måste du använda hanterad identitetsautentisering. Mer information om inställningarna för Azure Storage-brandväggar finns i Konfigurera Azure Storage-brandväggar och virtuella nätverk.
- Om din källa eller mellanlagring av Data Lake Storage Gen2 har konfigurerats med en Azure Virtual Network-slutpunkt måste du använda hanterad identitetsautentisering som krävs av Azure Synapse när du använder PolyBase- eller COPY-instruktionen för att läsa in data i Azure Synapse Analytics. Se avsnittet hanterad identitetsautentisering med fler konfigurationskrav.
Kontonyckelautentisering
Om du vill använda nyckelautentisering för lagringskonto stöds följande egenskaper:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen måste vara inställd på AzureBlobFS. | Ja |
URL | Slutpunkt för Data Lake Storage Gen2 med mönstret https://<accountname>.dfs.core.windows.net . |
Ja |
accountKey | Kontonyckel för Data Lake Storage Gen2. Markera det här fältet som en SecureString för att lagra det på ett säkert sätt eller referera till en hemlighet som lagras i Azure Key Vault. | Ja |
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 |
Kommentar
Sekundär ADLS-filsystemslutpunkt stöds inte när du använder kontonyckelautentisering. Du kan använda andra autentiseringstyper.
Exempel:
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"url": "https://<accountname>.dfs.core.windows.net",
"accountkey": {
"type": "SecureString",
"value": "<accountkey>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Signaturautentisering för delad åtkomst
En signatur för delad åtkomst ger delegerad åtkomst till resurser i ditt lagringskonto. Du kan använda en signatur för delad åtkomst för att bevilja en klient begränsad behörighet till objekt i ditt lagringskonto under en angiven tid.
Du behöver inte dela dina kontoåtkomstnycklar. Signaturen för delad åtkomst är en URI som i sina frågeparametrar innehåller all information som krävs för autentiserad åtkomst till en lagringsresurs. För att få åtkomst till lagringsresurser med signaturen för delad åtkomst behöver klienten bara skicka in signaturen för delad åtkomst till lämplig konstruktor eller metod.
Mer information om signaturer för delad åtkomst finns i Signaturer för delad åtkomst: Förstå signaturmodellen för delad åtkomst.
Kommentar
- Tjänsten stöder nu både signaturer för delad åtkomst och signaturer för delad åtkomst för konton. Mer information om signaturer för delad åtkomst finns i Bevilja begränsad åtkomst till Azure Storage-resurser med hjälp av signaturer för delad åtkomst.
- I senare konfigurationer av datauppsättningar är mappsökvägen den absoluta sökvägen från containernivån. Du måste konfigurera en som är anpassad till sökvägen i DIN SAS-URI.
Följande egenskaper stöds för användning av signaturautentisering för delad åtkomst:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Egenskapen type måste anges till AzureBlobFS (föreslås) |
Ja |
sasUri | Ange signatur-URI:n för delad åtkomst till lagringsresurserna, till exempel blob eller container. Markera det här fältet så SecureString att det lagras på ett säkert sätt. Du kan också placera SAS-token i Azure Key Vault för att använda automatisk rotation och ta bort tokendelen. Mer information finns i följande exempel och Lagra autentiseringsuppgifter i Azure Key Vault. |
Ja |
connectVia | Den integrationskörning som ska användas för att ansluta till datalagret. Du kan använda Azure Integration Runtime eller integrationskörningen med egen värd (om ditt datalager finns i ett privat nätverk). Om den här egenskapen inte har angetts använder tjänsten standardkörningen för Azure-integrering. | Nej |
Kommentar
Om du använder den AzureStorage
länkade typen av tjänst stöds den fortfarande som den är. Men vi föreslår att du använder den nya AzureDataLakeStorageGen2
länkade tjänsttypen framöver.
Exempel:
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"sasUri": {
"type": "SecureString",
"value": "<SAS URI of the Azure Storage resource e.g. https://<accountname>.blob.core.windows.net/?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exempel: lagra kontonyckeln i Azure Key Vault
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"sasUri": {
"type": "SecureString",
"value": "<SAS URI of the Azure Storage resource without token e.g. https://<accountname>.blob.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>>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
När du skapar en signatur-URI för delad åtkomst bör du tänka på följande:
- Ange lämpliga läs-/skrivbehörigheter för objekt baserat på hur den länkade tjänsten (läsa, skriva, läsa/skriva) används.
- Ange förfallotid på rätt sätt. Kontrollera att åtkomsten till Lagringsobjekt inte upphör att gälla inom den aktiva perioden för pipelinen.
- URI:n ska skapas i rätt container eller blob baserat på behovet. Med en signatur-URI för delad åtkomst till en blob kan datafabriken eller Synapse-pipelinen komma åt den specifika bloben. Med en signatur-URI för delad åtkomst till en Blob Storage-container kan datafabriken eller Synapse-pipelinen iterera via blobar i containern. Kom ihåg att uppdatera den länkade tjänsten med den nya URI:n för att ge åtkomst till fler eller färre objekt senare eller uppdatera signaturen för delad åtkomst.
Tjänstens huvudautentisering
Följ dessa steg om du vill använda autentisering med tjänstens huvudnamn.
Registrera ett program med Microsofts identitetsplattform. Mer information finns i Snabbstart: Registrera ett program med Microsofts identitetsplattform. Anteckna dessa värden som du använder för att definiera den länkade tjänsten:
- Program-ID:t
- Programnyckel
- Klientorganisations-ID
Ge tjänstens huvudnamn rätt behörighet. Se exempel på hur behörighet fungerar i Data Lake Storage Gen2 från åtkomstkontrollistor på filer och kataloger
- Som källa: I Storage Explorer beviljar du minst körbehörighet för ALLA överordnade mappar och filsystemet, tillsammans med läsbehörighet för filerna som ska kopieras. Alternativt kan du i Åtkomstkontroll (IAM) bevilja minst rollen Storage Blob-dataläsare.
- Som mottagare: I Storage Explorer beviljar du minst körbehörighet för ALLA överordnade mappar och filsystemet, tillsammans med skrivbehörighet för mottagarmappen. Alternativt kan du i Åtkomstkontroll (IAM) bevilja minst rollen Storage Blob-datadeltagare.
Kommentar
Om du använder användargränssnittet för att skapa och tjänstens huvudnamn inte har angetts med rollen "Storage Blob Data Reader/Contributor" i IAM väljer du "Testa anslutning till filsökväg" eller "Bläddra från angiven sökväg" och anger en sökväg med läs- och körningsbehörighet för att fortsätta.
Dessa egenskaper stöds för den länkade tjänsten:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen måste vara inställd på AzureBlobFS. | Ja |
URL | Slutpunkt för Data Lake Storage Gen2 med mönstret https://<accountname>.dfs.core.windows.net . |
Ja |
servicePrincipalId | Ange programmets klient-ID. | Ja |
servicePrincipalCredentialType | Den typ av autentiseringsuppgifter som ska användas för autentisering med tjänstens huvudnamn. Tillåtna värden är ServicePrincipalKey och ServicePrincipalCert. | Ja |
servicePrincipalCredential | Autentiseringsuppgifterna för tjänstens huvudnamn. När du använder ServicePrincipalKey som typ av autentiseringsuppgifter anger du programmets nyckel. Markera det här fältet som SecureString för att lagra det på ett säkert sätt eller referera till en hemlighet som lagras i Azure Key Vault. När du använder ServicePrincipalCert som autentiseringsuppgifter refererar du till ett certifikat i Azure Key Vault och kontrollerar att certifikatinnehållstypen är PKCS #12. |
Ja |
servicePrincipalKey | Ange programmets nyckel. Markera det här fältet som SecureString för att lagra det på ett säkert sätt eller referera till en hemlighet som lagras i Azure Key Vault. Den här egenskapen stöds fortfarande som den är för servicePrincipalId + servicePrincipalKey . När ADF lägger till ny certifikatautentisering för tjänstens huvudnamn är servicePrincipalId + + servicePrincipalCredentialType servicePrincipalCredential den nya modellen för autentisering med tjänstens huvudnamn . |
Nej |
klientorganisation | Ange klientinformationen (domännamn eller klient-ID) som programmet finns under. Hämta den genom att hovra musen i det övre högra hörnet av Azure Portal. | 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 datafabriken eller Synapse-pipelinens molnmiljö. |
Nej |
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 det inte anges används standardkörningen för Azure-integrering. | Nej |
Exempel: använda nyckelautentisering för tjänstens huvudnamn
Du kan också lagra tjänstens huvudnamnsnyckel i Azure Key Vault.
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"url": "https://<accountname>.dfs.core.windows.net",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalKey",
"servicePrincipalCredential": {
"type": "SecureString",
"value": "<service principal key>"
},
"tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exempel: använda certifikatautentisering med tjänstens huvudnamn
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"url": "https://<accountname>.dfs.core.windows.net",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalCert",
"servicePrincipalCredential": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<AKV reference>",
"type": "LinkedServiceReference"
},
"secretName": "<certificate name in AKV>"
},
"tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Systemtilldelad autentisering av hanterad identitet
En datafabrik eller Synapse-arbetsyta kan associeras med en systemtilldelad hanterad identitet. Du kan direkt använda den här systemtilldelade hanterade identiteten för Data Lake Storage Gen2-autentisering, ungefär som med ditt eget huvudnamn för tjänsten. Det gör att den här avsedda fabriken eller arbetsytan kan komma åt och kopiera data till eller från din Data Lake Storage Gen2.
Följ dessa steg om du vill använda systemtilldelad hanterad identitetsautentisering.
Hämta systemtilldelad hanterad identitetsinformation genom att kopiera värdet för det hanterade identitetsobjekt-ID som genererats tillsammans med din datafabrik eller Synapse-arbetsyta.
Ge den systemtilldelade hanterade identiteten rätt behörighet. Se exempel på hur behörighet fungerar i Data Lake Storage Gen2 från åtkomstkontrollistor på filer och kataloger.
- Som källa: I Storage Explorer beviljar du minst körbehörighet för ALLA överordnade mappar och filsystemet, tillsammans med läsbehörighet för filerna som ska kopieras. Alternativt kan du i Åtkomstkontroll (IAM) bevilja minst rollen Storage Blob-dataläsare.
- Som mottagare: I Storage Explorer beviljar du minst körbehörighet för ALLA överordnade mappar och filsystemet, tillsammans med skrivbehörighet för mottagarmappen. Alternativt kan du i Åtkomstkontroll (IAM) bevilja minst rollen Storage Blob-datadeltagare.
Dessa egenskaper stöds för den länkade tjänsten:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen måste vara inställd på AzureBlobFS. | Ja |
URL | Slutpunkt för Data Lake Storage Gen2 med mönstret https://<accountname>.dfs.core.windows.net . |
Ja |
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 det inte anges används standardkörningen för Azure-integrering. | Nej |
Exempel:
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"url": "https://<accountname>.dfs.core.windows.net",
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
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 Storage Gen2. 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:
Skapa en eller flera användartilldelade hanterade identiteter och bevilja åtkomst till Azure Data Lake Storage Gen2. Se exempel på hur behörighet fungerar i Data Lake Storage Gen2 från åtkomstkontrollistor på filer och kataloger.
- Som källa: I Storage Explorer beviljar du minst körbehörighet för ALLA överordnade mappar och filsystemet, tillsammans med läsbehörighet för filerna som ska kopieras. Alternativt kan du i Åtkomstkontroll (IAM) bevilja minst rollen Storage Blob-dataläsare.
- Som mottagare: I Storage Explorer beviljar du minst körbehörighet för ALLA överordnade mappar och filsystemet, tillsammans med skrivbehörighet för mottagarmappen. Alternativt kan du i Åtkomstkontroll (IAM) bevilja minst rollen Storage Blob-datadeltagare.
Tilldela en eller flera användartilldelade hanterade identiteter till din datafabrik och skapa autentiseringsuppgifter för varje användartilldelad hanterad identitet.
Dessa egenskaper stöds för den länkade tjänsten:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen måste vara inställd på AzureBlobFS. | Ja |
URL | Slutpunkt för Data Lake Storage Gen2 med mönstret https://<accountname>.dfs.core.windows.net . |
Ja |
autentiseringsuppgifter | Ange den användartilldelade hanterade identiteten som autentiseringsobjekt. | Ja |
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 det inte anges används standardkörningen för Azure-integrering. | Nej |
Exempel:
{
"name": "AzureDataLakeStorageGen2LinkedService",
"properties": {
"type": "AzureBlobFS",
"typeProperties": {
"url": "https://<accountname>.dfs.core.windows.net",
"credential": {
"referenceName": "credential1",
"type": "CredentialReference"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Kommentar
Om du använder Data Factory-användargränssnittet för att skapa och den hanterade identiteten inte har angetts med rollen "Storage Blob Data Reader/Contributor" i IAM väljer du "Testa anslutning till filsökväg" eller "Bläddra från angiven sökväg" och anger en sökväg med läs- och körningsbehörighet för att fortsätta.
Viktigt!
Om du använder PolyBase- eller COPY-instruktionen för att läsa in data från Data Lake Storage Gen2 till Azure Synapse Analytics, när du använder hanterad identitetsautentisering för Data Lake Storage Gen2, kontrollerar du att du även följer steg 1 till 3 i den här vägledningen. Dessa steg registrerar servern med Microsoft Entra-ID och tilldelar rollen Storage Blob Data Contributor till servern. Data Factory hanterar resten. Om du konfigurerar Blob Storage med en Azure Virtual Network-slutpunkt måste du också ha Tillåt betrodda Microsoft-tjänster för att få åtkomst till det här lagringskontot aktiverat under menyn Brandväggar för Azure Storage-konto och Inställningar för virtuella nätverk enligt azure synapse.
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 Datauppsättningar.
Azure Data Factory stöder följande filformat. Se varje artikel för formatbaserade inställningar.
- Avro-format
- Binärt format
- Avgränsat textformat
- Excel-format
- Isbergsformat
- JSON-format
- ORC-format
- Parquet-format
- XML-format
Följande egenskaper stöds för Data Lake Storage Gen2 under location
inställningar i den formatbaserade datauppsättningen:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen under location i datauppsättningen måste anges till AzureBlobFSLocation. |
Ja |
fileSystem | Filsystemnamnet för Data Lake Storage Gen2. | Nej |
folderPath | Sökvägen till en mapp under det angivna filsystemet. 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 filenSystem + 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": "<Data Lake Storage Gen2 linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, auto retrieved during authoring > ],
"typeProperties": {
"location": {
"type": "AzureBlobFSLocation",
"fileSystem": "filesystemname",
"folderPath": "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 aktiviteten Kopiera konfigurationer, pipelines och aktiviteter. Det här avsnittet innehåller en lista över egenskaper som stöds av Data Lake Storage Gen2-källan och mottagaren.
Azure Data Lake Storage Gen2 som källtyp
Azure Data Factory stöder följande filformat. Se varje artikel för formatbaserade inställningar.
- Avro-format
- Binärt format
- Avgränsat textformat
- Excel-format
- JSON-format
- ORC-format
- Parquet-format
- XML-format
Du har flera alternativ för att kopiera data från ADLS Gen2:
- Kopiera från den angivna sökvägen som anges i datauppsättningen.
- Jokerteckenfilter mot mappsökväg eller filnamn, se
wildcardFolderPath
ochwildcardFileName
. - Kopiera filerna som definierats i en viss textfil som filuppsättning, se
fileListPath
.
Följande egenskaper stöds för Data Lake Storage Gen2 under storeSettings
inställningar i formatbaserad kopieringskälla:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen under storeSettings måste anges till AzureBlobFSReadSettings. |
Ja |
Leta upp filerna som ska kopieras: | ||
ALTERNATIV 1: statisk sökväg |
Kopiera från det angivna filsystemet eller mapp-/filsökvägen som anges i datauppsättningen. Om du vill kopiera alla filer från ett filsystem/en mapp anger du wildcardFileName dessutom som * . |
|
ALTERNATIV 2: jokertecken - jokerteckenFolderPath |
Mappsökvägen med jokertecken under det angivna filsystemet som konfigurerats i datauppsättningen 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 2: jokertecken - jokerteckenFileName |
Filnamnet med jokertecken under det angivna filsystemet + folderPath/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 3: 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. När du använder det här alternativet ska du inte ange filnamn i datauppsättningen. 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. Observera att när rekursivt är inställt på sant 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 kommer att väljas. 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 väljs.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 det inte anges, 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": "CopyFromADLSGen2",
"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": "AzureBlobFSReadSettings",
"recursive": true,
"wildcardFolderPath": "myfolder*A",
"wildcardFileName": "*.csv"
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
Azure Data Lake Storage Gen2 som mottagartyp
Azure Data Factory stöder följande filformat. Se varje artikel för formatbaserade inställningar.
Följande egenskaper stöds för Data Lake Storage Gen2 under storeSettings
inställningar i formatbaserad kopieringsmottagare:
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen under storeSettings måste anges till AzureBlobFSWriteSettings. |
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 |
blockSizeInMB | Ange blockstorleken i MB som används för att skriva data till ADLS Gen2. Läs mer om blockblobar. Det tillåtna värdet är mellan 4 MB och 100 MB. Som standard avgör ADF automatiskt blockstorleken baserat på källlagringstypen och data. För icke-binär kopiering till ADLS Gen2 är standardblockstorleken 100 MB för att få plats med högst cirka 4,75 TB data. Det kanske inte är optimalt när dina data inte är stora, särskilt när du använder lokalt installerad integrationskörning med dåligt nätverk som resulterar i timeout eller prestandaproblem. Du kan uttryckligen ange en blockstorlek, och se till att blockSizeInMB*50000 är tillräckligt stort för att lagra data, annars misslyckas kopieringsaktivitetskörningen. |
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 |
metadata | Ange anpassade metadata när du kopierar till mottagare. Varje objekt under matrisen metadata representerar en extra kolumn. name Definierar namnet på metadatanyckeln value och anger nyckelns datavärde. Om funktionen bevara attribut används kommer angivna metadata att kopplas/skrivas över med källfilens metadata.Tillåtna datavärden är: - $$LASTMODIFIED : en reserverad variabel anger att källfilerna senast ändrades. Gäller endast för filbaserad källa med binärt format.-Uttryck - Statiskt värde |
Nej |
Exempel:
"activities":[
{
"name": "CopyToADLSGen2",
"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": "AzureBlobFSWriteSettings",
"copyBehavior": "PreserveHierarchy",
"metadata": [
{
"name": "testKey1",
"value": "value1"
},
{
"name": "testKey2",
"value": "value2"
},
{
"name": "lastModifiedKey",
"value": "$$LASTMODIFIED"
}
]
}
}
}
}
]
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 | ADF-konfiguration |
---|---|---|
filsystem 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: -Filsystem: filesystem – Mappsökväg: FolderA I kopieringsaktivitetskällan: – Sökväg till fillista: filesystem/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. |
Några rekursiva och copyBehavior-exempel
I det här avsnittet beskrivs det resulterande beteendet för kopieringsåtgärden för olika kombinationer av rekursiva 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 Fil5 |
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 i 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 ett automatiskt genererat filnamn. autogenererat namn för File1 Undermapp1 med File3, File4 och File5 hämtas inte. |
Bevara metadata under kopiering
När du kopierar filer från Amazon S3/Azure Blob/Azure Data Lake Storage Gen2 till Azure Data Lake Storage Gen2/Azure Blob kan du välja att bevara filmetadata tillsammans med data. Läs mer från Bevara metadata.
Bevara ACL:er från Data Lake Storage Gen1/Gen2
När du kopierar filer från Azure Data Lake Storage Gen1/Gen2 till Gen2 kan du välja att bevara POSIX-åtkomstkontrollistor (ACL: er) tillsammans med data. Lär dig mer från Bevara ACL:er från Data Lake Storage Gen1/Gen2 till 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.
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 Gen2 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 Gen2. På fliken Källalternativ kan du hantera hur filerna läse sig.
Sökväg med jokertecken: Om du använder ett jokerteckensmönster instrueras ADF 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 på 1900-talet/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 2004 i december från och med X- eller Y-prefixet med ett tvåsiffrigt tal
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.
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 ADF lägger till de matchade partitionerna som finns på var och en av dina mappnivåer.
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 några 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 Dataflöde felsökningsläge.
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.
Egenskaper för mottagare
I mottagartransformeringen kan du skriva till antingen en container eller mapp i Azure Data Lake Storage Gen2. På fliken Inställningar kan du hantera hur filerna skrivs.
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 kommer den att åsidosättas.
- 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 datauppsättningar.
Citattecken alla: Avgör om alla värden ska omges av citattecken
umask
Du kan också ange umask
för filer med POSIX-läsning, skrivning, körningsflaggor för ägare, användare och grupp.
Förbearbetnings- och efterbearbetningskommandon
Du kan också köra Hadoop-filsystemkommandon före eller efter skrivning till en ADLS Gen2-mottagare. Följande kommandon stöds:
cp
mv
rm
mkdir
Exempel:
mkdir /folder1
mkdir -p folder1
mv /folder1/*.* /folder2/
cp /folder1/file1.txt /folder2
rm -r /folder1
Parametrar stöds också via uttrycksverktyget, till exempel:
mkdir -p {$tempPath}/commands/c1/c2
mv {$tempPath}/commands/*.* {$tempPath}/commands/c1/c2
Som standard skapas mappar som användare/rot. Se containern på den översta nivån med "/".
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 ADF-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 AzureBlobFSFile. | Ja |
folderPath | Sökväg till mappen i Data Lake Storage Gen2. 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 om det här escape-teckentecknet finns inuti. Exempel: filsystem/mapp/. 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 om det här escape-teckentecknet finns 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 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ättningsdefinitionerna. 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**, and **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 angivet 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": "ADLSGen2Dataset",
"properties": {
"type": "AzureBlobFSFile",
"linkedServiceName": {
"referenceName": "<Azure Data Lake Storage Gen2 linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"folderPath": "myfilesystem/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 | Typegenskapen för kopieringsaktivitetskällan måste anges till AzureBlobFSSource. | Ja |
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. |
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": "CopyFromADLSGen2",
"type": "Copy",
"inputs": [
{
"referenceName": "<ADLS Gen2 input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "AzureBlobFSSource",
"recursive": true
},
"sink": {
"type": "<sink type>"
}
}
}
]
Modell för äldre kopieringsaktivitetsmottagare
Property | Beskrivning | Obligatoriskt |
---|---|---|
type | Typegenskapen för kopieringsaktivitetsmottagaren måste anges till AzureBlobFSSink. | 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 |
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": "CopyToADLSGen2",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<ADLS Gen2 output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "AzureBlobFSSink",
"copyBehavior": "PreserveHierarchy"
}
}
}
]
Registrering av ändringsdata
Azure Data Factory kan endast hämta nya eller ändrade filer från Azure Data Lake Storage Gen2 genom att aktivera Aktivera ändringsdatainsamling i källomvandlingen för 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 Enable change data capture (Aktivera ändringsdatainsamling ). Tänk på att 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.
Relaterat innehåll
En lista över datalager som stöds som källor och mottagare av kopieringsaktiviteten finns i Datalager som stöds.