본문 바로가기

JAVA/kafka

카프카 웹 활동 분석

반응형

웹 활동 분석?

웹사이트를 방문하는 사용자의 행동을 파악하여 마케팅에 활용하기 위한 작업이다.

사용자가 웹에서 클릭하는 활동은 기본적으로 모두 로그에 남으므로 사용자가 웹 사이트의 페이지 사이를 어떤 식으로 이동했는지 파악할수 있다.

 

- 페이지 뷰와 전활율(성공율/구매율) 파악

- 개인화된 권장사항

- 로얄 고랙을 파악하는 고객 클러스터링

- A/B 테스트에 의한 웹사이트 개선

 

웹사이트 액세스 분석에서는 일정량의 로그 모임을 받아 데이터베이스나 데이터 웨어 하우스에 데이터를 투입하여 BI도구를 사용하거나 액세스 해석 전용 도구나 서비스를 이용해 작업하는 경우가 대부분이다.

 

사용자의 행동을 실시간으로 파악해 즉시 대응하는 경우

- 상태 업데이트가 시시각가 표시되는 실시간 대시보드 구축

- 실시간 이상 탐지/부정 검출

- 실시간으로 사용자의 행동을 추적하여 서비스 이탈 방지

 

웹 활동 분석에 해결 과제

- 실시간을 실현하기 위한 구조

실시간으로 데이터를 받으려면 어떻게 하면 좋을지, 데이터 파이프라인 내부 어디에서 실시간 처리할것인지, 이를 위해 어떤 제품을 사용할지에 대한 검토가 필요하다.

레코드 단위로 작업을 해야 하는지, 수 밀리초 시간폭으로 여러 레코드 단위로 처리해도 상관없는지 같은 여러 요구사항도 확인해야 한다.

- 여러 데이터 소스와 접속

데이터를 생성하는 쪽 시스템이 여러 있을경우 해당 시스템들과 접속할수 있어야 한다.

데이터 허브나 로그 수집이 갖고 있는 과제와 동일하다.

 

- 데이터분실 방지

이상 탐지, 부정 검출을 해야 하는데, 데이터 레코드가 손실됐을 경우 확인할 방법이 없다.

따라서 레코드를 잃지 않기 위한 송수신 보증이 필요하다.

웹 서비스의 경우 중복없이 1건 송신하는것을 엄격하게 요구하는 경우는 그리 많지 않다고 생각한다.

Exactly Once(중복 및 손실없이 1회만 송수신)라고 하면 데이터 처리량이 감소하고, 구현이 복잡해지는 경향이 있다.

대량의 데이터를 처리해아하는 경우 엄밀한 송수신 보증은 보류하고 데이터 분실을 허용하지 않지만 최소 허용(At Least Once)하는 수준으로 하는 경우가 많다.

 

- 순서 보증

순서 보증의 경우 온라인 게임에서 사용자 이탈방지 사례가 이해하기 쉬울것이다.

사용자거 현재 어떤 상황에 있는지도 분석할수 있다.

특별 이벤트를 실시 등 사용자 이탈 방지를 막을수 있다.

사용자의 행동 순서를 고려하는 방법으로 사용자 행동 순서대로 데이터를 받기 위한 장치가 필요하다.

 

카프카로 웹 활동 분석하기

 

실시간으로 처리하는 부분은 Kafka Stream을 시용하는 방법.

카프카 뒤에서 스파크의 스트림 처리를 위한 구성요소인 Structured Streaming을 사용하는 방법.

 

실시간 발생하는 데이터를 간혈적으로 수신하고 수신한 데이터를 바로 처리해야 하기 때문에 스트림 처리가 필요하다.

 

스트림 처리란?

스트림 처리는 실시간 생성되는 데이터를 순차적으로 처리하는 방식이다.

실시간 생성되는 데이터를 스트림 데이터라고 부른다.

 

스트림 데이터의 예로 시스템 로그나, 웹 사이트의 클릭 로그, 디바이스에서 생성되는 센서 데이터 등

스트림 데이터의 경우 생성된 데이터가 모여 이루어진 파일 형태로 일정기간마다 보내는 것이 아니라 킬로바이트정도의 작은 단위로 지속적으로 보낸다.

 

 

출처 - 실전 아파치 카프카

- 저자: 사사키도루, 이와사키 마사다케, 사루타 코스케, 쓰즈키 마사요시, 요시다 고요

역자 - 정인식

반응형

'JAVA > kafka' 카테고리의 다른 글

카프카 이벤트 소싱  (0) 2020.08.18
카프카로 로그 수집  (0) 2020.08.18
카프카로 데이터 허브  (0) 2020.08.18