Introduzione ai trasferimenti dell'archiviazione BLOB

BigQuery Data Transfer Service per Azure Blob Storage ti consente pianificare e gestire job di caricamento ricorrenti da Archiviazione BLOB di Azure Azure Data Lake Storage Gen2 in BigQuery.

Formati di file supportati

BigQuery Data Transfer Service al momento supporta il caricamento di dati da Archiviazione BLOB nei seguenti formati:

  • Valori separati da virgola (CSV)
  • JSON (delimitato da nuova riga)
  • Avro
  • Parquet
  • ORC

Tipi di compressione supportati

BigQuery Data Transfer Service per l'archiviazione BLOB supporta il caricamento di dati compressi. I tipi di compressione supportati BigQuery Data Transfer Service corrisponde ai tipi di compressione supportati Job di caricamento BigQuery. Per ulteriori informazioni, vedi Caricamento di dati compressi e non compressi.

Prerequisiti per il trasferimento

Per caricare i dati da un'origine dati Archiviazione BLOB, raccogli innanzitutto seguenti:

  • Il nome dell'account Archiviazione BLOB, il nome del container e il percorso dei dati (facoltativo) per i dati di origine. Il campo del percorso dei dati è facoltativo. è abituato a corrispondono a prefissi dell'oggetto ed estensioni dei file comuni. Se il percorso dei dati viene omesso, vengono trasferiti tutti i file nel container.
  • Un token di firma di accesso condiviso (SAS) di Azure che concede l'accesso in lettura al tuo origine dati. Per maggiori dettagli sulla creazione di un token SAS, consulta Firma di accesso condiviso.

Parametrizzazione del runtime di trasferimento

Il percorso dei dati di Archiviazione BLOB e la tabella di destinazione possono essere con parametri, in modo da poter caricare i dati dai container organizzati per data. La utilizzati dai trasferimenti dell'archiviazione BLOB sono gli stessi dei usata dai trasferimenti di Cloud Storage. Per maggiori dettagli, vedi Parametri di runtime nei trasferimenti.

Importazione dati per i trasferimenti di BLOB di Azure

Puoi specificare il modo in cui i dati vengono caricati in BigQuery selezionando un'opzione Scrivi la preferenza nella configurazione di trasferimento quando configurare un trasferimento BLOB di Azure.

Sono disponibili due tipi di preferenze di scrittura: i trasferimenti incrementali e trasferimenti troncati.

Trasferimenti incrementali

Una configurazione di trasferimento con una scrittura APPEND o WRITE_APPEND la preferenza, chiamata anche trasferimento incrementale, aggiunge in modo incrementale nuovi dati dal precedente trasferimento riuscito a una destinazione BigQuery . Quando viene eseguita una configurazione di trasferimento con una preferenza di scrittura APPEND, il Filtri di BigQuery Data Transfer Service per i file modificati a partire dalla precedente esecuzione di trasferimento riuscita. Per determinare quando viene modificato un file, BigQuery Data Transfer Service esamina i metadati dei file per conoscere l'ora dell'ultima modifica. proprietà. Ad esempio, BigQuery Data Transfer Service esamina la proprietà timestamp updated in un file Cloud Storage. Se BigQuery Data Transfer Service trova i file con l'ora dell'ultima modifica che hanno dopo il timestamp dell'ultimo trasferimento riuscito, BigQuery Data Transfer Service trasferisce questi file in un trasferimento incrementale.

Per dimostrare come funzionano i trasferimenti incrementali, considera quanto segue: Esempio di trasferimento in Cloud Storage. Un utente crea un file in un Bucket Cloud Storage all'ora 2023-07-01T00:00Z denominato file_1. La Il timestamp di updated per file_1 è l'ora in cui è stato creato il file. L'utente quindi crea un trasferimento incrementale dal bucket Cloud Storage, programmata per essere eseguita una volta al giorno alle 03:00Z, a partire dal 2023-07-01T03:00Z.

  • Il 01-07-2023T03:00Z inizia la prima esecuzione di trasferimento. Poiché questa è la prima per questa configurazione, BigQuery Data Transfer Service tenta di carica tutti i file corrispondenti all'URI di origine nella destinazione Tabella BigQuery. L'esecuzione del trasferimento ha esito positivo BigQuery Data Transfer Service carica correttamente file_1 nella destinazione Tabella BigQuery.
  • La successiva esecuzione di trasferimento, alle 2023-07-02T03:00Z, non rileva file in cui La proprietà timestamp updated è maggiore rispetto all'ultima esecuzione di trasferimento andata a buon fine (01-07-2023T03:00Z). L'esecuzione del trasferimento riesce senza caricare altri dati nella destinazione Tabella BigQuery.

L'esempio precedente mostra come BigQuery Data Transfer Service esamina le Proprietà timestamp updated del file di origine per determinare se sono state apportate modifiche apportate ai file di origine e di trasferire le eventuali modifiche rilevate.

