f-lab-edu / league-of-legends-data-solution

‘리그 오브 레전드’를 벤치마킹해서 플레이어의 행동 이벤트를 발생하는 API를 통해 실시간으로 데이터가 잘 흐를 수 있도록 데이터 솔루션을 제공합니다.
2 stars 0 forks source link

feat: 실시간 데이터 처리 스파크 애플리케이션 추가 #18

Closed Ra99it closed 3 months ago

Ra99it commented 3 months ago

변경 사항 개요

관련 이슈

변경 사항 상세 설명

  1. Zeppelin 환경에서 작성했던 코드를 spark-submit 할 수 있게 작성하였습니다.
  2. 개인을 식별 할 수 있는 유저명을 SHA-256을 적용 해 데이터 암호화(가명화)를 적용했습니다. 이로써 접근한 사용자는 식별할 수 없게 됩니다.
  3. 기존은 txt파일로 저장했지만, 현재는 json 파일 형식으로 저장을 진행합니다. 텍스트로 저장하면 데이터를 사용할 때 추가 변환 작업을 요구하게 됩니다. 데이터의 품질이 낮아진다 판단해 json 형식으로 저장하도록 변경하였습니다.

테스트

실행 명령

spark-submit \ --master yarn \ --deploy-mode cluster \ --conf spark.kafka.bootstrap.servers="airflow-mysql-01:29092" \ --conf spark.kafka.topic="lol" \ --packages org.apache.spark:spark-sql-kafka-0-10_2.12:3.3.0,org.apache.spark:spark-streaming-kafka-0-10_2.12:3.3.0 \ ./spark_streaming_kafka_to_s3.py

추가 고려 사항

스크린샷 (필요시)

체크리스트

기타

Ra99it commented 3 months ago

변경사항

  1. Kafka 서버와 토픽 정보를 외부에서 입력하도록 변경하였습니다.
  2. 데이터의 컬럼명을 소문자로 통일했습니다.
  3. IP는 수집하지 않도록 했습니다.
  4. 데이터가 저장되는 위치를 찾기 쉽도록 오늘 날짜를 기준으로 디렉토리안에 데이터가 생성됩니다.