Questa pagina descrive come eseguire query sui dati a colonne.
Esegui query sui dati a colonne
Il motore di query di Spanner analizza le query e seleziona automaticamente il formato a colonne se è vantaggioso. Tuttavia, diverse classi di query potrebbero comunque richiedere il suggerimento di query per utilizzare il formato a colonne. Di seguito sono riportati esempi di come utilizzare il suggerimento di query @{scan_method=columnar}:
GoogleSQL
@{scan_method=columnar} SELECT COUNT(*) FROM Singers;SELECT COUNT(*) FROM Singers @{scan_method=columnar};@{scan_method=columnar} SELECT MsgBlob FROM Messages WHERE id='1234';
Postgres
/*@ scan_method=columnar */ SELECT COUNT(*) FROM "Singers";SELECT COUNT(*) FROM "Singers" /*@ scan_method=columnar*/;/*@ scan_method=columnar */ SELECT "MsgBlob" FROM "Messages" WHERE id ='1234';
Inoltre, puoi disattivare esplicitamente la selezione automatica delle colonne utilizzando il suggerimento di query @{scan_method=no_columnar}.
Esegui query sui dati a colonne di Spanner utilizzando le query federate di BigQuery
Per leggere i dati a colonne di Spanner da BigQuery, puoi
creare un set di dati esterno
o utilizzare la
EXTERNAL_QUERY
funzione.
Quando esegui query sui set di dati esterni, i dati a colonne vengono utilizzati automaticamente se sono disponibili e adatti alla query.
Se utilizzi la funzione EXTERNAL_QUERY, Spanner utilizza automaticamente i dati a colonne se sono disponibili e appropriati per il carico di lavoro.
Puoi anche includere il suggerimento @{scan_method=columnar} nella query Spanner nidificata.
Nell'esempio seguente per l'utilizzo del suggerimento di query:
- Il primo argomento di
EXTERNAL_QUERYspecifica la connessione esterna e il set di dati,my-project.us.albums. - Il secondo argomento è una query SQL che seleziona
MarketingBudgetdalla tabellaAlbumInfodoveMarketingBudgetè inferiore a 500.000. - Il suggerimento
@{scan_method=columnar}ottimizza la query esterna per la scansione a colonne. - L'istruzione
SELECTesterna calcola la somma dei valoriMarketingBudgetrestituiti dalla query esterna. - La clausola
AS total_marketing_spendassegna un alias alla somma calcolata.
SELECT SUM(MarketingBudget) AS total_marketing_spend
FROM
EXTERNAL_QUERY(
'my-project.us.albums',
'@{scan_method=columnar} SELECT AlbumInfo.MarketingBudget FROM AlbumInfo WHERE AlbumInfo.MarketingBudget < 500000;');
Passaggi successivi
- Scopri di più sul motore a colonne .
- Scopri come attivare il motore a colonne.
- Scopri come monitorare il motore a colonne.