세션 만들기
이 문서에서는 BigQuery에서 세션을 만드는 방법을 설명합니다. 이 문서는 BigQuery 세션에 익숙한 사용자를 대상으로 합니다.
세션 만들기
SQL 활동 그룹을 캡처하려면 BigQuery 세션을 만듭니다. 세션을 만든 후 세션이 종료될 때까지 세션에서 대화형 쿼리를 실행할 수 있습니다. 세션의 모든 쿼리는 세션이 생성된 위치에서 실행(처리)됩니다.
이 단계를 완료하기 전에 세션을 만드는 데 필요한 권한이 있는지 확인합니다.
콘솔
Google Cloud 콘솔에서 각 세션은 편집기 탭에 할당됩니다.
Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.
새 쿼리 작성을 클릭합니다. 새 편집기 탭이 열립니다.
더보기 > 쿼리 설정을 클릭합니다. 쿼리 설정 패널이 표시됩니다.
세션 관리 섹션에서 세션 모드 사용을 클릭하여 세션 모드를 사용 설정합니다.
추가 설정 > 데이터 위치에서 위치를 선택합니다. 세션이 생성되면 세션의 모든 쿼리가 이 위치로 제한되며 위치를 변경할 수 없습니다.
저장을 클릭합니다.
편집기 탭에서 쿼리를 작성하고 실행합니다. 이 첫 번째 쿼리가 실행된 후 새 세션이 생성됩니다.
bq
Cloud Shell을 열고 다음 bq query
명령어를 입력합니다.
bq query \ --nouse_legacy_sql \ --create_session [--location 'SESSION_LOCATION'] \ 'SQL_STATEMENT'
각 항목의 의미는 다음과 같습니다.
- SESSION_LOCATION: 세션을 실제 위치에 바인딩. 세션의 모든 쿼리를 이 위치로 제한합니다. (선택사항)
- SQL_STATEMENT: 세션의 첫 번째 SQL 문
세션 테스트
다음 명령어를 사용하여 임시 테이블과 함께 세션을 만듭니다.
bq query \
--nouse_legacy_sql \
--create_session \
--location 'asia-northeast1' \
'SELECT 1;'
다음과 비슷한 결과가 표시되는지 확인합니다.
In session: CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ
API
정의된 작업 리소스를 사용하여 jobs.insert 메서드 또는 jobs.query 메서드를 호출합니다.
jobs.insert
다음 매개변수를 사용하여 jobs.insert
메서드를 호출합니다.
{ "jobReference": { "projectId": "PROJECT_ID", "jobId": "JOB_ID", ["location": "SESSION_LOCATION"] }, "configuration": { "query": { "query": "SQL_STATEMENT", "createSession": { "value": true } } } }
각 항목의 의미는 다음과 같습니다.
- PROJECT_ID: 세션을 만들 프로젝트
- JOB_ID: 세션을 만들 작업
- SESSION_LOCATION: 세션을 실제 위치에 바인딩. 세션의 모든 쿼리를 이 위치로 제한합니다. (선택사항)
- SQL_STATEMENT: 세션의 첫 번째 SQL 문
세션 테스트
다음 요청 본문을 입력합니다. myProject
및 job_123
을 프로젝트 ID와 작업 ID로 바꿉니다.
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"configuration": {
"query": {
"query": "SELECT 1;",
"createSession": {
"value": true
}
}
}
}
응답 본문이 다음과 유사한지 확인합니다.
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"statistics": {
"sessionInfo": {
"sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}
}
}
jobs.query
다음 매개변수를 사용하여 jobs.query
메서드를 호출합니다.
{ "query": "SQL_STATEMENT", "createSession": true, ["location": "SESSION_LOCATION"] }
각 항목의 의미는 다음과 같습니다.
- SQL_STATEMENT: 세션의 첫 번째 SQL 문
- SESSION_LOCATION: 세션을 실제 위치에 바인딩. 세션의 모든 쿼리를 이 위치로 제한합니다. (선택사항)
세션 테스트
다음 요청 본문을 입력합니다. myProject
및 job_123
을 프로젝트 ID와 작업 ID로 바꿉니다.
{
"query": "SELECT 1;",
"createSession": true
}
응답 본문이 다음과 유사한지 확인합니다.
{
"jobReference": {
"projectId": "myProject",
"jobId": "job_123"
},
"statistics": {
"sessionInfo": {
"sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
}
}
}