Origine batch Cloud Storage

Questa pagina fornisce indicazioni sulla configurazione del plug-in dell'origine batch di Cloud Storage in Cloud Data Fusion.

Il plug-in di origine batch Cloud Storage consente di leggere i dati dai bucket Cloud Storage e importarli in Cloud Data Fusion per ulteriori elaborazioni e trasformazioni. Consente di caricare dati da più formati di file, tra cui:

  • Strutturato: CSV, Avro, Parquet, ORC
  • Semi-strutturato: JSON, XML
  • Altri: testo, binario

Prima di iniziare

Cloud Data Fusion in genere ha due service account:

Prima di utilizzare il plug-in di origine batch Cloud Storage, concedi il seguente ruolo o le seguenti autorizzazioni a ogni account di servizio.

Service agent API Data Fusion

Questo account di servizio dispone già di tutte le autorizzazioni richieste e non devi aggiungerne altre.

Service account Compute Engine

Nel tuo progetto Google Cloud , concedi i seguenti ruoli o autorizzazioni IAM al service account Compute Engine:

  • Storage Legacy Bucket Reader (roles/storage.legacyBucketReader). Questo ruolo predefinito contiene l'autorizzazione storage.buckets.get richiesta.
  • Visualizzatore oggetti Storage (roles/storage.legacyBucketReader). Questo ruolo predefinito contiene le seguenti autorizzazioni richieste:

    • storage.objects.get
    • storage.objects.list

Configurare il plug-in

  1. Vai all'interfaccia web di Cloud Data Fusion e fai clic su Studio.
  2. Verifica che sia selezionata l'opzione Pipeline di dati - Batch (non In tempo reale).
  3. Nel menu Origine, fai clic su GCS. Il nodo Cloud Storage viene visualizzato nella pipeline.
  4. Per configurare l'origine, vai al nodo Cloud Storage e fai clic su Properties (Proprietà).
  5. Inserisci le seguenti proprietà. Per un elenco completo, consulta Proprietà.

    1. Inserisci un'etichetta per il nodo Cloud Storage, ad esempio Cloud Storage tables.
    2. Inserisci i dettagli della connessione. Puoi configurare una nuova connessione una tantum o una connessione esistente riutilizzabile.

      Nuova connessione

      Per aggiungere una connessione una tantum a Cloud Storage:

      1. Mantieni disattivata l'opzione Usa connessione.
      2. Nel campo ID progetto, lascia il valore di rilevamento automatico.
      3. Nel campo Tipo di service account, lascia il valore Percorso file e il campo Percorso file service account su rilevamento automatico.

      Connessione riutilizzabile

      Per riutilizzare una connessione esistente:

      1. Attiva l'opzione Usa connessione.
      2. Fai clic su Browse connections (Sfoglia connessioni).
      3. Fai clic sul nome della connessione, ad esempio Cloud Storage Default.

      4. (Facoltativo) Se non esiste una connessione e vuoi crearne una nuova riutilizzabile, fai clic su Aggiungi connessione e segui i passaggi nella scheda Nuova connessione di questa pagina.

    3. Nel campo Nome di riferimento, inserisci un nome da utilizzare per la derivazione, ad esempio data-fusion-gcs-campaign.

    4. Nel campo Percorso, inserisci il percorso da cui leggere, ad esempio gs://BUCKET_PATH.

    5. Nel campo Formato, seleziona uno dei seguenti formati di file per i dati da leggere:

      • avro
      • blob (il formato blob richiede uno schema che contenga un campo denominato body di tipo byte)
      • csv
      • delimitato
      • json
      • parquet
      • text (il formato di testo richiede uno schema che contenga un campo denominato body di tipo string)
      • tsv
      • Il nome di qualsiasi plug-in di formato che hai implementato nel tuo ambiente
    6. (Facoltativo) Per testare la connettività, fai clic su Ottieni schema.

    7. (Facoltativo) Nel campo Dimensione campione, inserisci il numero massimo di righe da controllare per il tipo di dati selezionato, ad esempio 1000.

    8. (Facoltativo) Nel campo Override, inserisci i nomi delle colonne e i rispettivi tipi di dati da ignorare.

    9. (Facoltativo) Inserisci le proprietà avanzate, ad esempio una dimensione minima della suddivisione o un filtro del percorso dell'espressione regolare (vedi Proprietà).

    10. (Facoltativo) Nel campo Nome bucket temporaneo, inserisci un nome per il bucket Cloud Storage.

  6. (Facoltativo) Fai clic su Convalida e correggi eventuali errori trovati.

  7. Fai clic su Chiudi. Le proprietà vengono salvate e puoi continuare a creare la pipeline di dati in Cloud Data Fusion Studio.

