Interroger les données Blob Storage
Ce document explique comment interroger des données stockées dans une table BigLake Azure Blob Storage.
Avant de commencer
Assurez-vous de disposer d'une table BigLake Blob Storage.
Rôles requis
Pour interroger des tables BigLake Blob Storage, assurez-vous que l'appelant de l'API BigQuery dispose des rôles suivants :
- Utilisateur de connexion BigQuery (
roles/bigquery.connectionUser
) - Lecteur de données BigQuery (
roles/bigquery.dataViewer
) - Utilisateur BigQuery (
roles/bigquery.user
)
L'appelant peut être votre compte ou un compte de service de connexion Blob Storage. Selon vos autorisations, vous pouvez vous attribuer ces rôles ou demander à votre administrateur de vous les accorder. Pour en savoir plus sur l'attribution de rôles, consultez la page Afficher les rôles pouvant être attribués sur des ressources.
Pour afficher les autorisations exactes requises pour interroger des tables BigLake Blob Storage, développez la section Autorisations requises :
Autorisations requises
bigquery.connections.use
bigquery.jobs.create
bigquery.readsessions.create
(obligatoire seulement si vous lisez des données avec l'API BigQuery Storage Read)bigquery.tables.get
bigquery.tables.getData
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Interroger les tables BigLake Blob Storage
Après avoir créé une table BigLake Blob Storage, vous pouvez l'interroger à l'aide d'une syntaxe GoogleSQL, comme pour une table BigQuery standard.
Les résultats de requêtes mis en cache sont stockés dans une table temporaire BigQuery. Pour interroger une table BigLake temporaire, consultez la page Interroger une table BigLake temporaire. Pour en savoir plus sur les limites et les quotas de BigQuery Omni, consultez les limites et les quotas.
Lorsque vous créez une réservation dans une région BigQuery Omni, utilisez l'édition Enterprise. Pour savoir comment créer une réservation avec une édition, consultez la section Créer des réservations.
Exécutez une requête sur la table BigLake Blob Storage :
Dans la console Google Cloud, accédez à la page BigQuery.
Dans l'éditeur de requête, saisissez l'instruction suivante :
SELECT * FROM DATASET_NAME.TABLE_NAME;
Remplacez les éléments suivants :
DATASET_NAME
: nom d'ensemble de données que vous avez créé.TABLE_NAME
: nom de table BigLake que vous avez créé.Cliquez sur
Exécuter.
Pour en savoir plus sur l'exécution des requêtes, consultez Exécuter une requête interactive.
Interroger une table temporaire
BigQuery crée des tables temporaires pour stocker les résultats de requête. Pour récupérer le résultat de la requête à partir de tables temporaires, vous pouvez utiliser la console Google Cloud ou l'API BigQuery.
Sélectionnez l'une des options suivantes :
Console
Lorsque vous interrogez une table BigLake qui référence des données cloud externes, vous pouvez consulter les résultats de la requête affichés dans la console Google Cloud.
API
Pour interroger une table BigLake en utilisant l'API, procédez comme suit :
- Créez un objet Job.
- Appeler la méthode
jobs.insert
pour exécuter la requête de manière asynchrone ou la méthodejobs.query
pour exécuter la requête de manière synchrone, en transmettant l'objetJob
. - Lisez les lignes à l'aide de
jobs.getQueryResults
en transmettant la référence de job donnée, et les méthodestabledata.list
en transmettant la référence de table donnée du résultat de la requête.
Interroger la pseudo-colonne _FILE_NAME
Les tables basées sur des sources de données externes donnent accès à une pseudo-colonne intitulée _FILE_NAME
. Cette colonne contient le chemin d'accès complet du fichier auquel appartient la ligne. Elle n'est disponible que pour les tables qui font référence à des données externes stockées dans Cloud Storage, Google Drive, Amazon S3 et Azure Blob Storage.
Le nom de colonne _FILE_NAME
est réservé. Vous ne pouvez donc pas créer de colonne portant ce nom dans vos tables. Pour sélectionner la valeur de _FILE_NAME
, vous devez utiliser un alias. Par exemple, la requête suivante sélectionne _FILE_NAME
en attribuant l'alias fn
à la pseudo-colonne.
bq query \
--project_id=PROJECT_ID \
--use_legacy_sql=false \
'SELECT
name,
_FILE_NAME AS fn
FROM
`DATASET.TABLE_NAME`
WHERE
name contains "Alex"'
Remplacez les éléments suivants :
-
PROJECT_ID
correspond à un ID de projet valide (cette option n'est pas obligatoire si vous utilisez Cloud Shell ou si vous définissez un projet par défaut dans la Google Cloud CLI). -
DATASET
correspond au nom de l'ensemble de données où est stockée la table externe permanente. -
TABLE_NAME
est le nom de la table externe permanente.
Lorsque la requête comporte un prédicat de filtre sur la pseudo-colonne _FILE_NAME
, BigQuery tente d'ignorer les fichiers qui ne correspondent pas au filtre. Des recommandations similaires pour interroger des tables partitionnées par date d'ingestion à l'aide de pseudo-colonnes s'appliquent lors de la construction de prédicats de requête avec la pseudo-colonne _FILE_NAME
.
Étape suivante
- Découvrez comment utiliser SQL dans BigQuery.
- Découvrez BigQuery Omni.
- Obtenez davantage d'informations sur les quotas BigQuery.