Delen via


Gegevens kopiëren uit Google Cloud Storage met behulp van Azure Data Factory of Synapse Analytics

Van toepassing op: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

In dit artikel wordt beschreven hoe u gegevens kopieert uit Google Cloud Storage (GCS). Lees de inleidende artikelen voor Azure Data Factory en Synapse Analytics voor meer informatie.

Ondersteunde mogelijkheden

Deze Google Cloud Storage-connector wordt ondersteund voor de volgende mogelijkheden:

Ondersteunde mogelijkheden IR
Kopieeractiviteit (bron/-) (1) (2)
Toewijzingsgegevensstroom (bron/-)
Zoekactiviteit (1) (2)
GetMetadata-activiteit (1) (2)
Activiteit verwijderen (1) (2)

(1) Azure-integratieruntime (2) Zelfgehoste integratieruntime

Deze Google Cloud Storage-connector ondersteunt het kopiëren van bestanden zoals het is of het parseren van bestanden met de ondersteunde bestandsindelingen en compressiecodecs. Het maakt gebruik van de S3-compatibele interoperabiliteit van GCS.

Prerequisites

De volgende installatie is vereist voor uw Google Cloud Storage-account:

  1. Interoperabiliteit inschakelen voor uw Google Cloud Storage-account
  2. Stel het standaardproject in dat de gegevens bevat die u wilt kopiëren uit de GCS-doelbucket.
  3. Maak een serviceaccount en definieer de juiste machtigingsniveaus met behulp van Cloud IAM op GCP.
  4. Genereer de toegangssleutels voor dit serviceaccount.

Toegangssleutel ophalen voor Google Cloud Storage

Vereiste toestemmingen

Als u gegevens uit Google Cloud Storage wilt kopiëren, moet u ervoor zorgen dat u de volgende machtigingen hebt gekregen voor objectbewerkingen: storage.objects.get en storage.objects.list.

Als u de gebruikersinterface gebruikt om te schrijven, is de machtiging vereist voor bewerkingen zoals het testen van de storage.buckets.list verbinding met de gekoppelde service en bladeren vanuit de hoofdmap. Als u deze machtiging niet wilt verlenen, kunt u de opties Verbinding met bestandspad testen of Bladeren vanuit het opgegeven pad in de gebruikersinterface kiezen.

Zie IAM-rollen voor Cloud Storage op de Google Cloud-site voor de volledige lijst met Google Cloud Storage-rollen en bijbehorende machtigingen.

Aan de slag

Als u de kopieeractiviteit wilt uitvoeren met een pijplijn, kunt u een van de volgende hulpprogramma's of SDK's gebruiken:

Een gekoppelde service maken in Google Cloud Storage met behulp van de gebruikersinterface

Gebruik de volgende stappen om een gekoppelde service te maken voor Google Cloud Storage in de gebruikersinterface van Azure Portal.

  1. Blader naar het tabblad Beheren in uw Azure Data Factory- of Synapse-werkruimte en selecteer Gekoppelde services en selecteer vervolgens Nieuw:

  2. Zoek naar Google en selecteer de S3 API-connector (Google Cloud Storage).

    Selecteer de Google Cloud Storage-connector voor de S3 API.

  3. Configureer de servicedetails, test de verbinding en maak de nieuwe gekoppelde service.

    Een gekoppelde service configureren voor Google Cloud Storage.

Details van de configuratie van de connector

De volgende secties bevatten details over eigenschappen die worden gebruikt voor het definiëren van Data Factory-entiteiten die specifiek zijn voor Google Cloud Storage.

Eigenschappen van gekoppelde service

De volgende eigenschappen worden ondersteund voor gekoppelde Google Cloud Storage-services:

