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 tableAlbumInfo
oùMarketingBudget
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 valeursMarketingBudget
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
- 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.