Como 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. Após criar uma sessão, será possível executar consultas interativas até que a sessão 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 Google Cloud, cada sessão é atribuída a uma guia do editor.
No Console do Google Cloud, acesse a página BigQuery.
Clique em
Escrever nova consulta. Uma nova guia Editor será aberta.Clique em Mais > Configurações de consulta. O painel Configurações de consulta é exibido.
Na seção Gerenciamento de sessão, clique em Usar o modo de sessão para ativá-lo.
Em Configurações adicionais > Local dos dados, selecione o local. Depois que uma sessão é criada, todas as consultas nela são restritas a esse local, e o local não pode ser alterado.
Clique em Salvar.
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'
em que:
- 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 } } } }
em que:
- 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"] }
em que:
- 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"
}
}
}