액세스 로그에서 세션을 만드는 방법
8395 단어 액세스 분석TreasureData
배경
로그 분석의 분야에서 세션 집계라는 것은 주류이지만, 그것을 실현하기 위해서는 특정의 업자의 툴이나 룰에 의해 집계되고 있는 경우가 많다.
좀처럼 스스로 규칙을 정해 집계하는 것 이전에는 어려웠습니다만, 쿼리로 간단하게 집계할 수 있다고 하는 순서를 설명하겠습니다.
준비
이번에도 트레저 데이터의 기능을 이용해 시험해 보겠습니다.
지난번 마찬가지로 JavaScriptSDK로 디폴트로 취득할 수 있는 로그를 이용합니다.
사용법은 매뉴얼 를 참고로 했습니다.
- 세션 집계를 해본다
- 각 세션에 대한 사용자 세그먼트 등을 작성해보십시오
그럼 실제로 실행해 봅시다.
집계 방법
집계한 테이블은 보류 데이터의 ResultOutput 기능을 이용하여
데이터를 내보냅니다.
작성한 집계 테이블 : session
--hive
SELECT
TD_SESSIONIZE(time, 86400, td_ip) as session_id
, time
, td_ip
, td_path
, td_client_id
, td_title
, td_browser
, td_color
, td_os_version
, td_browser_version
, td_referrer
, td_screen
, td_os
, td_host
, td_url
, td_language
FROM
(
SELECT time, td_ip, td_path, td_client_id, td_title
,td_browser, td_color, td_os_version
,td_browser_version, td_referrer, td_screen
,td_os, td_host, td_url, td_language
from access
distribute by td_ip
sort by td_ip,time
) a
* 세션 ID별로 시작 시간과 종료 시간을 집계합니다.
(그 세션이 몇 PV일까 함께 출력)
집계된 테이블 이름: session_summary
SELECT
b.session_id as session_id
, b.td_client_id as td_client_id
, TD_TIME_FORMAT(b.session_start_time, 'yyyy-MM-dd HH:mm:ss', 'JST') as session_start_time
, TD_TIME_FORMAT(b.session_end_time, 'yyyy-MM-dd HH:mm:ss', 'JST') as session_end_time
, (b.session_end_time - b.session_start_time) as session_stay_time
, b.session_cnt as session_cnt
FROM
(
SELECT
a.session_id as session_id
, a.td_client_id as td_client_id
, min(a.time) as session_start_time
, max(a.time) as session_end_time
, count(1) as session_cnt
FROM
(
SELECT
TD_SESSIONIZE(time, 86400, td_ip) as session_id
, time
, td_ip
, td_path
, td_client_id
FROM (
SELECT time, td_ip, td_path, td_client_id
from access
distribute by td_ip
sort by td_ip,time
) t
) a
GROUP BY a.session_id,a.td_client_id
ORDER BY a.session_id
) b
* 출력 결과
* 해보고 생각하는 것
- 1일분의 로그를 집계 단위로 하면, 1일에 있어서의 1명의 세션에 관하여 정보를 정리하는 것이 가능.
- ip가 동일한 것을 세션으로 정의하고 집계합니다. 다른 요소에서도 세션을 정의할 수 있을 것 같다.
예를 들어, 동일한 사용자 에이전트라는 요소도 추가 할 수 있습니다.
쉽게 만들 수 있으므로 시도해보십시오.
Reference
이 문제에 관하여(액세스 로그에서 세션을 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/itochu0523/items/80fcde77b4b1a8867baf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)