Property Description Required
type De typeeigenschap moet worden ingesteld op GoogleCloudStorage. Yes
accessKeyId Id van de geheime toegangssleutel. Zie Vereisten voor informatie over de toegangssleutel en het geheim. Yes
secretAccessKey De geheime toegangssleutel zelf. Markeer dit veld als SecureString om het veilig op te slaan of verwijs naar een geheim dat is opgeslagen in Azure Key Vault. Yes
serviceUrl Geef het aangepaste GCS-eindpunt op als https://storage.googleapis.com. Yes
connectVia De Integration Runtime die moet worden gebruikt om verbinding te maken met de gegevensopslag. U kunt de Azure Integration Runtime of de zelf-hostende Integration Runtime gebruiken (als uw gegevensarchief zich in een privénetwerk bevindt). Als deze eigenschap niet is opgegeven, gebruikt de service de standaard Azure Integration Runtime. No

Hier is een voorbeeld:

{
    "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"
        }
    }
}

Eigenschappen van gegevensset

Azure Data Factory ondersteunt de volgende bestandsindelingen. Raadpleeg elk artikel voor op indeling gebaseerde instellingen.

De volgende eigenschappen worden ondersteund voor Google Cloud Storage onder location instellingen in een op indeling gebaseerde gegevensset:

Property Description Required
type De typeeigenschap onder location in de gegevensset moet worden ingesteld op GoogleCloudStorageLocation. Yes
bucketName De naam van de GCS-bucket. Yes
folderPath Het pad naar de map binnen de opgegeven bucket. Als u een jokerteken wilt gebruiken om de map te filteren, slaat u deze instelling over en geeft u dat op in de instellingen van de activiteitsbron. No
fileName De bestandsnaam binnen het opgegeven bucket- en mappad. Als u een jokerteken wilt gebruiken om de bestanden te filteren, slaat u deze instelling over en geeft u dat op in de instellingen van de activiteitsbron. No

Example:

{
    "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"
        }
    }
}

Eigenschappen van de kopieeractiviteit

Zie het artikel Pijplijnen voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten. Deze sectie bevat een lijst met eigenschappen die door de Google Cloud Storage-bron worden ondersteund.

Google Cloud Storage als brontype

Azure Data Factory ondersteunt de volgende bestandsindelingen. Raadpleeg elk artikel voor op indeling gebaseerde instellingen.

De volgende eigenschappen worden ondersteund voor Google Cloud Storage onder storeSettings instellingen in een op indeling gebaseerde kopieerbron:

