SESSIONS_BY_PROJECT 뷰

INFORMATION_SCHEMA.SESSIONS_BY_PROJECT 뷰에는 현재 프로젝트의 모든 BigQuery 세션에 대한 실시간 메타데이터가 포함됩니다.

필수 권한

INFORMATION_SCHEMA.SESSIONS_BY_PROJECT 뷰를 쿼리하려면 프로젝트에 대한 bigquery.jobs.listAll Identity and Access Management(IAM) 권한이 필요합니다. 사전 정의된 다음 IAM 역할에는 각각 필수 권한이 포함되어 있습니다.

  • 프로젝트 소유자
  • BigQuery 관리자

BigQuery 권한에 대한 자세한 내용은 IAM으로 액세스 제어를 참조하세요.

스키마

INFORMATION_SCHEMA.SESSIONS_BY_* 뷰를 쿼리하면 각 BigQuery 세션마다 행이 하나씩 쿼리 결과에 포함됩니다.

INFORMATION_SCHEMA.SESSIONS_BY_* 뷰에는 다음과 같은 스키마가 있습니다.

열 이름 데이터 유형
creation_time TIMESTAMP (파티션 나누기 열) 이 세션의 생성 시간입니다. 파티션 나누기는 이 타임스탬프의 UTC 시간을 기반으로 합니다.
expiration_time TIMESTAMP (파티션 나누기 열) 이 세션의 만료 시간입니다. 파티션 나누기는 이 타임스탬프의 UTC 시간을 기반으로 합니다.
is_active BOOL 세션이 아직 활성 상태인가요? 활성 상태인 경우 TRUE, 그렇지 않으면 FALSE입니다.
last_modified_time TIMESTAMP (파티션 나누기 열) 세션이 마지막으로 수정된 시간입니다. 파티션 나누기는 이 타임스탬프의 UTC 시간을 기반으로 합니다.
project_id STRING (클러스터링 열) 프로젝트의 ID입니다.
project_number INTEGER 프로젝트의 번호
session_id STRING 세션의 ID입니다. 예를 들면 bquxsession_1234입니다.
user_email STRING (클러스터링 열) 세션을 실행한 사용자의 이메일 주소 또는 서비스 계정입니다.

데이터 보관

이 뷰는 현재 실행 중인 세션과 지난 180일 동안 완료된 세션 기록을 포함합니다.

범위 및 구문

이 뷰에 대한 쿼리에는 리전 한정자가 있어야 합니다. 리전 한정자를 지정하지 않으면 모든 리전에서 메타데이터가 검색됩니다. 다음 표에는 이 뷰의 리전 범위가 나와 있습니다.

뷰 이름 리소스 범위 리전 범위
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SESSIONS_BY_PROJECT 프로젝트 수준 REGION
다음을 바꿉니다.

  • (선택사항) PROJECT_ID: Google Cloud 프로젝트의 ID입니다. 지정하지 않으면 기본 프로젝트가 사용됩니다.
+ REGION: 모든 데이터 세트 리전 이름입니다. 예를 들면 region-us입니다.

기본 프로젝트가 아닌 프로젝트에 대해 쿼리를 실행하려면 다음 형식으로 프로젝트 ID를 추가합니다.

`PROJECT_ID`.`region-REGION_NAME`.INFORMATION_SCHEMA.SESSIONS_BY_PROJECT
예를 들면 `myproject`.`region-us`.INFORMATION_SCHEMA.SESSIONS_BY_PROJECT입니다. 다음 예시에서는 마지막 날 특정 프로젝트에 대한 세션을 만든 모든 사용자 또는 서비스 계정을 나열합니다.

SELECT
  DISTINCT(user_email) AS user
FROM
  `region-us`.INFORMATION_SCHEMA.SESSIONS_BY_PROJECT
WHERE
  is_active = true
  AND creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY);

결과는 다음과 비슷합니다.

+--------------+
| user         |
+--------------+
| abc@xyz.com  |
+--------------+
| def@xyz.com  |
+--------------+