Kopiera data från Google Cloud Storage med Azure Data Factory eller Synapse Analytics

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

Den här artikeln beskriver hur du kopierar data från Google Cloud Storage (GCS). Mer information finns i introduktionsartiklarna om Azure Data Factory och Synapse Analytics.

Funktioner som stöds

Den här Google Cloud Storage-anslutningsappen stöds för följande aktiviteter:

Mer specifikt stöder den här Google Cloud Storage-anslutningsappen kopiering av filer som de är eller parsning av filer med de filformat och komprimerings-codecs som stöds. Den drar nytta av GCS S3-kompatibla samverkan.

Förutsättningar

Följande konfiguration krävs för ditt Google Cloud Storage konto:

  1. Aktivera samverkan för ditt Google Cloud Storage konto
  2. Ange standardprojektet som innehåller de data som du vill kopiera från mål-GCS-bucketen.
  3. Skapa ett tjänstkonto och definiera rätt behörighetsnivåer med hjälp av Cloud IAM på GCP.
  4. Generera åtkomstnycklarna för det här tjänstkontot.

Retrieve access key for Google Cloud Storage

Behörigheter som krävs

Om du vill kopiera data från Google Cloud Storage du till att du har beviljats följande behörigheter för objektåtgärder: storage.objects.get och storage.objects.list .

Om du använder användargränssnittet för att skapa krävs storage.buckets.list ytterligare behörighet 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 den här behörigheten kan du välja alternativen "Testa anslutning till filsökväg" eller "Bläddra från angiven sökväg" i användargränssnittet.

En fullständig lista över Google Cloud Storage och associerade behörigheter finns i IAM-roller för Cloud Storage på Google Cloud-webbplatsen.

Komma igång

Om du 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 Google Cloud Storage med hjälp av användargränssnittet

Använd följande steg för att skapa en länkad tjänst till Google Cloud Storage i Azure Portal användargränssnitt.

  1. Bläddra till fliken Hantera i arbetsytan Azure Data Factory Synapse och välj Länkade tjänster och klicka sedan på Ny:

  2. Sök efter Google och välj anslutningsappen Google Cloud Storage (S3 API).

    Select the Google Cloud Storage (S3 API) connector.

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

    Configure a linked service to Google Cloud Storage.

Konfigurationsinformation för anslutning

Följande avsnitt innehåller information om egenskaper som används för att definiera Data Factory entiteter som är specifika för Google Cloud Storage.

Egenskaper för länkad tjänst

Följande egenskaper stöds för Google Cloud Storage länkade tjänster:

Egenskap Beskrivning Krävs
typ Egenskapen type måste anges till GoogleCloudStorage. Yes
accessKeyId ID för den hemliga åtkomstnyckeln. Information om hur du hittar åtkomstnyckeln och hemligheten finns i Krav. Yes
secretAccessKey Själva den hemliga åtkomstnyckeln. 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. Yes
serviceUrl Ange den anpassade GCS-slutpunkten som https://storage.googleapis.com . Yes
connectVia Integreringskörningen som ska användas för att ansluta till datalagret. Du kan använda Azure Integration Runtime eller integration Runtime med egen värd (om ditt datalager finns i ett privat nätverk). Om den här egenskapen inte anges använder tjänsten standardinställningen Azure Integration Runtime. No

Här är ett exempel:

{
    "name": "GoogleCloudStorageLinkedService",
    "properties": {
        "type": "GoogleCloudStorage",
        "typeProperties": {
            "accessKeyId": "<access key id>",
            "secretAccessKey": {
                "type": "SecureString",
                "value": "<secret access key>"
            },
            "serviceUrl": "https://storage.googleapis.com"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Egenskaper för datamängd

Azure Data Factory har stöd för följande filformat. I varje artikel finns formatbaserade inställningar.

Följande egenskaper stöds för Google Cloud-Storage under location inställningar i en formatbaserad datauppsättning:

Egenskap Beskrivning Krävs
typ Typegenskapen under i datauppsättningen måste anges till GoogleCloudStorageLocation. Yes
bucketName GCS-bucketnamnet. Yes
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 den i inställningarna för aktivitetskällan. No
fileName Filnamnet under den angivna bucketen och mappsökvägen. Om du vill använda ett jokertecken för att filtrera filerna hoppar du över den här inställningen och anger den i inställningarna för aktivitetskällan. No

Exempel:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<Google Cloud Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "GoogleCloudStorageLocation",
                "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 Google Cloud Storage har stöd för.

Google Cloud Storage som källtyp

Azure Data Factory har stöd för följande filformat. Läs mer om formatbaserade inställningar i varje artikel.

Följande egenskaper stöds för Google Cloud-Storage under storeSettings inställningar i en formatbaserad kopieringskälla:

Egenskap Beskrivning Krävs
typ Typegenskapen under måste anges till GoogleCloudStorageReadSettings. Yes
Leta upp de filer som ska kopieras:
ALTERNATIV 1: statisk sökväg
Kopiera från den angivna bucket- eller mapp-/filsökvägen som anges i datauppsättningen. Om du vill kopiera alla filer från en bucket eller mapp anger du dessutom wildcardFileName som * .
ALTERNATIV 2: GCS-prefix
- prefix
Prefix för GCS-nyckelnamnet under den angivna bucketen som konfigurerats i datauppsättningen för att filtrera GCS-källfiler. GCS-nycklar vars namn börjar bucket_in_dataset/this_prefix med väljs. Den använder GCS-filtret på tjänstsidan, vilket ger bättre prestanda än ett jokerteckenfilter. No
ALTERNATIV 3: jokertecken
– wildcardFolderPath
Mappsökvägen med jokertecken under den angivna bucketen konfigurerad i en datauppsättning för att filtrera källmappar.
Tillåtna jokertecken är: * (matchar noll eller flera tecken) ? och (matchar noll eller enskilt tecken). Använd ^ för att escape-ange om mappnamnet har ett jokertecken eller det här escape-tecknet inuti.
Se fler exempel i Exempel på mapp- och filfilter.
No
ALTERNATIV 3: jokertecken
– jokerteckenFileName
Filnamnet med jokertecken under den angivna bucket- och mappsökvägen (eller jokermappens sökväg) för att filtrera källfiler.
Tillåtna jokertecken är: * (matchar noll eller flera tecken) ? och (matchar noll eller enskilt tecken). Använd ^ för att escape-ange om filnamnet har ett jokertecken eller det här escape-tecknet inuti. Se fler exempel i Exempel på mapp- och filfilter.
Yes
ALTERNATIV 3: en lista med filer
- fileListPath
Anger att en viss 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 den sökväg som konfigurerats i datauppsättningen.
Ange inte filnamnet i datauppsättningen när du använder det här alternativet. Se fler exempel i Exempel på fillistor.
No
Ytterligare inställningar:
Rekursiv Anger om data läses 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 inte en tom mapp eller undermapp på mottagaren.
Tillåtna värden är true (standard) och false.
Den här egenskapen gäller inte när du konfigurerar fileListPath .
No
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 ett scenario med kopiering av binära filer. Standardvärdet: false.
No
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å UTC-tidszonen i formatet "2018-12-01T05:00:00Z".
Egenskaperna kan vara NULL,vilket innebär att inget filattributfilter tillämpas på datauppsättningen. När har ett datetime-värde men är NULL väljs de filer vars senaste ändrade attribut är större än eller modifiedDatetimeStartmodifiedDatetimeEnd lika med datetime-värdet. modifiedDatetimeStart När har ett datetime-värde men är NULL , markeras de filer vars senaste ändrade attribut är mindre modifiedDatetimeEndmodifiedDatetimeStart än datetime-värdet. modifiedDatetimeEnd
Den här egenskapen gäller inte när du konfigurerar fileListPath .
No
modifiedDatetimeEnd Samma som ovan. No
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.
No
partitionRootPath När partitionsidentifiering är aktiverat anger du den absoluta rotsökvägen för att kunna 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 partitionens rotsökväg den sökväg som konfigureras i datauppsättningen.
– När du använder mappfilter med jokertecken är partitionens rotsökväg 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 partitionens rotsökväg som "root/folder/year=2020" genererar kopieringsaktiviteten ytterligare två kolumner och med värdet monthday "08" respektive "27" förutom kolumnerna i filerna.
– Om partitionens rotsökväg inte anges genereras ingen extra kolumn.
No
maxConcurrentConnections Den övre gränsen för samtidiga anslutningar som upprättas till datalagret under aktivitetskörningen. Ange ett värde endast när du vill begränsa samtidiga anslutningar. No

Exempel:

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

Exempel på mapp- och filfilter

I det här avsnittet beskrivs resultatet av 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å fillistor

I det här avsnittet beskrivs resultatet av att använda en sökväg till en fillista i aktiviteten Kopiera-källan.

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:
– Bucket: bucket
– Mappsökväg: FolderA

I källa för kopieringsaktivitet:
– 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 den sökväg som konfigurerats i datauppsättningen.

Egenskaper för sökningsaktivitet

Mer information om egenskaperna finns i Lookup activity (Sökningsaktivitet).

Egenskaper för GetMetadata-aktivitet

Mer information om egenskaperna finns i GetMetadata-aktiviteten.

Ta bort aktivitetsegenskaper

Mer information om egenskaperna finns i Ta bort aktivitet.

Äldre modeller

Om du använder en Amazon S3-anslutningsapp för att kopiera data från Google Cloud Storage stöds den fortfarande på samma sätt som för bakåtkompatibilitet. Vi rekommenderar att du använder den nya modellen som nämndes tidigare. Redigeringsgränssnittet har bytt till att generera den nya modellen.

Nästa steg

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