Seguendo lo stesso esempio, supponiamo che l'utente crei un altro file in il bucket Cloud Storage alle ore 2023-07-03T00:00Z, denominato file_2. La Il timestamp di updated per file_2 è l'ora in cui è stato creato il file.

  • La successiva esecuzione di trasferimento, alle 2023-07-03T03:00Z, rileva che file_2 ha un Timestamp updated maggiore dell'ultima esecuzione di trasferimento riuscita (2023-07-01T03:00Z). Supponiamo che all'avvio dell'esecuzione del trasferimento non vada a buon fine a causa un errore temporaneo. In questo scenario, file_2 non viene caricato nel tabella BigQuery di destinazione. Ultimo trasferimento riuscito il timestamp dell'esecuzione rimane su 2023-07-01T03:00Z.
  • La successiva esecuzione di trasferimento, alle 2023-07-04T03:00Z, rileva che file_2 ha un Timestamp updated maggiore dell'ultima esecuzione di trasferimento riuscita (2023-07-01T03:00Z). Questa volta l'esecuzione del trasferimento viene completata senza problemi, carica correttamente file_2 nella tabella BigQuery di destinazione.
  • La successiva esecuzione di trasferimento, alle 2023-07-05T03:00Z, non rileva file in cui Il timestamp updated è maggiore dell'ultima esecuzione di trasferimento riuscita (2023-07-04T03:00Z). L'esecuzione del trasferimento riesce senza caricare altri dati nella tabella BigQuery di destinazione.

L'esempio precedente mostra che quando un trasferimento non va a buon fine, nessun file viene trasferiti nella tabella di destinazione BigQuery. Qualsiasi modifica ai file vengono trasferiti alla successiva esecuzione riuscita. Qualsiasi data trasferimenti riusciti a seguito di un trasferimento non riuscito non provoca duplicati e i dati di Google Cloud. Nel caso di un trasferimento non riuscito, puoi anche scegliere di attivare manualmente un trasferimento. al di fuori del suo orario regolare.

Trasferimenti troncati

Una configurazione di trasferimento con una scrittura MIRROR o WRITE_TRUNCATE la preferenza, chiamata anche "trasferimento troncato", sovrascrive i dati nella Tabella di destinazione BigQuery durante ogni esecuzione di trasferimento con dati da tutti i file corrispondenti all'URI di origine. MIRROR sovrascrive una nuova copia di nella tabella di destinazione. Se la tabella di destinazione utilizza una partizione decorator, l'esecuzione del trasferimento sovrascrive solo i dati nella partizione specificata. R con un decorator della partizione, ha il formato my_table${run_date}, ad esempio my_table$20230809.

La ripetizione degli stessi trasferimenti incrementali o troncati in un giorno non causa duplicati. Tuttavia, se esegui più trasferimenti diversi che interessano la stessa tabella di destinazione BigQuery, Questo può causare la duplicazione dei dati da parte di BigQuery Data Transfer Service.

Supporto dei caratteri jolly per il percorso dei dati di Archiviazione BLOB

Puoi selezionare dati di origine separati in più file specificando uno o più caratteri jolly asterisco (*) nel percorso dei dati.

Sebbene sia possibile utilizzare più caratteri jolly nel percorso dei dati, una certa ottimizzazione è possibile quando viene utilizzato un solo carattere jolly:

  • Esiste un limite più elevato per il numero massimo di file. per esecuzione di trasferimento.
  • Il carattere jolly estenderà i limiti della directory. Ad esempio, il percorso dati my-folder/*.csv corrisponderà al file my-folder/my-subfolder/my-file.csv.

Esempi di percorsi dati di archiviazione BLOB

Di seguito sono riportati esempi di percorsi di dati validi per un'archiviazione BLOB trasferimento. Tieni presente che i percorsi dei dati non iniziano con /.

Esempio: file singolo

Per caricare un singolo file da Archiviazione BLOB in BigQuery, specifica il nome file di Archiviazione BLOB:

my-folder/my-file.csv

Esempio: Tutti i file

Per caricare tutti i file da un container Blob Storage in BigQuery, imposta il percorso dei dati su un singolo carattere jolly:

*

Esempio: file con un prefisso comune

Per caricare da Archiviazione BLOB tutti i file che condividono un prefisso comune: specifica il prefisso comune con o senza un carattere jolly:

my-folder/

o

my-folder/*

Esempio: file con un percorso simile

Per caricare tutti i file da Archiviazione BLOB con un percorso simile, specifica il prefisso e il suffisso comuni:

my-folder/*.csv

Quando utilizzi un solo carattere jolly, questo estende le directory. In questo esempio, sono stati selezionati tutti i file CSV in my-folder e tutti i file CSV in ogni sottocartella di my-folder.

Esempio: carattere jolly alla fine del percorso

Considera il seguente percorso dei dati:

logs/*

Sono selezionati tutti i seguenti file:

logs/logs.csv
logs/system/logs.csv
logs/some-application/system_logs.log
logs/logs_2019_12_12.csv

Esempio: carattere jolly all'inizio del percorso

Considera il seguente percorso dei dati:

*logs.csv

Sono selezionati tutti i seguenti file:

logs.csv
system/logs.csv
some-application/logs.csv

E nessuno dei seguenti file è selezionato:

metadata.csv
system/users.csv
some-application/output.csv

Esempio: più caratteri jolly

Utilizzando più caratteri jolly, ottieni un maggiore controllo sulla selezione dei file, Costo dei limiti inferiori. Quando utilizzi più caratteri jolly, ogni singolo carattere jolly copre solo una singola sottodirectory.

Considera il seguente percorso dei dati:

*/*.csv

