Cette page explique comment exécuter des requêtes sur des données en colonnes.
Interroger des données en colonnes
Le moteur de requêtes Spanner analyse les requêtes et sélectionne automatiquement le format en colonnes s'il est avantageux. Toutefois, plusieurs classes de requêtes peuvent encore avoir besoin de l'indicateur de requête pour utiliser le format en colonnes. Voici des exemples d'utilisation de l'indicateur 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';
De plus, vous pouvez désactiver explicitement la sélection automatique de colonnes à l'aide de l'indicateur de requête @{scan_method=no_columnar}.
Interroger des données en colonnes Spanner à l'aide de requêtes fédérées BigQuery
Pour lire des données en colonnes Spanner à partir de BigQuery, vous pouvez
créer un ensemble de données externe
ou utiliser la
EXTERNAL_QUERY
fonction.
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'indicateur @{scan_method=columnar} dans la requête Spanner imbriquée.
Dans l'exemple suivant, l'indicateur de requête est utilisé :
- 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 tableAlbumInfolorsqueMarketingBudgetest inférieur à 500 000. - L'indicateur
@{scan_method=columnar}optimise la requête externe pour l'analyse en 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;');
Étape suivante
- 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.