Property Description Required
type De eigenschap type onder storeSettings moet worden ingesteld op GoogleCloudStorageReadSettings. Yes
Zoek de bestanden die u wilt kopiëren:
OPTIE 1: statisch pad
Kopieer vanuit de opgegeven bucket of map/bestandspad dat is opgegeven in de gegevensset. Als u alle bestanden uit een bucket of map wilt kopiëren, moet u ook specificeren wildcardFileName als *.
OPTIE 2: GCS-voorvoegsel
-voorvoegsel
Voorvoegsel voor de naam van de GCS-sleutel binnen de opgegeven bucket die in de dataset is geconfigureerd om bron-GCS-bestanden te filteren. GCS-sleutels waarvan de namen beginnen met bucket_in_dataset/this_prefix zijn geselecteerd. Het maakt gebruik van het servicezijdefilter van GCS, wat betere prestaties biedt dan een wildcardfilter. No
OPTIE 3: jokerteken
- jokertekenFolderPath
Het mappad met jokertekens binnen de opgegeven bucket, geconfigureerd in een gegevensset om bronmappen te filteren.
Toegestane jokertekens zijn: * (komt overeen met nul of meer tekens) en ? (komt overeen met nul of één teken). Gebruik ^ om te ontsnappen als uw mapnaam een jokerteken of dit escape-teken bevat.
Bekijk meer voorbeelden in voorbeelden van mappen en bestandsfilters.
No
OPTIE 3: jokerteken
- wildcard-bestandsnaam
De bestandsnaam met jokertekens onder het opgegeven bucket- en mappad (of pad naar een jokerteken) om bronbestanden te filteren.
Toegestane jokertekens zijn: * (komt overeen met nul of meer tekens) en ? (komt overeen met nul of één teken). Gebruik ^ deze optie om te escapen als uw bestandsnaam een jokerteken of dit escape-teken bevat. Bekijk meer voorbeelden in voorbeelden van mappen en bestandsfilters.
Yes
OPTIE 3: een lijst met bestanden
- fileListPath
Geeft aan om een bepaalde bestandsset te kopiëren. Wijs een tekstbestand aan met een lijst met bestanden die u wilt kopiëren, één bestand per regel. Dit is het relatieve pad naar het pad dat is geconfigureerd in de gegevensset.
Wanneer u deze optie gebruikt, geeft u niet de bestandsnaam op in de gegevensset. Bekijk meer voorbeelden in voorbeelden van de lijst met bestanden.
No
Aanvullende instellingen:
recursive Hiermee wordt aangegeven of de gegevens recursief worden gelezen uit de submappen of alleen uit de opgegeven map. Houd er rekening mee dat wanneer recursief is ingesteld op true en de sink een archief op basis van bestanden is, een lege map of submap niet wordt gekopieerd of gemaakt in de sink.
Toegestane waarden zijn waar (standaard) en onwaar.
Deze eigenschap is niet van toepassing wanneer u configureert fileListPath.
No
deleteFilesAfterCompletion Geeft aan of de binaire bestanden worden verwijderd uit het bronarchief nadat ze naar het doelarchief zijn verplaatst. Het verwijderen van bestanden is per bestand, dus wanneer de kopieeractiviteit mislukt, ziet u dat sommige bestanden al naar het doel zijn gekopieerd en uit de bron zijn verwijderd, terwijl anderen nog steeds in het bronarchief blijven.
Deze eigenschap is alleen geldig in het scenario voor het kopiëren van binaire bestanden. De standaardwaarde: false.
No
modifiedDatetimeStart Bestanden worden gefilterd op basis van het kenmerk: laatst gewijzigd.
De bestanden worden geselecteerd als de laatste wijzigingstijd groter is dan of gelijk is aan modifiedDatetimeStart en kleiner is dan modifiedDatetimeEnd. De tijd wordt toegepast op de UTC-tijdzone in de notatie '2018-12-01T05:00:00Z'.
De eigenschappen kunnen NULL zijn, wat betekent dat er geen bestandskenmerkfilter wordt toegepast op de gegevensset. Wanneer modifiedDatetimeStart een datum/tijd-waarde heeft maar modifiedDatetimeEndNULL is, worden de bestanden waarvan het kenmerk voor het laatst gewijzigd is groter dan of gelijk aan de datum/tijd-waarde geselecteerd. Wanneer modifiedDatetimeEnd een datum/tijd-waarde heeft maar modifiedDatetimeStartNULL is, worden de bestanden waarvan het kenmerk voor het laatst gewijzigd is kleiner dan de datum/tijd-waarde geselecteerd.
Deze eigenschap is niet van toepassing wanneer u configureert fileListPath.
No
modifiedDatetimeEnd Hetzelfde als hierboven. No
enablePartitionDiscovery Geef voor bestanden die zijn gepartitioneerd aan of de partities vanuit het bestandspad geparsed moeten worden en als extra bronkolommen moeten worden toegevoegd.
Toegestane waarden zijn onwaar (standaard) en waar.
No
partitionRootPath Wanneer partitiedetectie is ingeschakeld, geeft u het absolute hoofdpad op om gepartitioneerde mappen als gegevenskolommen te lezen.

Als deze niet is opgegeven, is dit standaard
- Wanneer u bestandspad gebruikt in de gegevensset of lijst met bestanden op de bron, is het pad naar de partitiehoofdmap dat is geconfigureerd in de gegevensset.
- Wanneer u het filter voor jokertekens gebruikt, is partitiehoofdpad het subpad vóór het eerste jokerteken.

Stel dat u het pad in de gegevensset configureert als 'root/folder/year=2020/month=08/day=27':
- Als u partitiehoofdpad opgeeft als root/folder/year=2020, genereert de kopieeractiviteit twee kolommen month en day met de waarde '08' en '27', naast de kolommen in de bestanden.
- Als het pad naar de partitiehoofdmap niet is opgegeven, wordt er geen extra kolom gegenereerd.
No
maxConcurrentConnections De bovengrens van gelijktijdige verbindingen die tijdens de uitvoering van de activiteit tot stand zijn gebracht met het gegevensarchief. Geef alleen een waarde op wanneer u gelijktijdige verbindingen wilt beperken. No

