Amplitude 쿼리로 맞춤 SQL 작성하기

  • 업데이트 시간

Amplitude 쿼리 제품 추가 기능을 사용하면 고객이 Amplitude를 통해 관리되는 Snowflake 데이터베이스를 활용하여 원시 데이터를 쿼리할 수 있습니다. 데이터는 Snowflake에 30분마다 로드됩니다. 쿼리는 또한 Amplitude SQL라는 강력한 신규 차트 유형을 포함하여 고객이 Amplitude 플랫폼 내부에서 바로 Amplitude 데이터에 대해 맞춤 SQL을 작성할 수 있게 합니다.

참고: 이 기능은 쿼리 제품 추가 기능을 구매한 Growth 및 Enterprise 플랜 고객에게만 제공됩니다.

쿼리 시작하기

Amplitude SQL은 탐색 메뉴 오른쪽 상단의 Create Chart 드롭다운을 통해 다른 차트 유형처럼 액세스할 수 있습니다. 이러한 차트 유형을 어떻게 활용하는지 자세히 알아보려면 아래의 Amplitude SQL 섹션을 참조하세요.

_19f79ca96993a967501958723472ed55__Amplitude_SQL.gif

또는 단말 애플리케이션이나 SQL Workbench 같은 타사 애플리케이션을 통해 Snowflake 데이터베이스에 직접 연결할 수도 있습니다. Snowflake에는 Connector for Python도 있습니다(여기). 여기에 문의하거나 성과 관리자에게 연락하여 Snowflake 자격 증명을 요청하세요. 

참고: 이 기능은 쿼리 제품 추가 기능을 구매한 Growth 및 Enterprise 플랜 고객에게만 제공됩니다.

쿼리 스키마 설명

표 명명법

쿼리 패키지는 Snowflake 및 Amplitude SQL에 대해 간소화된 표 스키마를 사용합니다. Amplitude SQL은 특정 프로젝트에 대해 약식 $events를 사용하여 참조될 수 있는 단일 표 스키마를 사용합니다. 다른 표에 액세스하려면 'Show Schema'를 클릭하여 찾을 수 있는 전체 이름을 사용할 수 있습니다.

Screen_Shot_2019-10-30_at_09.59.41.png

$events 표는 병합된 사용자 매핑을 자동으로 처리하지만, 병합된 사용자 표의 스키마는 $events의 스키마 아래에서도 사용할 수 있습니다. 이는 하나로 병합된 사용자 수를 확인하려는 경우에 유용합니다.

Screen_Shot_2019-10-30_at_09.59.54.png

쿼리를 사용할 때 가장 큰 이점 중 하나는 표에 사용할 수 있는 열의 개수에 제한이 없다는 것입니다. 맞춤 사용자 속성 및 이벤트 속성은 변수로 저장되며, 개별 열로 쿼리할 수 있습니다. 맞춤 사용자 속성은 앞에 user_properties:가 붙으며 모든 이벤트 속성은 앞에 event_properties:가 붙습니다.

참고: 사용자 또는 이벤트 속성에 마침표나 공백이 포함된 경우, 속성 이름을 큰따옴표로 묶어야 합니다. 예를 들면 user_properties:"first name"과 같습니다.

특정 값을 찾는 경우 속성 값을 작은따옴표로 묶어야 합니다. 예를 들면 user_properties:"plan type"='enterprise'와 같습니다.

열 스키마

$events

설명
$amplitude_id

NUMBER(38,0)

사용자의 원래 Amplitude ID입니다. 이 필드를 사용하여 병합된 사용자를 자동으로 처리하세요.

2234540891

adid

VARCHAR(16777216)

(Android) Google Play Services 광고 ID(AdID)입니다. 대개 가져온 후 지워지므로 비어 있습니다.

'AEBE52E7-03EE-455A-B3C4-E57283966239' 

