세션 만들기

이 문서에서는 BigQuery에서 세션을 만드는 방법을 설명합니다. 이 문서는 BigQuery 세션에 익숙한 사용자를 대상으로 합니다.

세션 만들기

SQL 활동 그룹을 캡처하려면 BigQuery 세션을 만듭니다. 세션을 만든 후 세션이 종료될 때까지 세션에서 대화형 쿼리를 실행할 수 있습니다. 세션의 모든 쿼리는 세션이 생성된 위치에서 실행(처리)됩니다.

이 단계를 완료하기 전에 세션을 만드는 데 필요한 권한이 있는지 확인합니다.

콘솔

Google Cloud 콘솔에서 각 세션은 편집기 탭에 할당됩니다.

  1. Google Cloud 콘솔에서 BigQuery 페이지로 이동합니다.

    BigQuery로 이동

  2. 새 쿼리 작성을 클릭합니다. 새 편집기 탭이 열립니다.

  3. 더보기 > 쿼리 설정을 클릭합니다. 쿼리 설정 패널이 표시됩니다.

  4. 세션 관리 섹션에서 세션 모드 사용을 클릭하여 세션 모드를 사용 설정합니다.

  5. 추가 설정 > 데이터 위치에서 위치를 선택합니다. 세션이 생성되면 세션의 모든 쿼리가 이 위치로 제한되며 위치를 변경할 수 없습니다.

  6. 저장을 클릭합니다.

  7. 편집기 탭에서 쿼리를 작성하고 실행합니다. 이 첫 번째 쿼리가 실행된 후 새 세션이 생성됩니다.

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 문

세션 테스트

다음 요청 본문을 입력합니다. myProjectjob_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: 세션을 실제 위치에 바인딩. 세션의 모든 쿼리를 이 위치로 제한합니다. (선택사항)

세션 테스트

다음 요청 본문을 입력합니다. myProjectjob_123을 프로젝트 ID와 작업 ID로 바꿉니다.

{
  "query": "SELECT 1;",
  "createSession": true
}

응답 본문이 다음과 유사한지 확인합니다.

{
  "jobReference": {
    "projectId": "myProject",
    "jobId": "job_123"
  },
  "statistics": {
    "sessionInfo": {
      "sessionId": "CgwKCmZhbGl1LXRlc3QQARokMDAzYjI0OWQtZ"
    }
  }
}

다음 단계