Adobe Experience Platform 표준 기능으로 통합하여 SQL(Structured Query Language)을 사용할 수 Data Science Workspace Query Service JupyterLab 있습니다.
이 자습서에서는 일반적인 사용 사례를 위해 Adobe Analytics 데이터를 탐색, 변환 및 분석하는 샘플 SQL 쿼리를 보여 줍니다.
이 튜토리얼을 시작하기 전에 다음 전제 조건이 필요합니다.
액세스 권한 Adobe Experience Platform. 에서 IMS 조직에 액세스할 수 없는 경우 시스템 관리자 Experience Platform에게 연락하여 진행하십시오
데이터 Adobe Analytics 집합
이 튜토리얼에서 사용되는 다음 주요 개념에 대한 작업 이해:
에서 왼쪽 탐색 Experience Platform열 에서 전자 필기장으로 이동합니다. JupiterLab이 로드될 때까지 잠시 기다려 주십시오.
새 시작 관리자 탭이 자동으로 나타나지 않으면 파일 을 클릭하여 새 시작 관리자 탭을 연 다음 새 시작 관리자를 선택합니다.
론처 탭에서 Python 3 환경의 빈 아이콘을 클릭하여 빈 전자 필기장을 엽니다.
현재 Python 3은 전자 필기장에서 쿼리 서비스에 대해 지원되는 유일한 환경입니다.
왼쪽 선택 레일에서 데이터 아이콘을 클릭하고 데이터 집합 디렉토리를 두 번 클릭하여 모든 데이터 세트를 나열합니다.
탐색할 데이터 Adobe Analytics 세트를 찾고 목록을 마우스 오른쪽 단추로 클릭한 다음 노트북의 데이터 쿼리를 클릭하여 빈 전자 필기장에서 SQL 쿼리를 생성합니다.
함수가 들어 있는 첫 번째 생성된 셀을 클릭하고 재생 단추 qs_connect()
를 클릭하여 실행합니다. 이 함수는 노트북 인스턴스와 노트북 인스턴스 간에 연결을 만듭니다 Query Service.
두 번째 생성된 SQL 쿼리에서 데이터 Adobe Analytics 집합 이름을 복사하면 그 뒤의 값이 됩니다 FROM
.
단추를 클릭하여 새 노트북 셀을 삽입합니다 .
새 셀에서 다음 가져오기 문을 복사, 붙여넣기 및 실행합니다. 다음 문은 데이터를 시각화하는 데 사용됩니다.
import plotly.plotly as py
import plotly.graph_objs as go
from plotly.offline import iplot
그런 다음 다음 다음 변수를 복사하여 새 셀에 붙여 넣습니다. 필요에 따라 값을 수정한 다음 실행합니다.
target_table = "your Adobe Analytics dataset name"
target_year = "2019"
target_month = "04"
target_day = "01"
target_table
:데이터 세트 Adobe Analytics 이름입니다.target_year
:대상 데이터가 있는 특정 연도입니다.target_month
:대상이 있는 특정 월입니다.target_day
:대상 데이터가 있는 특정 요일.이러한 값은 언제든지 변경할 수 있습니다. 변경 사항을 적용할 변수 셀을 실행해야 합니다.
개별 전자 필기장 셀에 다음 SQL 쿼리를 입력합니다. 셀을 클릭한 다음 재생 단추를 클릭하여 쿼리를 실행합니다. 성공적인 쿼리 결과 또는 오류 로그가 실행된 셀 아래에 표시됩니다.
장시간 노트북이 비활성화되면 노트북과 노트북 간의 연결이 끊어질 Query Service 수 있습니다. 이러한 경우 오른쪽 상단 모서리에 있는 JupyterLab 전원 단추 를 클릭하여 다시 시작합니다.
노트북 커널이 재설정되지만 셀이 남아 있게 되고 모든 셀을 다시 실행하여 중단한 부분을 계속 진행합니다.
다음 쿼리는 지정된 날짜에 대한 시간별 방문자 수를 반환합니다.
%%read_sql hourly_visitor -c QS_CONNECTION
SELECT Substring(timestamp, 1, 10) AS Day,
Substring(timestamp, 12, 2) AS Hour,
Count(DISTINCT concat(enduserids._experience.aaid.id,
_experience.analytics.session.num)) AS Visit_Count
FROM {target_table}
WHERE TIMESTAMP = to_timestamp('{target_year}-{target_month}-{target_day}')
GROUP BY Day, Hour
ORDER BY Hour;
위 쿼리에서 절의 타임스탬프는 WHERE
값으로 설정됩니다 target_year
. 중괄호(중괄호)로 묶어서 SQL 쿼리에 변수를{}
포함합니다.
쿼리의 첫 번째 줄에는 선택 변수가 포함됩니다 hourly_visitor
. 쿼리 결과는 이 변수에 Paranda 데이터 프레임으로 저장됩니다. 결과를 데이터 프레임에 저장하면 원하는 Python 패키지를 사용하여 나중에 쿼리 결과를 시각화할 수 있습니다. 새 셀에서 다음 Python 코드를 실행하여 막대 그래프를 생성합니다.
trace = go.Bar(
x = hourly_visitor['Hour'],
y = hourly_visitor['Visit_Count'],
name = "Visitor Count"
)
layout = go.Layout(
title = 'Visit Count by Hour of Day',
width = 1200,
height = 600,
xaxis = dict(title = 'Hour of Day'),
yaxis = dict(title = 'Count')
)
fig = go.Figure(data = [trace], layout = layout)
iplot(fig)
다음 쿼리는 지정된 날짜에 대한 시간별 작업 수를 반환합니다.
%%read_sql hourly_actions -d -c QS_CONNECTION
SELECT Substring(timestamp, 1, 10) AS Day,
Substring(timestamp, 12, 2) AS Hour,
Count(concat(enduserids._experience.aaid.id,
_experience.analytics.session.num,
_experience.analytics.session.depth)) AS Count
FROM {target_table}
WHERE TIMESTAMP = to_timestamp('{target_year}-{target_month}-{target_day}')
GROUP BY Day, Hour
ORDER BY Hour;
위의 쿼리를 실행하면 결과가 데이터 프레임 hourly_actions
으로 저장됩니다. 결과를 미리 보려면 새 셀에서 다음 함수를 실행합니다.
hourly_actions.head()
위의 쿼리는 WHERE 절의 논리 연산자를 사용하여 지정된 날짜 범위에 대한 시간별 작업 개수를 반환하도록 수정할 수 있습니다 .
%%read_sql hourly_actions_date_range -d -c QS_CONNECTION
SELECT Substring(timestamp, 1, 10) AS Day,
Substring(timestamp, 12, 2) AS Hour,
Count(concat(enduserids._experience.aaid.id,
_experience.analytics.session.num,
_experience.analytics.session.depth)) AS Count
FROM {target_table}
WHERE timestamp >= TO_TIMESTAMP('2019-06-01 00', 'YYYY-MM-DD HH')
AND timestamp <= TO_TIMESTAMP('2019-06-02 23', 'YYYY-MM-DD HH')
GROUP BY Day, Hour
ORDER BY Hour;
수정된 쿼리를 실행하면 결과가 데이터 프레임 hourly_actions_date_range
으로 저장됩니다. 결과를 미리 보려면 새 셀에서 다음 함수를 실행합니다.
hourly_actions_date_rage.head()
다음 쿼리는 지정된 날짜에 대해 방문자 세션당 이벤트 수를 반환합니다.
%%read_sql events_per_session -c QS_CONNECTION
SELECT concat(enduserids._experience.aaid.id,
'-#',
_experience.analytics.session.num) AS aaid_sess_key,
Count(timestamp) AS Count
FROM {target_table}
WHERE TIMESTAMP = to_timestamp('{target_year}-{target_month}-{target_day}')
GROUP BY aaid_sess_key
ORDER BY Count DESC;
다음 코드를 실행하여 방문 세션당 이벤트 수에 대한 히스토그램을 생성합니다. Python
data = [go.Histogram(x = events_per_session['Count'])]
layout = go.Layout(
title = 'Histogram of Number of Events per Visit Session',
xaxis = dict(title = 'Number of Events'),
yaxis = dict(title = 'Count')
)
fig = go.Figure(data = data, layout = layout)
iplot(fig)
다음 쿼리는 지정된 날짜에 가장 많이 사용되는 10개의 페이지를 반환합니다.
%%read_sql popular_pages -c QS_CONNECTION
SELECT web.webpagedetails.name AS Page_Name,
Sum(web.webpagedetails.pageviews.value) AS Page_Views
FROM {target_table}
WHERE TIMESTAMP = to_timestamp('{target_year}-{target_month}-{target_day}')
GROUP BY web.webpagedetails.name
ORDER BY page_views DESC
LIMIT 10;
다음 쿼리는 지정된 날짜에 대해 가장 활성화된 10명의 사용자를 반환합니다.
%%read_sql active_users -c QS_CONNECTION
SELECT enduserids._experience.aaid.id AS aaid,
Count(timestamp) AS Count
FROM {target_table}
WHERE TIMESTAMP = to_timestamp('{target_year}-{target_month}-{target_day}')
GROUP BY aaid
ORDER BY Count DESC
LIMIT 10;
다음 쿼리는 지정된 날짜에 대해 대부분의 사용자 활동을 생성하는 10개 도시를 반환합니다.
%%read_sql active_cities -c QS_CONNECTION
SELECT concat(placeContext.geo.stateProvince, ' - ', placeContext.geo.city) AS state_city,
Count(timestamp) AS Count
FROM {target_table}
WHERE TIMESTAMP = to_timestamp('{target_year}-{target_month}-{target_day}')
GROUP BY state_city
ORDER BY Count DESC
LIMIT 10;
이 자습서에서는 전자 필기장 사용에 대한 몇 가지 샘플 사용 사례 Query Service 를 Jupyter 시연했습니다. 데이터 액세스 SDK를 사용하여 비슷한 작업이 수행되는 방식을 보려면 Jupiter 전자 필기장을 사용하여 데이터 분석 자습서에 따릅니다.