무엇을 찾고 계신가요?
Hero background image

SQL 데이터 탐색기로 게임 데이터를 분석하는 방법

데이터 탐색 시작

UGS(Unity Gaming Services) 데이터 탐색기를 사용하여 지표나 이벤트를 기반으로 데이터를 필터링하여 사용하고 플랫폼, 국가, 버전별로 그룹화해 보세요.

SQL(구조화된 쿼리 언어)에 대한 기본 지식만 있으면 UGS의 SQL 데이터 탐색기를 사용하여 분석 수준을 높이고 데이터를 심층적으로 분석할 수 있습니다. 이 기능을 사용하여 쿼리를 작성 및 실행하고, 결과를 다양한 유형의 시각화로 플로팅하고, 사용자 지정 대시보드에 시각화를 추가하고, 다른 분석 도구에서 사용할 수 있도록 데이터를 내보낼 수 있습니다. Unity 대시보드의 UGS 애널리틱스 패널에서 SQL 데이터 탐색기를 찾습니다.

유니티의 애널리틱스 컨설턴트인 러셀 영이 SQL 데이터 탐색기 활용을 위한 팁과 아이디어를 알려드립니다.

미션 시작하기

UGS의 풍부한 데이터를 탐색하려면 SQL 쿡북의 레시피 모음을 참조하세요. UGS는 SQL의 눈송이 플레이버를 사용합니다.

쿡북 쿼리 중 하나는 미션 통계를 살펴봅니다. 이 코드를 조정하여 가상 게임에서 미션 실패율을 간단히 살펴 보겠습니다. 여기에서는 미션ID 매개변수를 사용하여 플레이어의 미션 참여를 추적하기 위해 만든 커스텀 이벤트를 사용합니다.

기본 EVENTS 테이블 사용
기본 EVENTS 테이블 사용

이 쿼리에서는 기본 EVENTS 테이블을 사용하겠습니다. 이 표에는 게임에서 기록된 모든 이벤트에 대한 세분화된 데이터가 포함되어 있습니다.

효율성을 위해 쿼리 제한하기
효율성을 위해 쿼리 제한하기

여기서는 쿼리를 제한하고 효율적으로 유지하기 위해 날짜 필터를 사용했습니다. 이 제한이 없으면 SQL 데이터 탐색기에서 기본적으로 쿼리할 수 있는 365일 전체 데이터에 대해 쿼리가 실행됩니다. 또한 SELECT *를 사용하는 것보다 관심 있는 열을 지정하는 것이 항상 더 효율적입니다.

EVENT_JSON:missionID::INTEGER와 같은 문구는 어렵게 느껴질 수 있지만, 'missionID'를 입력하고 자동 완성 기능을 사용하면 게임에서 해당 매개변수가 설정되어 있다는 가정 하에 SQL 데이터 탐색기가 JSON 구문을 생성해 줍니다.

결과 플로팅하기
결과 플로팅하기

쿼리를 실행한 후 결과를 플로팅하여 데이터의 스토리를 확인할 수 있습니다. 차트는 현재 최대 2개의 Y축과 1개의 X축을 지원합니다. 축 레이블은 SQL 쿼리에서 'as' 표현식을 사용하여 쉽게 이름을 바꿀 수 있으며, 이 경우 Y축은 정의한 이름을 사용합니다: "플레이어가 실패한 %".

플레이어 3명 중 1명 이상이 첫 번째 미션(미션ID 0)에서 실패한 것으로 확인되었으므로, 사용자에게 보다 긍정적인 첫 경험을 제공하기 위해 미션 난이도를 미세 조정할 수 있습니다.

팁: 데이터에 일부 NULL 값이 있고 이로 인해 축이 이상하게 보이는 경우, coalesce(yourParameter, 0)를 사용하여 빈칸을 채우세요.

피벗 도구 사용
피벗 도구 사용

쿼리를 실행하면 결과 테이블이 표시됩니다. 쿼리에 PLATFORM을 추가하면 위 이미지에서 현재 테이블이 어떻게 보이는지 확인할 수 있습니다. 오른쪽에 '피벗' 버튼이 있습니다. 이는 쿼리를 다시 작성할 필요 없이 데이터를 재구성하는 데 유용합니다.

데이터 조정하기
데이터 조정하기

이 예제에서는 피벗 도구를 사용하여 데이터를 조정하여 행에 PLATFORM을, 열에 MISSIONID를 표시할 수 있습니다.

결과 보기
결과 보기

표를 조정해 보면 플랫폼 간에 미션 실패율에 거의 차이가 없음을 알 수 있습니다.

쿼리 속도 향상

게임이 점점 더 성공하고 플레이어 수가 늘어나면 간단한 쿼리도 실행하는 데 상당한 시간이 걸릴 수 있습니다.

데이터에 대해 이 기본 쿼리를 실행한다고 가정해 보겠습니다:

데이터 샘플링

상당히 빠르게 실행될 것으로 예상할 수 있지만, 대규모 데이터 세트의 경우 항상 그렇지는 않습니다. 웨어하우스의 형태와 user_ids가 해시로 저장된다는 점을 활용하여 쿼리 속도를 높이기 위해 포함된 사용자 수를 줄이는 빠른 방법을 사용하세요.

여기서는 사용자를 무작위로 할당되고 번호가 부여된 100개의 가상 버킷으로 나누고 63번 버킷을 살펴보고 있습니다.

