Créer des sessions
Ce document explique comment créer des sessions dans BigQuery. Il est destiné aux utilisateurs qui connaissent déjà les sessions BigQuery.
Créer une session
Si vous souhaitez capturer un groupe de vos activités SQL, créez une session BigQuery. Une fois la session créée, vous pouvez exécuter des requêtes interactives dans votre session jusqu'à son arrêt. Toutes les requêtes de la session sont exécutées (traitées) à l'emplacement où la session a été créée.
Avant de suivre ces étapes, assurez-vous de disposer des autorisations nécessaires pour créer une session.
Console
Dans la console Google Cloud, chaque session est attribuée à un onglet d'éditeur.
Dans la console Google Cloud, accédez à la page BigQuery.
Cliquez sur
Saisir une nouvelle requête. Un onglet Éditeur s'affiche.Cliquez sur Plus > Paramètres de requête. Le panneau Paramètres de requête s'affiche.
Dans la section Gestion des sessions, cliquez sur Utiliser le mode session pour activer le mode session.
Dans Paramètres supplémentaires > Emplacement des données, sélectionnez l'emplacement. Une fois une session créée, toutes les requêtes de la session sont limitées à cet emplacement et l'emplacement ne peut pas être modifié.
Cliquez sur Enregistrer.
Écrivez une requête dans l'onglet de l'éditeur et exécutez-la. La nouvelle session est créée après l'exécution de cette première requête.
bq
Ouvrez Cloud Shell, puis saisissez la commande bq query
suivante:
bq query \ --nouse_legacy_sql \ --create_session [--location 'SESSION_LOCATION'] \ 'SQL_STATEMENT'
où :
- SESSION_LOCATION: lie la session à un emplacement physique. Limitez toutes les requêtes de la session à cet emplacement. Facultatif.
- SQL_STATEMENT: première instruction SQL de votre session.
Tester votre session
Créez une session avec une table temporaire à l'aide de la commande suivante:
bq query \
--nouse_legacy_sql \
--create_session \
--location 'asia-northeast1' \
'SELECT 1;'
Assurez-vous que des résultats similaires à ceux-ci sont produits:
In session: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
API
Appelez la méthode jobs.insert ou jobs.query avec une ressource de tâches définie.
jobs.insert
Appelez la méthode jobs.insert
avec les paramètres suivants :
{ "jobReference": { "projectId": "PROJECT_ID", "jobId": "JOB_ID", ["location": "SESSION_LOCATION"] }, "configuration": { "query": { "query": "SQL_STATEMENT", "createSession": { "value": true } } } }
où :
- PROJECT_ID: projet pour lequel créer la session.
- JOB_ID: tâche pour laquelle créer la session.
- SESSION_LOCATION: lie la session à un emplacement physique. Limitez toutes les requêtes de la session à cet emplacement. Facultatif.
- SQL_STATEMENT: première instruction SQL de votre session.
Tester votre session
Saisissez le corps de requête suivant. Remplacez myProject
et job_123
par l'ID d'un projet et l'ID d'une tâche.
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"configuration": {
"query": {
"query": "SELECT 1;",
"createSession": {
"value": true
}
}
}
}
Assurez-vous que le corps de la réponse est semblable à ceci:
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"statistics": {
"sessionInfo": {
"sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}
}
}
jobs.query
Appelez la méthode jobs.query
avec les paramètres suivants :
{ "query": "SQL_STATEMENT", "createSession": true, ["location": "SESSION_LOCATION"] }
où :
- SQL_STATEMENT: première instruction SQL de votre session.
- SESSION_LOCATION: lie la session à un emplacement physique. Limitez toutes les requêtes de la session à cet emplacement. Facultatif.
Tester votre session
Saisissez le corps de requête suivant. Remplacez myProject
et job_123
par l'ID d'un projet et l'ID d'une tâche.
{
"query": "SELECT 1;",
"createSession": true
}
Assurez-vous que le corps de la réponse est semblable à ceci:
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"statistics": {
"sessionInfo": {
"sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}
}
}