Cette page explique comment exécuter des requêtes sur des données en colonnes.
Interroger des données en colonnes
L'indication 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_QUERYspé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
MarketingBudgetdans la tableAlbumInfooùMarketingBudgetest inférieur à 500 000. - L'indice
@{scan_method=columnar}optimise la requête externe pour l'analyse par colonnes. - L'instruction
SELECTexterne calcule la somme des valeursMarketingBudgetrenvoyées par la requête externe. - La clause
AS total_marketing_spendattribue 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
- En savoir plus sur le moteur de données en colonnes
- Découvrez comment activer le moteur en colonnes.
- Découvrez comment surveiller le moteur en colonnes.