Interroger des données en colonnes

Cette page explique comment exécuter des requêtes sur des données en colonnes.

Interroger des données en colonnes

L'indicateur de requête @{scan_method=columnar} permet à une requête de lire des données en colonnes. Vous pouvez définir l'indication scan_method au niveau de l'instruction ou au niveau de la table.

Par exemple, vous pouvez utiliser les requêtes suivantes pour lire les données en colonnes des tables Singers et Messages :

  • @{scan_method=columnar} SELECT COUNT(*) FROM Singers;
  • SELECT COUNT(*) FROM Singers @{scan_method=columnar};
  • @{scan_method=columnar} SELECT m.MsgBlob FROM Messages WHERE m.id='1234';

Interroger des données Spanner en colonnes à l'aide de requêtes fédérées BigQuery

Pour lire des données Spanner en colonnes depuis BigQuery, vous pouvez créer un ensemble de données externe ou utiliser la fonction EXTERNAL_QUERY.

Lorsque vous interrogez des ensembles de données externes, les données en colonnes sont automatiquement utilisées si elles sont disponibles et adaptées à votre requête.

Si vous utilisez la fonction EXTERNAL_QUERY, incluez l'indication @{scan_method=columnar} dans la requête Spanner imbriquée.

Dans l'exemple suivant :

  • Le premier argument de EXTERNAL_QUERY spécifie la connexion et l'ensemble de données externes, my-project.us.albums.
  • Le deuxième argument est une requête SQL qui sélectionne MarketingBudget dans la table AlbumInfoMarketingBudget est inférieur à 500 000.
  • L'indice @{scan_method=columnar} optimise la requête externe pour l'analyse par colonnes.
  • L'instruction SELECT externe calcule la somme des valeurs MarketingBudget renvoyées par la requête externe.
  • La clause AS total_marketing_spend attribue un alias à la somme calculée.
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;');

Étapes suivantes