Vengono selezionati entrambi i seguenti file:

my-folder1/my-file1.csv
my-other-folder2/my-file2.csv

E nessuno dei seguenti file è selezionato:

my-folder1/my-subfolder/my-file3.csv
my-other-folder2/my-subfolder/my-file4.csv

Firma di accesso condiviso

Il token di Azure SAS viene utilizzato per accedere ai dati di archiviazione BLOB sul tuo per conto tuo. Per creare un token SAS per il trasferimento:

  1. Crea o utilizza un utente di Archiviazione BLOB esistente per accedere al di archiviazione per il tuo container BLOB.
  2. Crea un token SAS a livello di account di archiviazione. Per creare un token SAS usando il portale Azure, segui questi passaggi:

    1. In Servizi consentiti, seleziona Blob.
    2. Per Tipi di risorse consentiti, seleziona sia Container che Object.
    3. In Autorizzazioni consentite, seleziona Lettura ed Elenco.
    4. La scadenza predefinita per i token SAS è di 8 ore. Imposta una scadenza in base all'orario programmato per i trasferimenti.
    5. Non specificare alcun indirizzo IP nel campo Indirizzi IP consentiti.
    6. Per Protocolli consentiti, seleziona Solo HTTPS.

    SAS portale Azure

  3. Dopo aver creato il token SAS, controlla il valore del token SAS. restituito. Questo valore è necessario quando configuri i trasferimenti.

Limitazioni IP

Se limiti l'accesso alle tue risorse Azure usando un firewall di Archiviazione di Azure, devi aggiungere gli intervalli IP utilizzati dai worker di BigQuery Data Transfer Service degli IP consentiti.

Per aggiungere intervalli IP come IP consentiti ai firewall di Archiviazione di Azure, consulta Restrizioni relative agli IP.

Considerazioni sulla coerenza

Occorrono circa 10 minuti prima che un file sia disponibile BigQuery Data Transfer Service dopo l'aggiunta all'archiviazione BLOB containerizzato.

Best practice per il controllo dei costi del traffico in uscita

I trasferimenti dall'archiviazione BLOB potrebbero non riuscire se la tabella di destinazione è non è configurato correttamente. Le possibili cause di una configurazione non corretta sono: le seguenti:

  • La tabella di destinazione non esiste.
  • Lo schema della tabella non è definito.
  • Lo schema della tabella non è compatibile con i dati trasferiti.

Per evitare costi aggiuntivi per il traffico in uscita da archiviazione BLOB, testa prima un trasferimento con un sottoinsieme ridotto ma rappresentativo di file. Assicurati che questo test sia di dimensioni ridotte sia per la dimensione dei dati che per il numero di file.

È importante notare inoltre che la corrispondenza dei prefissi per i percorsi di dati avviene prima vengono trasferiti da Archiviazione BLOB, ma la corrispondenza con caratteri jolly avvengono all'interno di Google Cloud. Questa distinzione potrebbe aumentare Costi di traffico in uscita da Archiviazione BLOB per i file trasferiti Google Cloud, ma non caricato in BigQuery.

Considera ad esempio questo percorso dati:

folder/*/subfolder/*.csv

Entrambi i file seguenti vengono trasferiti in Google Cloud, hanno il prefisso folder/:

folder/any/subfolder/file1.csv
folder/file2.csv

Tuttavia, solo il file folder/any/subfolder/file1.csv viene caricato in a BigQuery, perché corrisponde al percorso dei dati completo.

Prezzi

Per ulteriori informazioni, vedi Prezzi di BigQuery Data Transfer Service.

L'utilizzo di questo servizio può anche comportare costi esterni a Google. Per ulteriori informazioni le informazioni, vedi Prezzi dell'archiviazione BLOB.

Quote e limiti

BigQuery Data Transfer Service utilizza i job di caricamento per caricare l'archiviazione BLOB in BigQuery. Tutto BigQuery quote e limiti sul carico si applicano a trasferimenti ricorrenti di Archiviazione BLOB, con quanto segue considerazioni aggiuntive:

Limite Predefinito
Dimensione massima per esecuzione di trasferimento del job di caricamento 15 TB
Numero massimo di file per esecuzione di trasferimento quando Il percorso dei dati di Archiviazione BLOB include 0 o 1 caratteri jolly 10.000.000 file
Numero massimo di file per esecuzione di trasferimento quando Il percorso dei dati di Archiviazione BLOB include due o più caratteri jolly 10.000 file

Passaggi successivi