Proprietà

Proprietà Con macro Proprietà obbligatoria Descrizione
Etichetta No Il nome del nodo nella pipeline di dati.
Utilizzare la connessione No No Cerca una connessione riutilizzabile all'origine. Per saperne di più su come aggiungere, importare e modificare le connessioni visualizzate quando le sfogli, consulta Gestire le connessioni.
Connessione Se l'opzione Utilizza connessione è attiva, in questo campo viene visualizzato il nome della connessione riutilizzabile selezionata.
ID progetto No Utilizzato solo quando l'opzione Utilizza connessione è disattivata. Un identificatore univoco globale per il progetto.
Il valore predefinito è auto-detect.
Tipo di service account No Seleziona una delle seguenti opzioni:
  • Percorso del file: il percorso in cui si trova il account di servizio.
  • JSON: contenuti JSON del account di servizio.
Service account file path (Percorso del file dell'account di servizio) No Utilizzato solo quando il valore del tipo di service account è Percorso file. Il percorso nel file system locale della chiave dell'account di servizio utilizzata per l'autorizzazione. Se i job vengono eseguiti sui cluster Managed Service for Apache Spark, imposta il valore su rilevamento automatico. Se i job vengono eseguiti su altri tipi di cluster, il file deve essere presente su ogni nodo del cluster.
Il valore predefinito è auto-detect.
JSON del service account No Utilizzato solo quando il valore del tipo di service account è JSON. Il contenuto del file JSON del account di servizio.
Nome di riferimento No Nome che identifica in modo univoco questa origine per altri servizi, ad esempio metadati di derivazione e annotazione.
Percorso Percorso dei file da leggere. Se viene specificata una directory, termina il percorso con una barra rovesciata (/). Ad esempio, gs://bucket/path/to/directory/. Per trovare una corrispondenza con un pattern di nome file, puoi utilizzare un asterisco (*) come carattere jolly. Se non vengono trovati o abbinati file, la pipeline non va a buon fine.
Formato No Formato dei dati da leggere. Il formato deve essere uno dei seguenti:
  • avro
  • blob (il formato blob richiede uno schema che contenga un campo denominato body di tipo byte)
  • csv
  • delimitato
  • json
  • parquet
  • text (il formato di testo richiede uno schema che contenga un campo denominato body di tipo stringa)
  • tsv
  • Il nome di qualsiasi plug-in di formato che hai implementato nel tuo ambiente
  • Se il formato è una macro, possono essere utilizzati solo i formati preconfigurati.
Dimensione del campione No Il numero massimo di righe esaminate per il rilevamento automatico del tipo di dati. Il valore predefinito è 1000.
Override No Un elenco di colonne con i dati corrispondenti da cui viene saltato il rilevamento automatico del tipo di dati.
Delimitatore No Delimitatore da utilizzare quando il formato è delimitato. Questa proprietà viene ignorata per altri formati.
Abilitare i valori tra virgolette No Indica se trattare i contenuti tra virgolette come un valore. Questa proprietà viene utilizzata solo per i formati csv, tsv o delimitati. Ad esempio, se questa proprietà è impostata su true, l'output genera due campi: 1, "a, b, c". Il primo campo ha 1 come valore. Il secondo ha a, b, c. I caratteri virgolette vengono rimossi. Il delimitatore di nuova riga non può trovarsi tra virgolette.
Il plug-in presuppone che le virgolette siano racchiuse correttamente, ad esempio, "a, b, c". La mancata chiusura di una citazione ("a,b,c,) causa un errore.
Il valore predefinito è False.
Usa la prima riga per l'intestazione No Se utilizzare la prima riga di ogni file come intestazione della colonna. I formati supportati sono testo, csv, tsv e delimitato.
Il valore predefinito è False.
Dimensioni minime della suddivisione No Dimensioni minime, in byte, per ogni partizione di input. Partizioni più piccole aumentano il livello di parallelismo, ma richiedono più risorse e overhead.
Se il valore di Formato è blob, non puoi dividere i dati.
Dimensioni massime della suddivisione No Dimensione massima, in byte, per ogni partizione di input. Partizioni più piccole aumentano il livello di parallelismo, ma richiedono più risorse e overhead.
Se il valore di Formato è blob, non puoi dividere i dati.
Il valore predefinito è 128 MB.
Filtro del percorso regex No Espressione regolare a cui devono corrispondere i percorsi dei file per essere inclusi nell'input. Viene confrontato il percorso completo, non solo il nome file. Se non viene fornito alcun file, non viene applicato alcun filtro. Per saperne di più sulla sintassi delle espressioni regolari, vedi Pattern.
Campo Percorso No Campo di output in cui inserire il percorso del file da cui è stato letto il record. Se non viene specificato, il percorso non viene incluso nei record di output. Se specificato, il campo deve esistere nello schema di output come stringa.
Path filename only No Se è impostata una proprietà Campo percorso, utilizza solo il nome file e non l'URI del percorso.
Il valore predefinito è False.
Read files recursively No Indica se i file devono essere letti in modo ricorsivo dal percorso.
Il valore predefinito è False.
Consenti input vuoto No Se consentire un percorso di input che non contiene dati. Se impostato su False, il plug-in genera un errore quando non ci sono dati da leggere. Se impostato su True, non viene generato alcun errore e vengono letti zero record.
Il valore predefinito è False.
File di dati criptato No Indica se i file sono criptati. Per ulteriori informazioni, vedi Crittografia dei file di dati.
Il valore predefinito è False.
Suffisso del file di metadati di crittografia No Il suffisso del nome file per il file di metadati di crittografia.
Il valore predefinito è metadata.
Proprietà del file system No Proprietà aggiuntive da utilizzare con InputFormat durante la lettura dei dati.
Codifica dei file No La codifica dei caratteri per i file da leggere.
Il valore predefinito è UTF-8.
Schema di output No Se è impostata una proprietà Campo percorso, deve essere presente nello schema come stringa.

Crittografia dei file di dati

Questa sezione descrive la proprietà Crittografia file di dati. Se lo imposti su true, i file vengono decriptati utilizzando Streaming AEAD fornito dalla libreria Tink. Ogni file di dati deve essere accompagnato da un file di metadati contenente le informazioni sulla crittografia. Ad esempio, un file di dati criptati in gs://BUCKET/PATH_TO_DIRECTORY/file1.csv.enc deve avere un file di metadati in gs://BUCKET/ PATH_TO_DIRECTORY/file1.csv.enc.metadata. Il file di metadati contiene un oggetto JSON con le seguenti proprietà:

Proprietà Descrizione
kms L'URI di Cloud Key Management Service utilizzato per criptare la chiave di crittografia dei dati.
aad I dati autenticati aggiuntivi con codifica Base64 utilizzati nella crittografia.
key set Un oggetto JSON che rappresenta le informazioni sul keyset serializzato della libreria Tink.

Esempio

    /* Counting example */
    {

      "kms": "gcp-kms://projects/my-key-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/mykey",

      "aad": "73iT4SUJBM24umXecCCf3A==",

      "keyset": {

          "keysetInfo": {

              "primaryKeyId": 602257784,

              "keyInfo": [{

                  "typeUrl": "type.googleapis.com/google.crypto.tink.AesGcmHkdfStreamingKey",

                  "outputPrefixType": "RAW",

                  "keyId": 602257784,

                  "status": "ENABLED"

              }]

          },

          "encryptedKeyset": "CiQAz5HH+nUA0Zuqnz4LCnBEVTHS72s/zwjpcnAMIPGpW6kxLggSrAEAcJKHmXeg8kfJ3GD4GuFeWDZzgGn3tfolk6Yf5d7rxKxDEChIMWJWGhWlDHbBW5B9HqWfKx2nQWSC+zjM8FLefVtPYrdJ8n6Eg8ksAnSyXmhN5LoIj6az3XBugtXvCCotQHrBuyoDY+j5ZH9J4tm/bzrLEjCdWAc+oAlhsUAV77jZhowJr6EBiyVuRVfcwLwiscWkQ9J7jjHc7ih9HKfnqAZmQ6iWP36OMrEn"

      }

    }
    

Note di rilascio

Passaggi successivi