Example:

"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>"
            }
        }
    }
]

Voorbeelden van map- en bestandsfilters

In deze sectie wordt het resulterende gedrag van het mappad en de bestandsnaam met jokertekenfilters beschreven.

bucket key recursive Structuur van bronmap en filterresultaat (bestanden vetgedrukt worden opgehaald)
bucket Folder*/* false bucket
    FolderA
         File1.csv
         File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
bucket Folder*/* true bucket
    FolderA
         File1.csv
         File2.json
        Subfolder1
             File3.csv
             File4.json
             File5.csv
    AnotherFolderB
        File6.csv
bucket Folder*/*.csv false bucket
    FolderA
         File1.csv
        File2.json
        Subfolder1
            File3.csv
            File4.json
            File5.csv
    AnotherFolderB
        File6.csv
bucket Folder*/*.csv true bucket
    FolderA
         File1.csv
        File2.json
        Subfolder1
             File3.csv
            File4.json
             File5.csv
    AnotherFolderB
        File6.csv

Voorbeelden van bestandslijsten

In deze sectie wordt het resulterende gedrag beschreven van het gebruik van een bestandslijstpad in de bron van de kopieeractiviteit.

Stel dat u de volgende bronmapstructuur hebt en de bestanden vetgedrukt wilt kopiëren:

Voorbeeldbronstructuur Inhoud in FileListToCopy.txt Configuration
bucket
    FolderA
         File1.csv
        File2.json
        Subfolder1
             File3.csv
            File4.json
             File5.csv
    Metadata
        FileListToCopy.txt
File1.csv
Subfolder1/File3.csv
Subfolder1/File5.csv
In gegevensset:
-Emmer: bucket
- Mappad: FolderA

In bron van kopieeractiviteit:
- Pad naar bestandslijst: bucket/Metadata/FileListToCopy.txt

Het bestandslijstpad verwijst naar een tekstbestand in hetzelfde gegevensarchief met een lijst met bestanden die u wilt kopiëren, één bestand per regel, met het relatieve pad naar het pad dat is geconfigureerd in de gegevensset.

Eigenschappen van gegevensstroommapping

Wanneer u gegevens transformeert in mappinggegevensstromen, kunt u bestanden uit Google Cloud Storage lezen in de volgende bestandsformaten:

Indelingsspecifieke instellingen bevinden zich in de documentatie voor die indeling. Zie Brontransformatie in gegevensstroom voor mapping voor meer informatie.

Brontransformatie

In brontransformatie kunt u lezen uit een container, map of afzonderlijk bestand in Google Cloud Storage. Gebruik het tabblad Bronopties om te beheren hoe de bestanden worden gelezen.

Schermopname van bronopties.

Jokertekenpaden: Met behulp van een jokertekenpatroon wordt de service geïnstrueerd om elke overeenkomende map en elk bestand in één brontransformatie te doorlopen. Dit is een effectieve manier om meerdere bestanden binnen één stroom te verwerken. Voeg meerdere jokertekenpatronen toe met het plusteken dat wordt weergegeven wanneer u de muisaanwijzer boven het bestaande jokertekenpatroon beweegt.

Kies in uw broncontainer een reeks bestanden die overeenkomen met een patroon. Alleen een container kan worden opgegeven in de gegevensset. Uw jokertekenpad moet daarom ook uw mappad uit de hoofdmap bevatten.

