Esegui query e analizza i dati di Bigtable con BigQuery

BigQuery è un data warehouse gestito che può aiutarti a eseguire query e analizzare i dati di Bigtable utilizzando query SQL. BigQuery è utile per analisti di dati, data engineer, data data scientist o utenti che vogliono utilizzare i dati Bigtable aziendali.

BigQuery consente di eseguire query sui dati Bigtable da BigQuery. Questa funzionalità è utile quando vuoi unire i dati di Bigtable alle tabelle BigQuery.

Questo documento fornisce una panoramica delle query sui dati di Bigtable con BigQuery. Prima di leggere questa pagina, dovresti conoscere il Panoramica di Bigtable e Panoramica di BigQuery

L'utilizzo di BigQuery per eseguire query su una tabella Bigtable è ideale per le tabelle che hanno le stesse famiglie di colonne e gli stessi qualificatori di colonna in ogni riga.

Creazione di tabelle esterne

Prima di poter eseguire query sui dati di Bigtable, tu o un amministratore della tua organizzazione dovete creare una tabella esterna, ovvero una tabella BigQuery contenente puntatori ai metadati della tabella Bigtable a cui invii le query. Per saperne di più sulle tabelle esterne, consulta Introduzione alle origini dati esterne.

Devi creare la tabella esterna nella stessa regione del Bigtable. Ciò significa, ad esempio, che se la tabella si trova un'istanza con cluster in europe-central2-a (Varsavia), europe-west1-c (Belgio) e asia-east1-a (Tokyo), devi creare la tabella esterna a Varsavia, in Belgio o a Tokyo.

Nella maggior parte dei casi, quando crei una tabella esterna, imposta readRowkeyAsString e ignoreUnspecifiedColumnFamilies su true.

Quando ignoreUnspecifiedColumnFamilies è true, durante la creazione di una tabella definizione che include solo alcune colonne in una famiglia di colonne, solo le colonne selezionate vengono promosse come colonne nella tabella esterna. Dati nella classe non selezionata vengono raggruppate in una colonna column generale.

Per creare la tabella esterna, segui le istruzioni alla pagina Crea una tabella esterna di Bigtable.

Esegui query sui dati nella tabella esterna

Dopo aver creato una tabella esterna per la tabella Bigtable, può inviare query SQL utilizzando uno dei seguenti metodi:

Per scoprire come scrivere ed eseguire una query, vedi Esegui una query. Per istruzioni specifiche su Bigtable, incluse le autorizzazioni richieste e i sample di codice, consulta Eseguire query sui dati di Bigtable.

Query programmate

Le query pianificate sono utili quando vuoi importare i dati di Bigtable in BigQuery su base ricorrente. Sono anche utili per i casi d'uso che altrimenti potrebbero richiedere la creazione di una pipeline di dati inviare i dati in modalità flusso a BigQuery. Per istruzioni sulla gestione le query pianificate, vedi Pianificazione delle query.

Evita scansioni complete delle tabelle

Come quando invii richieste di lettura direttamente alla tabella Bigtable, in genere è consigliabile evitare le scansioni complete della tabella quando esegui query sulla tabella esterna. Le scansioni complete delle tabelle aumentano l'utilizzo della CPU e notevolmente più lunghi rispetto a query selettive. Inoltre, richiedono una maggiore Throughput di BigQuery.

Se la query riguarda tutte le righe, attiva una scansione completa della tabella. Dall'altra parte mano, se limiti la query e richiedi un intervallo di righe o non contigue, l'intera tabella non viene analizzata. Esempi in La sintassi di GoogleSQL per la limitazione della query include quanto segue:

  • WHERE rowkey = "abc123"
  • WHERE rowkey BETWEEN "abc123" PRECEDING AND "abc999" FOLLOWING
  • WHERE rowkey > 999999 (se leggi la chiave di riga come stringa)

Unioni

Se prevedi di utilizzare un join per analizzare i dati della tabella Bigtable in combinazione con i dati di un'altra origine, devi creare una sottoquery estrae i campi pertinenti da Bigtable per il join pianificato. Per altre best practice per l'unione delle tabelle, vedi Ottimizza il calcolo delle query.

Costi

Quando crei una tabella esterna ed esegui query su di essa, ti vengono addebitati i costi costi di BigQuery e per un aumento del numero Nodi Bigtable necessari per gestire il traffico. Poiché la tabella esterna si trova nella stessa regione della tabella Bigtable non vengono addebitati costi di rete.

Se tendi a eseguire le query durante il normale orario di lavoro, abilitando la scalabilità automatica di Bigtable in modo che il numero di nodi aumenta se necessario e diminuisce quando i job vengono completati. La scalabilità automatica è una tattica efficace anche se esegui query pianificate che non hanno scadenze rigide.

Un altro modo per limitare i costi è evitare una scansione completa della tabella.

Per ulteriori informazioni sull'ottimizzazione dei costi per BigQuery, consulta Stima e controllo dei costi.

Limitazioni

Si applicano le seguenti limitazioni:

  • Non puoi utilizzare BigQuery per eseguire query su Bigtable archiviati in formato JSON.
  • Risultati delle query contenenti dati serializzati con tipi nidificati, come come il buffer di protocollo (protobuf) e i formati Avro, potrebbero essere visualizzati o essere difficili da leggere nella console Google Cloud.

Passaggi successivi