Cette page explique comment exécuter des requêtes sur des données en colonnes.
Interroger les données en colonnes
Le moteur de requête Spanner analyse les requêtes et sélectionne automatiquement le format en colonnes si cela est avantageux. Toutefois, plusieurs classes de requêtes peuvent encore avoir besoin de l'indication de requête pour utiliser le format en colonnes. Voici des exemples d'utilisation de l'indication de requête @{scan_method=columnar} :
@{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';
Vous pouvez également désactiver explicitement la sélection automatique de columnar en utilisant l'indication de requête @{scan_method=no_columnar}.
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, Spanner utilise automatiquement les données en colonnes si elles sont disponibles et adaptées à la charge de travail.
Vous pouvez également inclure l'indice @{scan_method=columnar} dans la requête Spanner imbriquée.
Dans l'exemple suivant d'utilisation de l'indication de requête :
- 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
- Apprenez-en davantage sur le moteur de données en colonnes.
- Découvrez comment activer le moteur de données en colonnes.
- Découvrez comment surveiller le moteur de données en colonnes.