콘텐츠로 이동

BigQuery 테이블

개요

BigQuery 권한을 받은 뒤 조회할 수 있는 데이터셋과 테이블의 종류, 테이블별 용도와 주요 컬럼을 확인할 수 있습니다.

BigQuery 권한 신청과 접속 방법은 BigQuery 설정을 참고하세요.

데이터셋 설명
habq-storage.analytics_N_live 상용 환경 데이터. 상용 환경에서 권한을 신청하면 조회 가능
habq-storage.analytics_N_sandbox 샌드박스 환경 데이터. 샌드박스 환경에서 권한을 신청하면 조회 가능
Note

BigQuery에 접속하면 권한이 부여된 데이터셋만 표시됩니다. N에 해당하는 값은 별도로 확인하지 않아도 됩니다.


테이블 목록

테이블은 용도에 따라 이벤트 테이블과 서비스 테이블로 구분됩니다.

구분 설명
이벤트 테이블 지표의 데이터 소스가 되는 테이블과 격리 테이블. 데이터를 분석하거나 확인할 때 직접 조회하는 테이블
서비스 테이블 이벤트 테이블을 만들거나 콘솔·분석 기능을 지원하기 위해 생성하는 테이블. 직접 조회하지 않아도 되며 참고용으로 제공

이벤트 테이블

테이블 설명
t_raw_event_log (지표 데이터 소스) 모든 이벤트 로그가 통합 저장되는 원본 테이블
t_raw_event_log_rescue 전송 규칙을 위반해 t_raw_event_log에 저장되지 못한 로그를 원본 그대로 보관하는 격리 테이블
t_aggregation_index (지표 데이터 소스) 누적 지표를 별도로 제공하기 위해 집계한 최종 결과

서비스 테이블

서비스 테이블은 직접 조회하는 용도가 아니라, 데이터가 어떻게 만들어지는지 이해하기 위한 참고용으로 제공됩니다.

테이블 설명
t_aggregation_login_master t_aggregation_index를 만들기 위한 중간 집계 테이블. 접속한 유저(userId)를 처음 확인한 날짜 기록 (누적 접속자 수 집계용)
t_aggregation_terms_master t_aggregation_index를 만들기 위한 중간 집계 테이블. 약관에 동의한 기기(deviceId)를 처음 확인한 날짜 기록 (누적 설치 수 집계용)
t_aggregation_buyer_master t_aggregation_index를 만들기 위한 중간 집계 테이블. 결제한 유저(userId)를 처음 확인한 날짜 기록 (누적 구매자 수 집계용)
t_aggregation_prerelease_revenue 게임 정식 출시일 이전에 발생한 매출을 날짜·조건별로 미리 계산해 둔 테이블 (출시 전 매출이 있는 경우에만 데이터 존재)
tmp_aggregation_stg_* 집계 처리 중에만 존재하는 임시 테이블 (생성 1일 후 자동 삭제)
system_custom_event_user_state t_raw_event_log에 반영하기 위한 중간 집계 테이블. 유저·이벤트별로 처음 발생했을 때와 마지막으로 발생했을 때의 시각과 속성을 저장한 테이블
system_derived_event_* 파생 이벤트 생성 작업의 진행 상태를 기록하는 내부 처리용 테이블
meta_event 보유한 이벤트 목록
meta_event_dimension 이벤트별 속성 정의 (속성명, 자료형, 출처)
meta_event_dimension_value 속성에 실제로 수집된 값 (문자형은 값 목록, 숫자형·시간형은 최솟값·최댓값 범위)
meta_event_latest_date 이벤트별 마지막 데이터 날짜
system_attribute_raw meta_event_dimension_value를 만드는 원본 속성 목록. attributes JSON에서 파이프라인이 생성한 hiveAttributes를 제외한 모든 속성과 값, 값별 수집 횟수, 최초·최종 수집 시각
segment_* / snapshot_* 콘솔에서 생성한 세그먼트·스냅샷 결과 ({종류}_{번호}_{일시}_{난수} 형식, 생성할 때마다 새 테이블 생성)

테이블별 상세

이벤트 테이블

t_raw_event_log

게임에서 전송된 모든 이벤트 로그가 저장되는 테이블입니다. 한 행이 "누가(userId) / 어떤 기기로(deviceId) / 어떤 게임에서(appIdGroup) / 언제(dateTime) / 어떤 속성으로(attributes) / 무엇을 했는지(eventName)"를 나타냅니다.

컬럼 구조와 attributes JSON의 세부 속성은 이벤트 저장 구조를 참고하세요.

t_raw_event_log_rescue

t_raw_event_log에 저장되지 못한 로그를 원본 그대로 보관하는 격리 테이블입니다. t_raw_event_log와 같은 컬럼에 원본 문자열(rawData), 격리 사유(errorReason), 상세 정보(errorStackTrace)가 추가됩니다.

  • 격리된 로그가 있는 경우에만 생성됩니다.
  • dateTime은 잘못된 값도 보관해야 하므로 TIMESTAMP가 아닌 STRING으로 저장됩니다.
  • t_raw_event_log에서 데이터가 보이지 않으면 이 테이블을 먼저 확인하세요.

격리 사유와 대응 방법은 이벤트 저장 구조의 데이터 격리를 참고하세요.

t_aggregation_index

누적 지표를 별도로 제공하기 위해 원본 로그를 집계해 저장하는 테이블로, t_raw_event_log와 함께 지표의 데이터 소스가 됩니다. 누적 접속자 수처럼 고유 인원을 세는 지표는 중간 집계 테이블의 결과를 바탕으로 저장됩니다. 한 행이 "어떤 게임의 / 어떤 날짜의 / 어떤 기간 방식으로 본 / 어떤 지표의 / 어떤 조건별 값" 하나를 나타냅니다.

