Copiare dati da Google Cloud Archiviazione usando Azure Data Factory o Synapse Analytics
SI APPLICA A: Azure Data Factory Azure Synapse Analytics
Suggerimento
Provare Data Factory in Microsoft Fabric, una soluzione di analisi completa per le aziende. Microsoft Fabric copre tutti gli elementi, dallo spostamento dei dati all'analisi scientifica dei dati, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Scopri come avviare gratuitamente una nuova versione di valutazione .
Questo articolo illustra come copiare dati da Google Cloud Storage (GCS). Per altre informazioni, vedere gli articoli introduttivi per Azure Data Factory e Synapse Analytics.
Funzionalità supportate
Questo connettore google Cloud Archiviazione è supportato per le funzionalità seguenti:
Funzionalità supportate | IR |
---|---|
attività Copy (source/-) | ① ② |
Flusso di dati di mapping (origine/-) | ① |
Attività Lookup | ① ② |
Attività GetMetadata | ① ② |
Attività Delete | ① ② |
(1) Runtime di integrazione di Azure (2) Runtime di integrazione self-hosted
In particolare, questo connettore google Cloud Archiviazione supporta la copia dei file così come è o l'analisi dei file con i formati di file e i codec di compressione supportati. Sfrutta l'interoperabilità S3 compatibile con GCS.
Prerequisiti
Per l'account Google Cloud Archiviazione è necessaria la configurazione seguente:
- Abilitare l'interoperabilità per l'account di Google Cloud Storage
- Impostare il progetto predefinito che contiene i dati da copiare dal bucket GCS di destinazione.
- Creare un account del servizio e definire i livelli corretti di autorizzazioni usando Cloud IAM in GCP.
- Generare le chiavi di accesso per questo account del servizio.
Autorizzazioni necessarie
Per copiare dati da Google Cloud Archiviazione, assicurarsi di avere ottenuto le autorizzazioni seguenti per le operazioni sugli oggetti: storage.objects.get
e storage.objects.list
.
Se si usa l'interfaccia utente per creare, è necessaria un'autorizzazione aggiuntiva storage.buckets.list
per operazioni come il test della connessione al servizio collegato e l'esplorazione dalla radice. Se non si vuole concedere questa autorizzazione, è possibile scegliere le opzioni "Test connessione al percorso del file" o "Sfoglia dal percorso specificato" dall'interfaccia utente.
Per l'elenco completo dei ruoli di Google Cloud Archiviazione e delle autorizzazioni associate, vedere Ruoli IAM per Cloud Archiviazione nel sito Google Cloud.
Introduzione
Per eseguire l'attività di copia con una pipeline, è possibile usare uno degli strumenti o SDK seguenti:
- Strumento Copia dati
- Il portale di Azure
- .NET SDK
- The Python SDK
- Azure PowerShell
- The REST API
- Modello di Azure Resource Manager
Creare un servizio collegato a Google Cloud Archiviazione usando l'interfaccia utente
Seguire questa procedura per creare un servizio collegato a Google Cloud Archiviazione nell'interfaccia utente di portale di Azure.
Passare alla scheda Gestisci nell'area di lavoro di Azure Data Factory o Synapse e selezionare Servizi collegati, quindi fare clic su Nuovo:
Cercare Google e selezionare il connettore Google Cloud Archiviazione (API S3).
Configurare i dettagli del servizio, testare la connessione e creare il nuovo servizio collegato.
Dettagli di configurazione di Connessione or
Le sezioni seguenti riportano informazioni dettagliate sulle proprietà che vengono usate per definire entità specifiche di Data Factory per il connettore Google Cloud Storage.
Proprietà del servizio collegato
Per i servizi collegati di Google Cloud Archiviazione sono supportate le proprietà seguenti:
Proprietà | Descrizione | Richiesto |
---|---|---|
Tipo | La proprietà type deve essere impostata su GoogleCloud Archiviazione. | Sì |
accessKeyId | ID della chiave di accesso segreta. Per trovare la chiave di accesso e il segreto, vedere Prerequisiti. | Sì |
secretAccessKey | La stessa chiave di accesso segreta. Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro o fare riferimento a un segreto archiviato in Azure Key Vault. | Sì |
serviceUrl | Specificare l'endpoint GCS personalizzato come https://storage.googleapis.com . |
Sì |
connectVia | Runtime di integrazione da usare per la connessione all'archivio dati. È possibile usare il runtime di integrazione di Azure o il runtime di integrazione self-hosted (se l'archivio dati si trova in una rete privata). Se questa proprietà non è specificata, il servizio usa il runtime di integrazione di Azure predefinito. | No |
Ecco un esempio:
{
"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"
}
}
}
Proprietà del set di dati
Azure Data Factory supporta i formati di file seguenti. Per impostazioni basate sui formati, fare riferimento ai singoli articoli.
- Formato Avro
- Formato binario
- Formato testo delimitato
- Formato Excel
- Formato JSON
- Formato ORC
- Formato Parquet
- Formato XML
Le proprietà seguenti sono supportate per Google Cloud Archiviazione in location
impostazioni in un set di dati basato sul formato:
Proprietà | Descrizione | Richiesto |
---|---|---|
Tipo | La proprietà location type in nel set di dati deve essere impostata su GoogleCloud Archiviazione Location. |
Sì |
bucketName | Nome del bucket GCS. | Sì |
folderPath | Percorso della cartella nel bucket specificato. Se si vuole usare un carattere jolly per filtrare la cartella, ignorare questa impostazione e specificare che nelle impostazioni dell'origine attività. | No |
fileName | Nome del file nel bucket e nel percorso della cartella specificati. Se si vuole usare un carattere jolly per filtrare i file, ignorare questa impostazione e specificarla nelle impostazioni dell'origine dell'attività. | No |
Esempio:
{
"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"
}
}
}
Proprietà dell'attività di copia
Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione delle attività, vedere l'articolo sulle pipeline. Questa sezione fornisce un elenco delle proprietà supportate dall'origine di Google Cloud Archiviazione.
Google Cloud Archiviazione come tipo di origine
Azure Data Factory supporta i formati di file seguenti. Per impostazioni basate sui formati, fare riferimento ai singoli articoli.
- Formato Avro
- Formato binario
- Formato testo delimitato
- Formato Excel
- Formato JSON
- Formato ORC
- Formato Parquet
- Formato XML
Le proprietà seguenti sono supportate per Google Cloud Archiviazione nelle storeSettings
impostazioni in un'origine di copia basata sul formato:
Proprietà | Descrizione | Richiesto |
---|---|---|
Tipo | La proprietà type in storeSettings deve essere impostata su GoogleCloud Archiviazione Read Impostazioni. |
Sì |
Individuare i file da copiare: | ||
OPZIONE 1: percorso statico |
Copia dal percorso del bucket o della cartella/file specificato nel set di dati. Se si desidera copiare tutti i file da un bucket o una cartella, specificare wildcardFileName anche come * . |
|
OPZIONE 2: prefisso GCS - prefisso |
Prefisso per il nome della chiave GCS nel bucket specificato configurato nel set di dati per filtrare i file GCS di origine. Chiavi GCS i cui nomi iniziano con bucket_in_dataset/this_prefix sono selezionati. Usa il filtro lato servizio GCS, che offre prestazioni migliori rispetto a un filtro con caratteri jolly. |
No |
OPZIONE 3: carattere jolly - wildcardFolderPath |
Percorso della cartella con caratteri jolly nel bucket specificato configurato in un set di dati per filtrare le cartelle di origine. I caratteri jolly consentiti sono: * (corrispondenza di zero o più caratteri) e ? (corrispondenza di zero caratteri o di un carattere singolo). Usare ^ per eseguire l'escape se il nome della cartella ha un carattere jolly o questo carattere di escape all'interno. Vedere altri esempi in Esempi di filtro file e cartelle. |
No |
OPZIONE 3: carattere jolly - wildcardFileName |
Nome file con caratteri jolly nel bucket e nel percorso della cartella specificato (o percorso della cartella con caratteri jolly) per filtrare i file di origine. I caratteri jolly consentiti sono: * (corrispondenza di zero o più caratteri) e ? (corrispondenza di zero caratteri o di un carattere singolo). Usare ^ per eseguire l'escape se il nome del file ha un carattere jolly o questo carattere di escape all'interno. Vedere altri esempi in Esempi di filtro file e cartelle. |
Sì |
OPZIONE 3: un elenco di file - fileListPath |
Indica di copiare un determinato set di file. Puntare a un file di testo che include un elenco di file da copiare, un file per riga, ovvero il percorso relativo al percorso configurato nel set di dati. Quando si usa questa opzione, non specificare il nome del file nel set di dati. Per altri esempi, vedere Esempi di elenco di file. |
No |
Impostazioni aggiuntive: | ||
recursive | Indica se i dati vengono letti in modo ricorsivo dalle cartelle secondarie o solo dalla cartella specificata. Si noti che quando la ricorsiva è impostata su true e il sink è un archivio basato su file, una cartella o una sottocartella vuota non viene copiata o creata nel sink. I valori consentiti sono true (predefinito) e false. Questa proprietà non è applicabile quando si configura fileListPath . |
No |
deleteFilesAfterCompletion | Indica se i file binari verranno eliminati dall'archivio di origine dopo il corretto spostamento nell'archivio di destinazione. L'eliminazione del file è per file, quindi quando l'attività di copia ha esito negativo, si noterà che alcuni file sono già stati copiati nella destinazione ed eliminati dall'origine, mentre altri rimangono nell'archivio di origine. Questa proprietà è valida solo nello scenario di copia dei file binari. Valore predefinito: false. |
No |
modifiedDatetimeStart | I file vengono filtrati in base all'attributo: ultima modifica. I file verranno selezionati se l'ora dell'ultima modifica è maggiore o uguale a modifiedDatetimeStart e minore di modifiedDatetimeEnd . L'ora viene applicata in base al fuso orario UTC nel formato "2018-12-01T05:00:00Z". Le proprietà possono essere NULL, il che significa che al set di dati non verrà applicato alcun filtro di attributo di file. Quando modifiedDatetimeStart ha un valore datetime ma modifiedDatetimeEnd è NULL, verranno selezionati i file il cui ultimo attributo modificato è maggiore o uguale al valore datetime. Quando modifiedDatetimeEnd ha un valore datetime ma modifiedDatetimeStart è NULL, verranno selezionati i file il cui ultimo attributo modificato è minore del valore datetime.Questa proprietà non è applicabile quando si configura fileListPath . |
No |
modifiedDatetimeEnd | Come sopra. | No |
enablePartitionDiscovery | Per i file partizionati, specificare se analizzare le partizioni dal percorso del file e aggiungerle come colonne di origine aggiuntive. I valori consentiti sono false (impostazione predefinita) e true. |
No |
partitionRootPath | Quando l'individuazione delle partizioni è abilitata, specificare il percorso radice assoluto per leggere le cartelle partizionate come colonne di dati. Se non è specificato, per impostazione predefinita, - Quando si usa il percorso del file nel set di dati o nell'elenco di file nell'origine, il percorso radice della partizione è il percorso configurato nel set di dati. - Quando si usa il filtro delle cartelle con caratteri jolly, il percorso radice della partizione è il sottopercorso prima del primo carattere jolly. Si supponga, ad esempio, di configurare il percorso nel set di dati come "root/folder/year=2020/month=08/day=27": - Se si specifica il percorso radice della partizione come "root/folder/year=2020", l'attività di copia genererà altre due colonne month e day con il valore "08" e "27" rispettivamente, oltre alle colonne all'interno dei file.- Se il percorso radice della partizione non è specificato, non verrà generata alcuna colonna aggiuntiva. |
No |
maxConcurrentConnections | Limite massimo di connessioni simultanee stabilite all'archivio dati durante l'esecuzione dell'attività. Specificare un valore solo quando si desidera limitare le connessioni simultanee. | No |
Esempio:
"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>"
}
}
}
]
Esempi di filtro file e cartelle
Questa sezione descrive il comportamento risultante del percorso cartella e del nome del file con i filtri con caratteri jolly.
bucket | key | recursive | Struttura delle cartelle di origine e risultato del filtro (i file in grassetto sono stati recuperati) |
---|---|---|---|
bucket | Folder*/* |
falso | bucket CartellaA File1.csv File2.json Sottocartella1 File3.csv File4.json File5.csv AltraCartellaB File6.csv |
bucket | Folder*/* |
true | bucket CartellaA File1.csv File2.json Sottocartella1 File3.csv File4.json File5.csv AltraCartellaB File6.csv |
bucket | Folder*/*.csv |
falso | bucket CartellaA File1.csv File2.json Sottocartella1 File3.csv File4.json File5.csv AltraCartellaB File6.csv |
bucket | Folder*/*.csv |
true | bucket CartellaA File1.csv File2.json Sottocartella1 File3.csv File4.json File5.csv AltraCartellaB File6.csv |
Esempi di elenco di file
In questa sezione viene descritto il comportamento risultante dell'uso di un percorso dell'elenco di file nell'origine attività Copy.
Si supponga di avere la struttura di cartelle di origine seguente e di voler copiare i file in grassetto:
Esempio di struttura di origine | Contenuto in FileListToCopy.txt | Configurazione |
---|---|---|
bucket CartellaA File1.csv File2.json Sottocartella1 File3.csv File4.json File5.csv Metadati UFX FileListToCopy.txt |
File1.csv Sottocartella1/File3.csv Sottocartella1/File5.csv |
Nel set di dati: - Bucket: bucket - Percorso cartella: FolderA Nell'origine dell'attività Copy: - Percorso elenco file: bucket/Metadata/FileListToCopy.txt Il percorso dell'elenco di file punta a un file di testo nello stesso archivio dati che include un elenco di file da copiare, un file per riga, con il percorso relativo al percorso configurato nel set di dati. |
Proprietà del flusso di dati per mapping
Quando si trasformano i dati nei flussi di dati di mapping, è possibile leggere i file da Google Cloud Archiviazione nei formati seguenti:
Le impostazioni specifiche del formato si trovano nella documentazione per tale formato. Per altre informazioni, vedere Trasformazione origine nel flusso di dati di mapping.
Trasformazione origine
Nella trasformazione dell'origine è possibile leggere da un contenitore, una cartella o un singolo file in Google Cloud Archiviazione. Usare la scheda Opzioni origine per gestire la modalità di lettura dei file.
Percorsi con caratteri jolly: l'uso di un criterio con caratteri jolly indicherà al servizio di scorrere ogni cartella e file corrispondente in una singola trasformazione di origine. Si tratta di un modo efficace per elaborare più file all'interno di un singolo flusso. Aggiungere più criteri di corrispondenza con caratteri jolly con il segno più visualizzato quando si passa il puntatore del mouse sul modello con caratteri jolly esistenti.
Nel contenitore di origine scegliere una serie di file che corrispondono a un criterio. È possibile specificare solo un contenitore nel set di dati. Il percorso con caratteri jolly deve quindi includere anche il percorso della cartella a partire dalla cartella radice.
Esempi di caratteri jolly:
*
Rappresenta qualsiasi set di caratteri.**
Rappresenta l'annidamento di directory ricorsive.?
Sostituisce un carattere.[]
Trova la corrispondenza con uno o più caratteri tra parentesi quadre./data/sales/**/*.csv
Ottiene tutti i file con estensione csv in /data/sales./data/sales/20??/**/
Ottiene tutti i file nel XX secolo./data/sales/*/*/*.csv
Ottiene i file con estensione csv due livelli in /data/sales./data/sales/2004/*/12/[XY]1?.csv
Ottiene tutti i file con estensione csv nel dicembre 2004 a partire da X o Y preceduti da un numero a due cifre.
Percorso radice partizione: se sono presenti cartelle partizionate nell'origine file con un key=value
formato (ad esempio, year=2019
), è possibile assegnare il livello superiore dell'albero delle cartelle di partizione a un nome di colonna nel flusso di dati del flusso di dati.
Impostare innanzitutto un carattere jolly per includere tutti i percorsi che sono le cartelle partizionate e i file foglia da leggere.
Usare l'impostazione Percorso radice partizione per definire il livello principale della struttura di cartelle. Quando si visualizza il contenuto dei dati tramite un'anteprima dei dati, si noterà che il servizio aggiungerà le partizioni risolte trovate in ognuno dei livelli di cartella.
Elenco di file: set di file. Creare un file di testo che includa un elenco di file di percorsi relativi da elaborare. Puntare a questo file di testo.
Colonna per archiviare il nome del file: archiviare il nome del file di origine in una colonna nei dati. Immettere un nuovo nome di colonna per archiviare la stringa del nome file.
Al termine: scegliere di non eseguire alcuna operazione con il file di origine dopo l'esecuzione del flusso di dati, eliminare il file di origine o spostare il file di origine. I percorsi per lo spostamento sono relativi.
Per spostare i file di origine in un altro percorso dopo l'elaborazione, selezionare "Sposta" come operazione sul file. Impostare quindi la directory "da". Se non si usano caratteri jolly per il percorso, l'impostazione "da" sarà la stessa cartella della cartella di origine.
Se si dispone di un percorso di origine con caratteri jolly, la sintassi sarà simile alla seguente:
/data/sales/20??/**/*.csv
È possibile specificare "from" come:
/data/sales
È inoltre possibile specificare "to" come:
/backup/priorSales
In questo caso, tutti i file di /data/sales
origine in vengono spostati in /backup/priorSales
.
Nota
Le operazioni sui file vengono eseguite solo quando si avvia il flusso di dati da un'esecuzione di pipeline (esecuzione del debug o esecuzione della pipeline) che usa l'attività di esecuzione del flusso di dati in una pipeline. Le operazioni sui file non vengono eseguite in modalità di debug del flusso di dati.
Filtro in base all'ultima modifica: è possibile filtrare i file elaborati specificando un intervallo di date di data dell'ultima modifica. Tutti i valori datetime sono in formato UTC.
Proprietà dell'attività Lookup
Per altre informazioni sulle proprietà, vedere Attività Lookup.
Proprietà dell'attività GetMetadata
Per informazioni dettagliate sulle proprietà, vedere l'attività GetMetadata.
Proprietà dell'attività Delete
Per informazioni dettagliate sulle proprietà, selezionare Elimina attività.
Modalità legacy
Se si usa un connettore Amazon S3 per copiare dati da Google Cloud Archiviazione, è ancora supportato così come per la compatibilità con le versioni precedenti. È consigliabile usare il nuovo modello menzionato in precedenza. L'interfaccia utente di creazione è passata alla generazione del nuovo modello.
Contenuto correlato
Per un elenco di archivi dati supportati dal attività Copy come origini e sink, vedere Archivi dati supportati.