Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

session_id 부여 로직 수정 및 Airflow dag 개발 #5

Merged
merged 11 commits into from
Jan 21, 2025
Merged

Conversation

dodorip
Copy link
Collaborator

@dodorip dodorip commented Jan 5, 2025

#4 아래와 같은 이유로 session_id 부여 로직 수정하였습니다.

  • 기존 user_id와 session_number 만으로 session_id를 부여할 경우 전체 데이터에선 일관성이 보장되지 않을 가능성 존재

로직 수정 사항

  1. 동일 세션 내의 event_time 최소값 추출
  • 컬럼명 : session_start_time
  1. session_id 컬럼 로직 변경
  • 기존 : user_id & session_number
  • 현재 : session_start_time & user_id & session_number
  • 최종 : session_start_time & user_id

session_number가 꼭 필요한가요?
-> session_start_time & user_id -> 세션을 식별하는 식별자로서 session_start_time이 그 역할을 하죠

  1. 이전 1시간 데이터에서 세션 active 여부 판단 -> session_id 가 존재하는지
  • active된 session 이라면 부여되어있는 session_id 동일하게 부여
  • inactive이거나 new session 이라면 새로운 sessio_id 부여

Airflow dag 개발

Airflow dag 개발 하였습니다. PR을 쪼개지 못한 점 양해부탁드립니다.

변경 사항

  1. schema 파일 디렉토리 변경하였습니다.
  2. qa dag 생성하였습니다
  3. Airflow 날짜 및 시간 인자 활용하여 동적 파일 경로로 수정하였습니다.

- 수정 이유 : 기존 user_id와 session_number 만으로 session_id를 부여할 경우 전체 데이터에선 일관성이 보장되지 않을 가능성 존재
- 수정 내용 : 동일 세션의 start_event_time 컬럼 생성 및 session_id 부여에 활용
@dodorip dodorip requested a review from Bansng January 5, 2025 14:16
@dodorip dodorip self-assigned this Jan 5, 2025
@dodorip dodorip changed the title [#4] session_id 부여 로직 수정 [#2] session_id 부여 로직 수정 Jan 5, 2025
@dodorip dodorip changed the title [#2] session_id 부여 로직 수정 [#4] session_id 부여 로직 수정 Jan 5, 2025
@Bansng
Copy link
Collaborator

Bansng commented Jan 6, 2025

session_id 컬럼 로직 변경
기존 : user_id & session_number
현재 : session_start_time & user_id & session_number

session_number 정의는?
-> �현재 존재하는 데이터에서 하나의 세션으로 묶이는지 아닌지만 판단
-> user_id 별로 session의 구분
-> 한 시간 데이터 내에서 session을 묶고 거기에 번호를 부여한 것 -> 0,1,2

session_number가 꼭 필요한가요?
-> session_start_time & user_id -> 세션을 식별하는 식별자로서 session_start_time이 그 역할을 하죠

@Bansng
Copy link
Collaborator

Bansng commented Jan 6, 2025

- 이전 30분 데이터 확인하여 active 여부 판단
- active 세션이라면 이미 세션id가 존재하므로 기존 세션id 동일하게 부여
- inactive 세션이라면 새로운 세션id 부여
- session_start_time & user_id로 session_id 식별자 수정
- schema 수정 - session_id 컬럼 추가
@dodorip dodorip changed the title [#4] session_id 부여 로직 수정 session_id 부여 로직 수정 Jan 8, 2025
@dodorip dodorip changed the title session_id 부여 로직 수정 session_id 부여 로직 수정 및 Airflow dag 개발 Jan 12, 2025
Copy link

@dodorip
Copy link
Collaborator Author

dodorip commented Jan 12, 2025

ds 및 hour 인자로 file path 동적으로 변경하였습니다.
아래 코드로 과거 데이터 backfill 테스트 까지 완료하였습니다.
airflow dags trigger --exec-date "2019-10-10T14:00:00" hourly_batch_sessionization

start_date 설정 및 backfill 부분까지 완료하였습니다.

@dodorip dodorip merged commit 6dd2900 into main Jan 21, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants