Dela via


Kopiera data från Google Cloud Storage med Hjälp av Azure Data Factory eller Synapse Analytics

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

Tips

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 Google Cloud Storage (GCS). Mer information finns i introduktionsartiklarna för Azure Data Factory och Synapse Analytics.

Funktioner som stöds

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

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

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

Specifikt stöder den här Google Cloud Storage-kontakten kopiering av filer som de är eller parsning av filer med stödda filformat och komprimeringskodex. Den drar nytta av GCS S3-kompatibla samverkan.

Förutsättningar

Följande konfiguration krävs på ditt Google Cloud Storage-konto:

  1. Aktivera samverkan för ditt Google Cloud Storage-konto
  2. Ange det standardprojekt 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.

Hämta åtkomstnyckel för Google Cloud Storage

Behörigheter som krävs

Om du vill kopiera data från Google Cloud Storage kontrollerar du 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-behörighet för åtgärder som att testa anslutning till den länkade tjänsten och navigera från rotkatalogen. Om du inte vill bevilja den här behörigheten kan du välja "Testa anslutning till filsökväg" eller "Bläddra från angiven sökväg" i användargränssnittet.

Den fullständiga listan över Google Cloud Storage-roller och associerade behörigheter finns i IAM-roller för Cloud Storage på Google Cloud-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 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änssnittet.

  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 Google och välj anslutningsprogrammet för Google Cloud Storage (S3 API).

    Välj anslutningsprogrammet för Google Cloud Storage (S3 API).

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

    Konfigurera en länkad tjänst till Google Cloud Storage.

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

Länkade tjänstegenskaper

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

Egendom Beskrivning Obligatoriskt
typ Typegenskapen måste anges till GoogleCloudStorage. Ja
åtkomstnyckel-ID ID för den hemliga åtkomstnyckeln. Information om hur du hittar åtkomstnyckeln och hemligheten finns i Krav. Ja
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. Ja
tjänste-URL Ange den anpassade GCS-slutpunkten som https://storage.googleapis.com. Ja
connectVia Den Integration Runtime som ska användas för att ansluta till datastore. 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

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 av datamängd

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

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

Egendom Beskrivning Obligatoriskt
typ Typegenskapen under location i datamängden måste anges till GoogleCloudStorageLocation. Ja
bucketName GCS-bucketens namn. Ja
folderPath Sökvägen till mappen under den givna lagringsplatsen. 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. Nej
filnamn Filnamnet under den angivna mappen och sökvägen. Om du vill använda ett jokertecken för att filtrera filerna hoppar du över den här inställningen och anger det i inställningarna för aktivitetskällan. Nej

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-källan stöder.

Google Cloud Storage 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 Google Cloud Storage under storeSettings inställningar i en formatbaserad kopieringskälla:

Egendom Beskrivning Obligatoriskt
typ Typegenskapen under storeSettings måste anges till GoogleCloudStorageReadSettings. 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: 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 med bucket_in_dataset/this_prefix är markerade. Den använder GCS:s server-side filter, vilket ger bättre prestanda än ett wildcard-filter. 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: wildcard
- wildcardFileName
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 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 filnamnet 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 en filbaserad lagringsenhet, kopieras eller skapas inte en tom mapp eller undermapp vid mottagaren.
Tillåtna värden är sanna (standard) och falska.
Den här egenskapen gäller inte när du konfigurerar fileListPath.
Nej
raderaFilerEfterSlutförande 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 kopieringsprocessen misslyckas ser du att vissa filer redan har kopierats till destinationsplatsen och tagits bort från källplatsen, medan andra fortfarande ligger kvar i källagringen.
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å 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 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
modifieradDatumTidSlut Samma som ovan. Nej
aktiveraPartitionsUpptäckt För filer som är partitionerade anger du om partitionerna ska parsas från filsökvägen och lägga till dem som fler källkolumner.
Tillåtna värden är false (standard) och true.
Nej
partitionens rotväg När partitionsinkänning är aktiverad anger du den absoluta rotsökvägen för att läsa partitionerade filer 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 partitionens rotväg delvä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 partitionens rotsökväg inte har angetts genereras ingen extra kolumn.
Nej
Maximal antal samtidiga anslutningar Den övre gränsen för samtidiga anslutningar som upprättats till datalagret under körningen av aktiviteten. Ange endast ett värde när du vill begränsa samtidiga anslutningar. Nej

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 slutresultatet för mappsökvägens och filnamnets beteende med jokerteckenfilter.

hink nyckel 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
        Fil6.csv
hink Folder*/* true hink
    MappA
         File1.csv
         File2.json
        Undermapp 1
             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 med att använda en sökväg för en fillista i 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 den datauppsättningen:
-Hink: bucket
– Mappsökväg: FolderA

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 i förhållande till den som har konfigurerats i datauppsättningen.

Mappa dataflödesegenskaper

När du transformerar data i mappning av dataflöden kan du läsa filer från Google Cloud Storage 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.

Källtransformering

I källtransformeringen kan du läsa från en container, mapp eller en enskild fil i Google Cloud Storage. Använd fliken Källalternativ för att hantera hur filerna läss.

Skärmbild av källalternativ.

Sökvägar med jokertecken: Genom att använda ett jokerteckensmönster instrueras tjänsten att gå igenom varje matchande mapp och fil i en enda källtransformation. Det här är ett effektivt sätt att bearbeta flera filer i ett enda flöde. Lägg till flera jokerteckenmönster genom att använda plustecknet som visas när du för muspekaren över ditt befintliga jokerteckenmönster.

Från källcontainern väljer du en serie filer som matchar ett mönster. Endast en container kan anges 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 eller flera tecken inom hakparenteserna.

  • /data/sales/**/*.csv Hämtar alla .csv filer under /data/försäljning.

  • /data/sales/20??/**/ Hämtar alla filer på 1900-talet.

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

  • /data/sales/2004/*/12/[XY]1?.csv Hämtar alla .csv-filer i december 2004 som börjar med ett tvåsiffrigt nummer följt av antingen X eller Y.

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 partitionsmappsträdet till ett kolumnnamn i dataflödets dataström.

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

Skärmbild av filinställningarna för partitionskällan.

Använd inställningen Partitionsrotsökväg för att definiera vad mappstrukturens översta nivå är. När du visar innehållet i dina data via en dataförhandsgranskning ser du att tjänsten lägger till de upplösta partitionerna som finns på varje mappnivå.

Skärmbild av sökvägen till partitionens rot.

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. Ställ sedan in 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:

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

Du kan ange "från" som:

/data/sales

Och du kan ange "till" som:

/backup/priorSales

I det här fallet flyttas alla filer som hämtades under /data/sales till /backup/priorSales.

Anmärkning

Filåtgärder körs endast när du startar dataflödet från en pipelinekörning (en felsökningskörning eller exekveringskörning) som använder aktiviteten Köra 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 datum och tider är angivna i UTC.

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.

Äldre modeller

Om du använde en Amazon S3-anslutning för att kopiera data från Google Cloud Storage stöds den fortfarande för att säkerställa bakåtkompatibilitet. Vi rekommenderar att du använder den nya modellen som nämnts tidigare. Redigeringsgränssnittet har växlat till att generera den nya modellen.

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