Kopiera data från Amazon S3 Compatible Storage med hjälp av Azure Data Factory eller 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 från Amazon Simple Storage Service (Amazon S3) Compatible Storage. Mer information finns i introduktionsartiklarna för Azure Data Factory och Synapse Analytics.

Funktioner som stöds

Den här Amazon S3-kompatibla lagringsanslutningen stöds för följande funktioner:

Funktioner som stöds IR
aktiviteten Kopiera (källa/-) ① ②
Sökningsaktivitet ① ②
GetMetadata-aktivitet ① ②
Ta bort aktivitet ① ②

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

Mer specifikt stöder den här Amazon S3-kompatibla lagringsanslutningsappen kopiering av filer som är eller parsning av filer med de filformat och komprimeringskodex som stöds. Anslutningsappen använder AWS Signature Version 4 för att autentisera begäranden till S3. Du kan använda den här Amazon S3-kompatibla lagringsanslutningsappen för att kopiera data från valfri S3-kompatibel lagringsprovider. Ange motsvarande tjänst-URL i den länkade tjänstkonfigurationen.

Behörigheter som krävs

Om du vill kopiera data från Amazon S3 Compatible Storage kontrollerar du att du har beviljats följande behörigheter för Amazon S3-objektåtgärder: s3:GetObject och s3:GetObjectVersion.

Om du använder användargränssnittet för att skapa krävs ytterligare s3:ListAllMyBuckets behörigheter och s3:ListBucket/s3:GetBucketLocation behörigheter för åtgärder som att testa anslutningen till den länkade tjänsten och bläddra från roten. Om du inte vill bevilja dessa behörigheter kan du välja "Testa anslutning till filsökväg" eller "Bläddra från angiven sökväg" från användargränssnittet.

Den fullständiga listan över Amazon S3-behörigheter finns i Ange behörigheter i en princip på AWS-webbplatsen.

Komma igång

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

Skapa en länkad tjänst till Amazon S3 Compatible Storage med hjälp av användargränssnittet

Använd följande steg för att skapa en länkad tjänst till Amazon S3 Compatible Storage 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 klicka sedan på Ny:

  2. Sök efter Amazon och välj anslutningsappen Amazon S3 Compatible Storage.

    Select the Amazon S3 Compatible Storage connector.

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

    Configure a linked service to Amazon S3 Compatible Storage.

Anslut eller konfigurationsinformation

Följande avsnitt innehåller information om egenskaper som används för att definiera entiteter som är specifika för Amazon S3 Compatible Storage.

Länkade tjänstegenskaper

Följande egenskaper stöds för en Amazon S3-kompatibel länkad tjänst:

Property Beskrivning Obligatoriskt
type Typegenskapen måste vara inställd på AmazonS3Compatible. Ja
accessKeyId ID för den hemliga åtkomstnyckeln. Ja
secretAccessKey Själva den hemliga åtkomstnyckeln. 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
serviceUrl Ange den anpassade S3-slutpunkten https://<service url>. Nej
forcePathStyle Anger om du vill använda S3-åtkomst i sökvägsformat i stället för virtuell åtkomst i värdbaserad stil. Tillåtna värden är: false (standard), true.
Kontrollera dokumentationen för varje datalager om sökvägsformatsåtkomst behövs eller inte.
Nej
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

Exempel:

{
    "name": "AmazonS3CompatibleLinkedService",
    "properties": {
        "type": "AmazonS3Compatible",
        "typeProperties": {
            "accessKeyId": "<access key id>",
            "secretAccessKey": {
                "type": "SecureString",
                "value": "<secret access key>"
            }
        },
        "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 Amazon S3 Compatible under location inställningar i en formatbaserad datauppsättning:

Property Beskrivning Obligatoriskt
type Typegenskapen under location i en datauppsättning måste anges till AmazonS3CompatibleLocation. Ja
bucketName S3-kompatibel lagrings bucketnamn. Ja
folderPath Sökvägen till mappen under den angivna bucketen. Om du vill använda ett jokertecken för att filtrera mappen hoppar du över den här inställningen och anger det i inställningarna för aktivitetskällan. Nej
fileName Filnamnet under den angivna bucketen och mappsökvägen. Om du vill använda ett jokertecken för att filtrera filer hoppar du över den här inställningen och anger det i inställningarna för aktivitetskällan. Nej
version Versionen av S3 Compatible Storage-objektet om S3-kompatibel lagringsversion är aktiverad. Om den inte har angetts hämtas den senaste versionen. Nej

Exempel:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<Amazon S3 Compatible Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AmazonS3CompatibleLocation",
                "bucketName": "bucketname",
                "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 artikeln Pipelines . Det här avsnittet innehåller en lista över egenskaper som Amazon S3 Compatible Storage-källan stöder.

Amazon S3-kompatibel lagring som källtyp

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

Följande egenskaper stöds för Amazon S3 Compatible Storage under storeSettings inställningar i en formatbaserad kopieringskälla:

Property Beskrivning Obligatoriskt
type Typegenskapen under storeSettings måste anges till AmazonS3CompatibleRead Inställningar. Ja
Leta upp filerna som ska kopieras:
ALTERNATIV 1: statisk sökväg
Kopiera från den angivna bucketen eller mapp-/filsökvägen som anges i datauppsättningen. Om du vill kopiera alla filer från en bucket eller mapp anger du wildcardFileName dessutom som *.
ALTERNATIV 2: S3-kompatibelt lagringsprefix
-Prefix
Prefix för det S3-kompatibla lagringsnyckelnamnet under den angivna bucketen som konfigurerats i en datauppsättning för att filtrera S3-kompatibla källlagringsfiler. S3 Kompatibla lagringsnycklar vars namn börjar med bucket_in_dataset/this_prefix är markerade. Den använder S3 Compatible Storages filter på tjänstsidan, vilket ger bättre prestanda än ett jokerteckenfilter.

När du använder prefix och väljer att kopiera till filbaserad mottagare med bevarad hierarki, bör du notera att undersökvägen efter den sista "/" i prefixet bevaras. Du har till exempel källan bucket/folder/subfolder/file.txtoch konfigurerar prefixet som folder/sub, och sedan är subfolder/file.txtden bevarade filsökvägen .
Nej
ALTERNATIV 3: jokertecken
- jokerteckenFolderPath
Mappsökvägen med jokertecken under den angivna bucketen som konfigurerats i en datauppsättning för att filtrera källmappar.
Tillåtna jokertecken är: * (matchar noll eller fler tecken) och ? (matchar noll eller enskilt tecken). Använd ^ för att fly om mappnamnet har ett jokertecken eller det här escape-tecknet inuti.
Se fler exempel i exempel på mapp- och filfilter.
Nej
ALTERNATIV 3: jokertecken
- jokerteckenFileName
Filnamnet med jokertecken under den angivna bucket- och mappsökvägen (eller sökvägen till jokerteckenmappen) för att filtrera källfiler.
Tillåtna jokertecken är: * (matchar noll eller fler tecken) och ? (matchar noll eller enskilt tecken). Använd ^ för att fly om filnamnet har ett jokertecken eller det här escape-tecknet 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.
När du använder det här alternativet ska du inte ange något 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 Filer filtreras 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å en UTC-tidszon 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 ett datetime-värde men modifiedDatetimeEnd är NULL väljs de filer vars senast ändrade attribut är större än eller lika med datetime-värdet. När modifiedDatetimeEnd har ett datetime-värde men modifiedDatetimeStart är NULL väljs de filer vars senast ändrade attribut är mindre än datetime-värdet.
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.
– När du använder prefixet är partitionsrotsökvägen undersökvägen före den sista "/".

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
maxConcurrent Anslut ions 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": "CopyFromAmazonS3CompatibleStorage",
        "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": "AmazonS3CompatibleReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Exempel på mapp- och filfilter

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

Hink key Rekursiv Källmappens struktur och filterresultat (filer i fetstil hämtas)
Hink Folder*/* falskt Hink
    MappA
        File1.csv
        File2.json
        Undermapp1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
Hink Folder*/* true Hink
    MappA
        File1.csv
        File2.json
        Undermapp1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
Hink Folder*/*.csv falskt Hink
    MappA
        File1.csv
        File2.json
        Undermapp1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
Hink Folder*/*.csv true Hink
    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 en fillistsökväg i en aktiviteten Kopiera källa.

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

Exempel på källstruktur Innehåll i FileListToCopy.txt Konfiguration
Hink
    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:
-Hink: bucket
– Mappsökväg: FolderA

I aktiviteten Kopiera källa:
– Sökväg till fillista: bucket/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.

Egenskaper för uppslagsaktivitet

Mer information om egenskaperna finns i Sökningsaktivitet.

Egenskaper för GetMetadata-aktivitet

Mer information om egenskaperna finns i GetMetadata-aktiviteten.

Ta bort aktivitetsegenskaper

Information om egenskaperna finns i Ta bort aktivitet.

En lista över datalager som aktiviteten Kopiera stöder som källor och mottagare finns i Datalager som stöds.