Eseguire query sui dati delle colonne

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_QUERY specifica la connessione esterna e il set di dati, my-project.us.albums.
  • Il secondo argomento è una query SQL che seleziona MarketingBudget dalla tabella AlbumInfo dove MarketingBudget è inferiore a 500.000.
  • Il suggerimento @{scan_method=columnar} ottimizza la query esterna per la scansione a colonne.
  • L'istruzione SELECT esterna calcola la somma dei valori MarketingBudget restituiti dalla query esterna.
  • La clausola AS total_marketing_spend assegna 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