amplitude_attribution_ids 내부용으로 저장하는 광고 ID의 익명화된 해시로 고객에게는 유용하지 않습니다. 하지만 광고 ID가 전송되어 현재는 삭제되었지만 adid/idfv가 있었음을 증명한 경우에 나타납니다.
amplitude_event_type

VARCHAR(16777216)

Amplitude가 생성하는 이벤트 기반의 Amplitude 식별자입니다. 레거시 필드이므로 모든 쿼리에 대해 event_type이 충분해야 합니다.
amplitude_id

NUMBER(38,0)

고유 사용자를 계산하기 위해 사용된 내부 ID입니다.

1234567890

app

NUMBER(38,0)

 프로젝트 설정 페이지에서 찾을 수 있는 프로젝트 ID입니다.

123456

city

VARCHAR

도시 이름입니다.

'San Francisco(샌프란시스코)'

client_event_time

TIMESTAMP

기기가 이벤트를 로깅했을 때의 로컬 타임스탬프(UTC)입니다.

2015-08-10T12:00:00.000000

client_upload_time

TIMESTAMP

기기가 이벤트를 업로드했을 때의 로컬 타임스탬프(UTC)입니다.

2015-08-10T12:00:00.000000

country

VARCHAR

국가 이름입니다.

'United States(미국)' 

data

VARIANT

first_event 및 merged_amplitude_id와 같은 필드가 저장된 딕셔너리입니다.
device_brand

VARCHAR(16777216)

기기 브랜드입니다.

'Apple'

device_carrier

VARCHAR(16777216)

기기 통신사입니다.

'Verizon'

device_family

VARCHAR(16777216)

기기 제품군입니다.

'Apple iPhone'

device_id

VARCHAR(16777216)

기기별 식별자입니다.

'C8F9E604-F01A-4BD9-95C6-8E5357DF265D'

device_manufacturer

VARCHAR(16777216)

기기 제조업체입니다.

'Apple'

device_model

VARCHAR(16777216)

기기 모델입니다.

'iPad Mini'

device_type

VARCHAR(16777216)

기기 유형입니다.

'Apple iPhone 5s'

dma

VARCHAR(16777216)

DMA(지정 시장 지역)입니다.

'San Francisco-Oakland-San Jose, CA(샌프란시스코-오클랜드-산호세, CA)'

event_id

NUMBER(38,0)

이벤트를 구분하는 카운터입니다.

1

event_time

TIMESTAMP

server_received_time과 client_upload_time의 차이로 조정된 client_event_time인 Amplitude 타임스탬프(UTC)입니다. 구체적으로는 다음과 같습니다.

event_time = client_event_time + (server_received_time - client_upload_time)

2015-08-10T12:00:00.000000

이 타임스탬프를 사용하여 Amplitude 차트에서 이벤트를 구성합니다.

참고: server_received_time 및 client_upload_time의 차이가 60초 미만인 경우 event_time은 조정되지 않으며 client_event_time과 동일합니다.

event_type

VARCHAR(16777216)

할당된 이벤트 유형입니다.

'Add Friend(친구 추가)'

followed_an_identify

BOOLEAN

현재 SDK 이벤트와 과거 SDK 이벤트 사이에 identify 이벤트가 발견된 경우 참입니다.

groups

VARIANT

그룹 유형입니다. 자세히 알아보려면 계정 문서를 참조하세요.
idfa

VARCHAR(16777216)

(iOS) 광고 식별자입니다. 대개 가져온 후 지워지므로 비어 있습니다.

'AEBE52E7-03EE-455A-B3C4-E57283966239'

ip_address

VARCHAR(16777216)

IP 주소입니다.

'123.11.111.11'

location_lat

FLOAT

위도입니다.

12.3456789 

location_lng

FLOAT

경도입니다.

-123.4567890

os_name

VARCHAR(16777216)

OS 이름입니다.

'ios'

os_version

VARCHAR(16777216)

OS 버전입니다.

'1.0'

paying

VARCHAR

사용자가 수익을 로깅한 경우 참이고, 그렇지 않은 경우 '(none)'입니다.

참고: 속성 값은 식별 API를 통해 수정할 수 있습니다.

true

region

VARCHAR

지역 이름입니다.

'California(캘리포니아)'

server_upload_time

TIMESTAMP

Amplitude 서버가 이벤트를 수신했을 때의 Amplitude 타임스탬프(UTC)입니다.

2015-08-10T12:00:00.000000

session_id

NUMBER(38,0)

세션 시작 시간으로, 특정 시점 이후의 밀리초로 표시됩니다.

1396381378123

start_version

VARCHAR

사용자가 처음으로 추적된 앱 버전입니다.

'1.0.0'

user_creation_time

TIMESTAMP

사용자의 첫 이벤트 Event_time(UTC)입니다.

2015-08-10T12:00:00.000000

user_id

VARCHAR(16777216)

읽을 수 있는 ID로, 본인이 지정합니다.

“datamonster@gmail.com"

uuid

VARCHAR(16777216)

행당 고유 식별자(전송된 이벤트)입니다.

bf0b9b2a-304d-11e6-934f-22000b56058f

version_name

VARCHAR(16777216)

앱 버전입니다.

'1.0.0'

병합된 사용자 표

Amplitude가 고유 사용자를 어떻게 추적하는지 자세히 알아보려면 여기를 참조하세요.

설명
amplitude_id

NUMBER(38,0)

사용자의 원래 Amplitude ID에 병합되는 Amplitude ID입니다.

merge_event_time

TIMESTAMP

사용자의 새 Amplitude ID가 원래 Amplitude ID와 연결된 이벤트 시간입니다.

merge_server_time

TIMESTAMP

사용자의 새 Amplitude ID가 원래 Amplitude ID와 연결된 이벤트 서버 시간입니다.

merged_amplitude_id

NUMBER(38,0)

사용자가 처음 생성됐을 때 원래 할당된 Amplitude ID입니다.

Amplitude SQL 차트 유형

Amplitude SQL은 기본 Amplitude 경험에 통합되어 있으며 탐색 표시줄의 오른쪽 상단에 있는 'Create Chart' 드롭다운에서 찾을 수 있습니다. 분석은 Amplitude의 다른 차트 콘텐츠처럼 저장, 공유되고 대시보드에 표시될 수 있습니다. 이 차트 유형을 사용하면 여러분의 Amplitude 데이터에 대해 맞춤 SQL 쿼리를 작성할 수 있습니다.

참고: 이 기능은 현재 포트폴리오 보기에 대한 데이터 대기를 지원하지 않습니다.

차트 설정하기

기본적으로는 지난 30일 동안 수행된 총 이벤트, 고유 사용자, 날짜를 반환하는 간단한 SQL 쿼리가 표시됩니다. SQL 구문이 강조 표시되므로 SQL 명령어를 쿼리의 나머지 부분과 구분할 수 있습니다.

Screen_Shot_2019-10-30_at_10.01.20.png

또한 Amplitude SQL은 표 내 열의 자동 완성을 지원합니다. 내용을 입력하면 쿼리 편집기가 빠른 입력에 도움이 되는 열을 추천합니다.

Screen_Shot_2019-10-30_at_10.02.27.png

 

특수 필드

Amplitude SQL은 Amplitude 차트에 바로 구축되기 때문에, 날짜 선택 차트 저장 경험과 같은 친숙한 Amplitude 사용자 인터페이스를 많이 활용할 수 있습니다. 효과적인 바로 가기에 Amplitude SQL의 특수 필드를 활용해 보세요.

  • $date: 이 바로 가기를 사용하면 날짜 선택기에서 선택한 시간 범위가 자동으로 적용되고 시간이 지나면서 쿼리가 업데이트됩니다. 이벤트의 이벤트 시간을 나타내며 프로젝트가 설정된 시간대를 따릅니다. 반면 Amplitude SQL은 데이터를 UTC로 반환합니다.
    • 참고: $events와 함께 사용해야 합니다.
  • $events: 현재 프로젝트의 표를 나타내는 데 사용되는 약칭입니다. 이 표를 사용할 때는 병합된 사용자가 자동으로 처리됩니다.
    • 참고: $date와 함께 사용해야 합니다.
  • $amplitude_id: 사용자의 원래 Amplitude ID입니다. 이 필드를 사용하여 병합된 사용자를 자동으로 처리하세요.

