Criar sessões
Neste documento, descrevemos como criar sessões no BigQuery. Ele é destinado a usuários familiarizados com as sessões do BigQuery.
Criar uma sessão
Se você quiser capturar um grupo das atividades do SQL, crie uma sessão do BigQuery. Depois de criadas, você pode executar consultas interativas na sua sessão até que ela seja encerrada. Todas as consultas na sessão são executadas (processadas) no local em que a sessão foi criada.
Antes de concluir essas etapas, verifique se você tem as permissões necessárias para criar uma sessão.
Console
No Console do Cloud, cada sessão é atribuída a uma guia do editor. Antes de concluir estas etapas, verifique se as guias do editor estão ativadas.
No console do Cloud, acesse a página do BigQuery.
Clique em Escrever nova consulta. Uma nova guia do editor será aberta.
Clique em Mais e em Configurações de consulta. O painel Configurações de consulta é aberto.
Procure Local de processamento e selecione o local em que as consultas serão executadas. Depois que uma sessão é criada, todas as consultas nela são restritas a esse local, e o local não pode ser alterado.
Na seção Gerenciamento de sessões, ative Usar modo de sessão.
Clique em Save.
Escreva uma consulta na guia do editor e execute-a. A nova sessão é criada após a execução dessa primeira consulta.
bq
Abra o Cloud Shell
e digite o seguinte comando bq query
:
bq query \ --nouse_legacy_sql \ --create_session [--location 'SESSION_LOCATION'] \ 'SQL_STATEMENT'
onde:
- SESSION_LOCATION: vincule a sessão a um local físico. Restrinja todas as consultas da sessão a esse local. Opcional.
- SQL_STATEMENT: a primeira instrução SQL da sessão.
Teste a sessão
Crie uma sessão com uma tabela temporária com este comando:
bq query \
--nouse_legacy_sql \
--create_session \
--location 'asia-northeast1' \
'SELECT 1;'
Certifique-se de que resultados semelhantes a estes sejam produzidos:
In session: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
API
Chame o método jobs.insert ou jobs.query com um recurso de jobs definido.
jobs.insert
Chame o método jobs.insert
com os seguintes parâmetros:
{ "jobReference": { "projectId": "PROJECT_ID", "jobId": "JOB_ID", ["location": "SESSION_LOCATION"] }, "configuration": { "query": { "query": "SQL_STATEMENT", "createSession": { "value": true } } } }
onde:
- PROJECT_ID: o projeto em que a sessão será criada;
- JOB_ID: o job para o qual criar a sessão.
- SESSION_LOCATION: vincule a sessão a um local físico. Restrinja todas as consultas da sessão a esse local. Opcional.
- SQL_STATEMENT: a primeira instrução SQL da sessão.
Teste a sessão
Insira o corpo da solicitação a seguir. Substitua myProject
e job_123
pelo ID de um projeto e pelo ID de um job.
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"configuration": {
"query": {
"query": "SELECT 1;",
"createSession": {
"value": true
}
}
}
}
Verifique se o corpo da resposta é semelhante a este:
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"statistics": {
"sessionInfo": {
"sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}
}
}
jobs.query
Chame o método jobs.query
com os seguintes parâmetros:
{ "query": "SQL_STATEMENT", "createSession": true, ["location": "SESSION_LOCATION"] }
onde:
- SQL_STATEMENT: a primeira instrução SQL da sessão.
- SESSION_LOCATION: vincule a sessão a um local físico. Restrinja todas as consultas da sessão a esse local. Opcional.
Teste a sessão
Insira o corpo da solicitação a seguir. Substitua myProject
e job_123
pelo ID de um projeto e pelo ID de um job.
{
"query": "SELECT 1;",
"createSession": true
}
Verifique se o corpo da resposta é semelhante a este:
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"statistics": {
"sessionInfo": {
"sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}
}
}