Introduzione alle origini dati esterne

Questa pagina fornisce una panoramica dell'esecuzione di query sui dati archiviati al di fuori di BigQuery.

Un'origine dati esterna è un'origine dati in cui puoi eseguire query direttamente da BigQuery, anche se i dati non vengono archiviati in BigQuery. Ad esempio, potresti avere dati in un database Google Cloud diverso, in file di Cloud Storage o in un prodotto cloud completamente diverso che vorresti analizzare in BigQuery, ma che non sei pronto per la migrazione.

Ecco alcuni casi d'uso per le origini dati esterne:

  • Per i carichi di lavoro ELT (estrazione, trasformazione e caricamento), caricare e pulire i dati in un solo passaggio e scrivere il risultato pulito nello spazio di archiviazione di BigQuery utilizzando una query CREATE TABLE ... AS SELECT.
  • Unione di tabelle BigQuery con dati modificati di frequente provenienti da origini dati esterne. Se esegui una query direttamente sull'origine dati esterna, non devi ricaricare i dati nello spazio di archiviazione BigQuery ogni volta che viene modificata.

BigQuery prevede due diversi meccanismi per eseguire query su dati esterni: tabelle esterne e query federate.

Tabelle esterne

Le tabelle esterne sono simili alle tabelle BigQuery standard, in quanto archiviano i metadati e lo schema nell'archiviazione BigQuery. Tuttavia, i loro dati risiedono in un'origine esterna.

Le tabelle esterne sono contenute in un set di dati e puoi gestirle nello stesso modo in cui gestisci una tabella BigQuery standard. Ad esempio, puoi visualizzare le proprietà della tabella, impostare i controlli di accesso e così via. Puoi eseguire query su queste tabelle e nella maggior parte dei casi puoi unirle ad altre tabelle.

Esistono quattro tipi di tabelle esterne:

  • Tavoli BigLake
  • Tabelle BigQuery Omni
  • Tabelle di oggetti
  • Tabelle esterne non BigLake

Tavoli BigLake

Le tabelle BigLake consentono di eseguire query su dati strutturati in datastore esterni con delega dell'accesso. Delega accesso disaccoppia l'accesso alla tabella BigLake dall'accesso al datastore sottostante. Una connessione esterna associata a un account di servizio viene utilizzata per connettersi al datastore. Poiché l'account di servizio gestisce il recupero dei dati dal datastore, devi concedere agli utenti solo l'accesso alla tabella BigLake. In questo modo puoi applicare una sicurezza granulare a livello di tabella, inclusa la sicurezza a livello di riga e di colonna. Per le tabelle BigLake basate su Cloud Storage, puoi anche utilizzare il mascheramento dinamico dei dati. Per scoprire di più sulle soluzioni di analisi multi-cloud che utilizzano le tabelle BigLake con dati di Amazon S3 o Blob Storage, consulta BigQuery Omni.

Per ulteriori informazioni, consulta Introduzione alle tabelle BigLake.

Tabelle di oggetti

Le tabelle degli oggetti consentono di analizzare i dati non strutturati in Cloud Storage. Puoi eseguire l'analisi con funzioni remote o eseguire l'inferenza utilizzando BigQuery ML, quindi unire i risultati di queste operazioni con il resto dei dati strutturati in BigQuery.

Come per le tabelle BigLake, le tabelle di oggetti utilizzano la delega di accesso, che disaccoppia l'accesso alla tabella degli oggetti dall'accesso agli oggetti Cloud Storage. Una connessione esterna associata a un account di servizio viene utilizzata per connettersi a Cloud Storage, quindi devi concedere agli utenti solo l'accesso alla tabella degli oggetti. In questo modo puoi applicare la sicurezza a livello di riga e gestire gli oggetti a cui gli utenti hanno accesso.

Per ulteriori informazioni, consulta Introduzione alle tabelle degli oggetti.

Tabelle esterne non BigLake

Le tabelle esterne non BigLake consentono di eseguire query su dati strutturati in datastore esterni. Per eseguire query su una tabella esterna non BigLake, devi disporre delle autorizzazioni sia per la tabella esterna che per l'origine dati esterna. Ad esempio, per eseguire query su una tabella esterna non BigLake che utilizza un'origine dati in Cloud Storage, devi disporre delle seguenti autorizzazioni:

  • bigquery.tables.getData
  • bigquery.jobs.create
  • storage.buckets.get
  • storage.objects.get

Per maggiori informazioni, consulta Introduzione alle tabelle esterne.

Query federate

Le query federate ti consentono di inviare un'istruzione di query ai database AlloyDB, Spanner o Cloud SQL e ottenere il risultato come tabella temporanea. Le query federate utilizzano l'API BigQuery Connection per stabilire una connessione con AlloyDB, Spanner o Cloud SQL. Nella query, utilizzerai la funzione EXTERNAL_QUERY per inviare un'istruzione di query al database esterno utilizzando il dialetto SQL di quel database. I risultati vengono convertiti in tipi di dati GoogleSQL.

Per ulteriori informazioni, consulta Introduzione alle query federate.

Confronto delle funzionalità dell'origine dati esterna

La tabella seguente mette a confronto il comportamento delle origini dati esterne:

Tavoli BigLake Tabelle di oggetti Tabelle esterne non BigLake Query federate
Utilizza la delega di accesso Sì, tramite un account di servizio Sì, tramite un account di servizio No Sì, tramite un account utente di database (solo Cloud SQL)
Possono essere basati su più URI di origine Sì (solo Cloud Storage) Non applicabile
Mappatura righe Le righe rappresentano i contenuti dei file Le righe rappresentano i metadati dei file Le righe rappresentano i contenuti dei file Non applicabile
Accessibile da altri strumenti di elaborazione dati tramite l'utilizzo dei connettori Sì (solo Cloud Storage) No Non applicabile
Può essere unito ad altre tabelle BigQuery Sì (solo Cloud Storage) Yes
Accessibili come tabella temporanea Sì (solo Cloud Storage) No
Compatibile con Amazon S3 Yes No No No
Funziona con Archiviazione di Azure Yes No No No
Compatibile con Bigtable No No Yes No
Compatibile con Spanner No No No Yes
Compatibile con Cloud SQL No No No Yes
Funziona con Google Drive No No Yes No
Compatibile con Cloud Storage Yes Yes Yes No

Passaggi successivi