쿼리 결과

쿼리를 실행하려면 맨 오른쪽에 있는 'Compute'를 클릭합니다. 쿼리가 모두 실행되면 결과가 데이터 표 아래쪽에 표시됩니다. 데이터 표 및 CSV 내보내기의 결과는 1,000개 행으로 제한됩니다. 또한 반환된 데이터의 시각화는 표 아래에 차트로 표시됩니다. 이때 시계열만 표시될 수 있습니다.

Screen_Shot_2019-10-30_at_10.03.11.png

시각화를 맞춤 설정하려면 쿼리 편집기 아래에서 여러 옵션을 사용할 수 있습니다. 시각화에 사용할 수 있는 옵션은 SQL SELECT 문에서 반환한 필드입니다. 예를 들어 위 쿼리에서는 필드 3개('DATE', 'UNIQUES', 'TOTALS')를 시각화할 수 있습니다.

  • X-axis column: X축에 표시되는 항목을 선택합니다. 현재는 시계열만 지원됩니다.
  • Metric column: SQL SELECT 문에서 반환된 필드 중 어떤 항목이 Y축에 표시되는지 선택합니다.

Screen_Shot_2019-10-30_at_10.03.55.png

그룹화 기준 적용하기

열을 기준으로 차트를 그룹화하려면 'Label columns' 필드에 열 이름을 입력합니다. 그런 다음 'Compute' 버튼을 클릭합니다.

Screen_Shot_2019-05-24_at_4.13.18_PM.png

쿼리 공유 및 저장하기

다른 Amplitude 차트처럼 오른쪽 상단의 'EXPORT' 아이콘을 사용하여 결과를 PNG, PDF 또는 CSV 파일로 내보낼 수 있습니다. 또한 분석을 저장하고 팀과 공유하거나, 여러분이 생성한 시각화를 Amplitude 대시보드에 추가할 수도 있습니다.

Screen_Shot_2019-10-30_at_10.04.39.png

Snowflake ETL

쿼리 추가 기능과 더불어, 유료 고객에게는 Snowflake 계정으로 Amplitude 데이터를 내보낼 수 있는 셀프 서비스 UI에 대한 액세스 권한이 부여됩니다. 이는 모든 유료 Amplitude 플랜에 포함되어 있으며 모든 지역에서 지원됩니다. 이 기능을 사용하면 Amplitude 엔지니어링의 지원 없이 데이터 웨어하우스의 소유권과 개인정보를 유지하고 유지 관리, 관리 및 사용자 지정 작업을 직접 수행할 수 있습니다. 

Amplitude의 이전 데이터 공유 서비스인 Snowflake ETL은 지원 중단 프로세스를 진행하고 있습니다. 현재 Snowflake ETL을 사용하는 경우 성과 관리자에게 연락하여 셀프 서비스 내보내기로 마이그레이션하기 위한 가이드를 요청하세요.

아래 표에서는 셀프 서비스 Snowflake 내보내기의 이점을 간략하게 안내합니다.

기능

고객이 소유하고 관리하는 Snowflake 인스턴스로 데이터 내보내기

데이터 및 액세스에 대한 완전한 제어 및 편집 권한

계정

Snowflake 이용 및 데이터 웨어하우스 필요

추천 대상

Snowflake를 주요 데이터 웨어하우스로 사용하려고 하며 다른 데이터 세트에 대한 쓰기 기능과 편집 및 액세스 제어를 원하는 고객