이 코드를 간단한 쿼리에 추가하는 것은 큰 차이가 없지만, 계산 복잡성이 증가함에 따라 이러한 방식으로 데이터를 필터링하는 것이 점점 더 중요해지고 있습니다. 가상 게임에서도 이 수정된 버전의 쿼리가 원래 쿼리보다 75% 더 빠르게 실행되는 것을 확인했습니다. 이렇게 하면 전체 데이터 세트를 처리할 필요 없이 샘플 사용자 하위 집합에 대한 인사이트를 얻는 데 드는 시간과 비용을 절약할 수 있습니다.

대략적인_수_구분 사용

위의 쿼리에서는 카운트(distinct...)를 사용하여 개별 플레이어 수와 이벤트 조합을 계산했습니다. 결과의 정확도가 100%가 필요하지 않은 경우 쿼리 속도를 개선하는 한 가지 방법은 대략적인_count_distinct를 사용하는 것입니다. 이전 쿼리는 다음과 같습니다:

용어집 패널 열기
용어집 패널 열기

지금까지는 기본 EVENTS 테이블만 사용했습니다. 이 표에는 게임에서 발생한 모든 이벤트에 대한 세분화된 데이터가 포함되어 있으므로 가장 광범위한 표입니다. 쿼리를 개선하기 위해 더 작은 객체를 사용하여 쿼리를 더 효율적으로 실행할 수 있습니다.

용어집 패널을 살펴보고 쿼리할 수 있는 표를 살펴보겠습니다.

UGS의 테이블 집계

여기에는 이벤트와 함께 쿼리할 수 있는 모든 집계 테이블이 있습니다. 이 모든 기능은 UGS에서 바로 사용할 수 있습니다.

  • USERS 테이블에는 이벤트 횟수, 총 플레이 시간, 총 지출 등 게임 내 평생 지표와 함께 플레이어당 하나의 행이 표시됩니다.
  • FACT_USER_SESSIONS_DAY에는 각 플레이어의 각 세션에 대한 데이터가 포함됩니다.
  • 사실_이벤트_유형_사용자_날은 플레이어가 매일 보낸 각 이벤트에 대한 행과 총 개수로 구성됩니다.
  • FACT_WAU_USERS 및 FACT_MAU_USERS에는 특정 날짜에 지난 주 또는 한 달 이내에 플레이한 사용자의 프로필 데이터가 포함됩니다.

사실_이벤트_유형_사용자_일과 사실_사용자_세션_일 사이에는 대부분의 작은 객체에 대한 쿼리의 80% 이상을 답변할 수 있습니다.

FACT_EVENT_TYPE_USERS_DAY 사용

예를 들어, 첫 번째 쿼리에서는 미션 실패율을 살펴보고 있었습니다. 또한 이 테이블에 저장된 NUMBER_OF_EVENTS 카운트를 사용하여 매일 전체 장애율을 계산하기 위해 FACT_EVENT_TYPE_USERS_DAY를 사용할 수도 있습니다.

다음 쿼리에서도 이러한 테이블 중 하나를 사용하겠습니다:

특정 기준에 따라 플레이어 식별
특정 기준에 따라 플레이어 식별

이 쿼리를 사용하여 특정 기준을 충족하는 플레이어의 이벤트 스트림을 확인할 수 있습니다. 위에서 언급한 USERS 테이블을 사용하면 실행할 때마다 다른 사용자를 얻을 수 있으므로 QA 및 디버깅에 유용합니다.

예를 들어 특정 버전의 게임을 설치한 플레이어의 이벤트가 제대로 기록되지 않는다고 의심되는 경우 아래 쿼리를 실행할 수 있습니다. 돌아오는 것은 문제가 발생한 것으로 보이는 게임 버전을 실행하는 무작위 플레이어의 이벤트 스트림입니다. 이 작업을 몇 번 반복하면 데이터에서 패턴을 빠르게 발견할 수 있습니다.

팁: 여러 줄에 주석을 달려면 키보드 단축키 CTRL+/을 사용하세요.

새로 정의된 변수 사용

예를 들어, 이전 deltaDNA 데이터 마이닝 도구를 사용했다면 Vertica로 쿼리를 작성했을 가능성이 높으며, 스노우플레이크 이외의 언어로 SQL 쿼리를 작성하는 데 익숙할 수 있습니다.

이제 공통 테이블 표현식(CTE)에 먼저 포함하지 않고도 새로 정의된 변수를 참조할 수 있습니다. 예를 들어, 이 쿼리는 SQL 데이터 탐색기에서는 성공적으로 실행되지만 원래 deltaDNA에서는 "열 'rice'가 존재하지 않습니다." 오류가 발생했을 것입니다:

데이터에서 더 많은 정보 얻기

SQL Explorer에는 많은 잠재력이 있습니다. UGS 애널리틱스에는 파이 및 누적 막대 차트와 같은 다양한 차트 옵션을 포함하여 훨씬 더 많은 것을 발견할 수 있습니다. 직접 액세스를 사용하면 스노우플레이크를 통해 애널리틱스 데이터에 직접 액세스할 수 있습니다.

인사이트를 빠르게 확보하고 쿼리 및 대시보드 구축을 지원받으려면 문의해 주세요.

추가 읽기

이 콘텐츠가 마음에 드셨나요?