컬럼 설명 예시
appIdGroup 게임 식별자 com.sample.test
dateTime 대상 날짜 2026-10-04
periodType 기간 방식. day(해당 일), cumulative(전체 기간 누적) day
aggName 지표 묶음. agg_users(접속), agg_sales(매출), agg_terms(설치) agg_sales
dimKey 조건 축. *는 해당 축 전체를 의미 country=*\|market=*\|serverId=*
attributes 실제 지표 값이 저장되는 JSON (measure 아래에 지표별 값) measure.au, measure.revenue, measure.pu
checksum 행 식별용 해시값

지표 값은 컬럼이 아니라 attributes JSON 안에 있으므로 JSON_VALUE로 조회합니다.

SELECT JSON_VALUE(attributes, '$.measure.revenue') AS revenue
FROM `habq-storage.analytics_N_live.t_aggregation_index`
WHERE aggName = 'agg_sales'
  AND periodType = 'cumulative'
  AND appIdGroup = 'com.sample.test'  -- 사용하는 실제 appIdGroup
  AND dimKey = 'country=*|market=*|serverId=*'  -- 전체 합계
  AND DATE(dateTime) = '2026-10-04'
Warning

같은 날짜·지표라도 dimKey에 따라 "전체", "한국", "한국 × Google Play"처럼 여러 행이 있습니다. 전체 합계는 모든 축이 *인 행 하나만 조회하세요. 여러 행을 더하면 중복 집계됩니다.

서비스 테이블

서비스 테이블은 참고용으로 제공되며, 직접 조회하지 않아도 됩니다.

t_aggregation_*_master

t_aggregation_index를 만들기 위한 중간 집계 테이블로, 유저나 기기를 처음 확인한 날짜만 기록합니다. 누적 접속자 수처럼 날짜별로 더할 수 없는 고유 인원을 집계하는 데 사용되며, 집계 결과는 t_aggregation_index에 저장됩니다.

테이블 대상 사용 지표
t_aggregation_login_master 접속한 유저(userId) agg_users 누적 접속자 수
t_aggregation_terms_master 약관에 동의한 기기(deviceId) agg_terms 누적 설치 수
t_aggregation_buyer_master 결제한 유저(userId) agg_sales 누적 구매자 수
컬럼 설명
appIdGroup 게임 식별자
userId / deviceId 대상 식별자
country, market (serverId) 처음 확인했을 때의 국가·마켓 (t_aggregation_buyer_master는 서버 포함)
firstSeenDate / firstSeenAt 처음 확인한 날짜 / 시각
updatedAt 행이 마지막으로 갱신된 시각
Note

이 테이블들은 새 유저·기기를 추가만 하고 삭제하지 않습니다. 또한 집계 시점 이후에 늦게 도착한 데이터는 반영되지 않습니다. 이로 인해 이 테이블 기반 누적 지표는 원본 로그로 다시 계산한 값과 다를 수 있습니다.

system_custom_event_user_state

t_raw_event_log에 반영하기 위한 중간 집계 테이블로, 유저·이벤트별로 처음 발생했을 때와 마지막으로 발생했을 때의 시각과 속성을 한 행으로 저장합니다.

컬럼 설명
userId 계정 기준 유저 식별자
deviceId 단말 기준 유저 식별자
appIdGroup 게임 식별자
eventName 이벤트명
firstEventTime, firstAttributes 최초 발생 시각과 당시 속성
lastEventTime, lastAttributes 최종 발생 시각과 당시 속성

meta_event

보유한 이벤트 목록입니다. 한 행이 이벤트 하나를 나타냅니다.

컬럼 설명
eventName 이벤트명
dataSource 이벤트가 유입된 경로 (custom_server, custom_sdk 등)
tableName 이벤트 데이터가 저장된 테이블명

meta_event_dimension

이벤트별 속성 정의입니다. 한 행이 이벤트의 속성 하나를 나타냅니다.

컬럼 설명
eventName 이벤트명
dimensionName 속성명
dataType 속성의 자료형
attributeSource 속성이 저장된 영역 (hiveAttributes 또는 eventAttributes)

meta_event_dimension_value

속성에 실제로 수집된 값입니다. 문자형은 값 목록을, 숫자형·시간형은 최솟값·최댓값 범위를 저장합니다.

컬럼 설명
key 속성명
value 수집된 값 (숫자형·시간형은 최솟값·최댓값)
dataType 속성의 자료형
valueType 값의 저장 방식 (값 목록 또는 최솟값·최댓값 범위)

meta_event_latest_date

이벤트별 마지막 데이터 날짜입니다.

컬럼 설명
lastDataDate 데이터가 있는 마지막 날짜
sourceTable 날짜를 확인한 원본 테이블

system_attribute_raw

meta_event_dimension_value를 만드는 원본 속성 목록으로, attributes JSON에서 파이프라인이 생성한 hiveAttributes를 제외한 모든 속성과 값을 정리합니다.

컬럼 설명
eventName, appIdGroup 이벤트와 게임
key, value 속성명과 수집된 값
dataType 속성의 자료형
valueCount 값이 수집된 횟수
firstTime, lastTime 최초·최종 수집 시각
attributeSource 속성이 저장된 영역 (hiveAttributes 또는 eventAttributes)
dataSource 이벤트가 유입된 경로

주의사항 & Tips

  • t_raw_event_log, t_aggregation_index는 dateTime 기준 일별 파티션 테이블입니다. 조회 비용을 줄이려면 날짜 조건을 함께 지정하세요.

연관 메뉴