Voorbeelden van jokertekens:

  • * Vertegenwoordigt een set tekens.

  • ** Vertegenwoordigt recursieve map genest.

  • ? Hiermee vervangt u één teken.

  • [] Komt overeen met een of meer tekens tussen de haken.

  • /data/sales/**/*.csv Hiermee worden alle .csv bestanden opgehaald onder /data/sales.

  • /data/sales/20??/**/ Haalt alle bestanden in de 20e eeuw op.

  • /data/sales/*/*/*.csv Hiermee worden .csv bestanden twee niveaus onder /data/sales opgehaald.

  • /data/sales/2004/*/12/[XY]1?.csv Hiermee worden alle .csv bestanden opgehaald in december 2004, beginnend met X of Y, voorafgegaan door een getal met twee cijfers.

Partitie-hoofdpad: Als u mappen in uw bestandsbron hebt gepartitioneerd met een key=value indeling (bijvoorbeeld year=2019), kunt u het hoogste niveau van die partitiemapboom toewijzen aan een kolomnaam in uw gegevensstroom.

Stel eerst een jokerteken in om alle paden op te nemen die de gepartitioneerde mappen zijn plus de leaf-bestanden die u wilt lezen.

Schermopname van de instellingen voor het partitiebronbestand.

Gebruik de instelling Partitiehoofdpad om te definiëren wat het hoogste niveau van de mapstructuur is. Wanneer u de inhoud van uw gegevens bekijkt via een gegevensvoorbeeld, ziet u dat de service de herstelde partities toevoegt die in de verschillende niveaus van uw mappen zijn gevonden.

Schermopname van het pad naar de partitiehoofdmap.

Lijst met bestanden: Dit is een bestandsset. Maak een tekstbestand met een lijst met relatieve padbestanden die moeten worden verwerkt. Wijs dit tekstbestand aan.

Kolom voor het opslaan van bestandsnaam: Sla de naam van het bronbestand op in een kolom in uw gegevens. Voer hier een nieuwe kolomnaam in om de bestandsnaamtekenreeks op te slaan.

Na voltooiing: Kies ervoor niets te doen met het bronbestand nadat de gegevensstroom is uitgevoerd, verwijder het bronbestand of verplaats het bronbestand. De paden voor de verplaatsing zijn relatief.

Als u bronbestanden wilt verplaatsen naar een andere locatie na verwerking, selecteert u eerst Verplaatsen voor bestandsbewerking. Stel vervolgens de map 'from' in. Als u geen jokertekens voor uw pad gebruikt, is de instelling 'van' dezelfde map als uw bronmap.

Als u een bronpad met jokertekens hebt, ziet uw syntaxis er als volgt uit:

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

U kunt "van" opgeven als:

/data/sales

U kunt "aan" opgeven als:

/backup/priorSales

In dit geval worden alle bestanden die onder /data/sales zijn opgehaald, verplaatst naar /backup/priorSales.

Note

Bestandsbewerkingen worden alleen uitgevoerd wanneer u de gegevensstroom start vanuit een pijplijnuitvoering (een pijplijnopsporing of uitvoering die gebruikmaakt van de activiteit Gegevensstroom uitvoeren in een pijplijn). Bestandsbewerkingen worden niet uitgevoerd in de foutopsporingsmodus voor gegevensstromen.

Filteren op laatst gewijzigd: U kunt filteren welke bestanden u verwerkt door een datumbereik op te geven van wanneer ze voor het laatst zijn gewijzigd. Alle datums en tijden zijn in UTC.

Eigenschappen van opzoekactiviteit

Om meer te weten te komen over de eigenschappen, raadpleegt u Lookup activity.

Eigenschappen van GetMetadata-activiteit

Raadpleeg de activiteit GetMetadata voor meer informatie over de eigenschappen.

Activiteitseigenschappen verwijderen

Als u meer wilt weten over de eigenschappen, schakelt u De activiteit Verwijderen in.

Verouderde modellen

Als u een Amazon S3-connector gebruikt om gegevens te kopiëren uit Google Cloud Storage, wordt deze nog steeds ondersteund voor backward compatibility. U wordt aangeraden het eerder genoemde nieuwe model te gebruiken. De ontwerpgebruikersinterface is overgeschakeld naar het genereren van het nieuwe model.

Zie Ondersteunde gegevensarchieven voor een lijst met gegevensarchieven die door de kopieeractiviteit worden ondersteund als bronnen en sinks.