Cute Hello Kitty 13 [Alpha Project] 3. Sample log 데이터 분석

스터디/Project

[Alpha Project] 3. Sample log 데이터 분석

검은콩맛두유 2025. 11. 28. 15:13

전체 데이터는 총 7개의 파일로 용량이 컸기 때문에 전체 데이터를 적재했다가 오류나 인코딩 문제가 발생할 수 있기 때문에 샘플 데이터를 추출하여 정상 작동하는지 테스트를 먼저 진행하였다.

[1] HDFS에 데이터 업로드

# access_logs_20240928
hdfs dfs -mkdir /myData_20240928
hdfs dfs -put /Users/EvcntH/Downloads/ag02_access_log-20230928 /myData_20240928/

: 로컬에 있는 로그 파일을 HDFS 디렉토리로 이동

[2] Hive 서버 구동

경로 : Desktop/Hive-Installation/apache-hive-2.3.7-bin
명령어 : hive --service metastore

 

[3] Presto 구동 및 CLI접속

경로 : /Desktop/Presto-Installatibon/presto-server-331
명령어 : sudo bin/launcher.py start
명령어 : sudo bin/launcher.py status
Running as 30503

경로 : Desktop/Presto-Installation
명령어 : ./presto-cli-331-executable.jar --server localhost:9090 --catalog hive --schema default

 

 

[4] SQL을 통해 데이터 특성 파악

1. IP 별 요청 빈도

SELECT ip, COUNT(*) AS request_count
FROM access_logs
GROUP BY ip
ORDER BY request_count DESC
LIMIT 10;

 

결과)

      ip       | request_count
---------------+---------------
 211.188.154.4 |       1346569
 ::1           |          5800
 NULL          |             1
(3 rows)

: 특정 IP에서 약 134만건의 압도적인 요청 발생. 일반적인 사용자 패턴이 아닌 특정 게이트웨이나 프록시 서버를 통해 트래픽이 들어 있음으로 추측되었다.

 

2. HTTP 상태 코드별 분포 - 정상 작동하는가

SELECT status, COUNT(*) AS count
FROM access_logs
GROUP BY status
ORDER BY count DESC;

 

결과)

 status |  count
--------+---------
    200 | 1352335
    400 |      34
   NULL |       1
(3 rows)

: 200 OK (성공) 이 약 135만건으로 대다수를 차지하였다. 400 BAD (실패)sms 34건에 불과하여, 수집된 로그 데이터의 품질과 서비스 상태가 양호함을 알 수 있다. 실패 데이터가 소수에 불과하였으므로 이상치 제거를 위하여 데이터 전처리 시 삭제 후 진행하기로 하였다.

 

3. 시간대별 요청 횟수

SELECT SUBSTR(`timestamp`, 1, 13) AS hour, COUNT(*) AS request_count
FROM access_logs
GROUP BY SUBSTR(`timestamp`, 1, 13)
ORDER BY hour;

 

결과)

     hour      | request_count
---------------+---------------
 26/Sep/2023:0 |        277425
 26/Sep/2023:1 |        823971
 26/Sep/2023:2 |        221379
 27/Sep/2023:0 |         29594
 NULL          |             1

: 시간대 별 데이터 개수를 확인하였습니다. 이 데이터는 추석기간 교통량 데이터로, 시간을 3개의 범위로 나눠서 보여준다. :1에 해당하는 오전 10시~ 저녁7시 시간대의 교통량 데이터가 82만건으로 가장 많은 것을 확인하였다.

 

[5] 위도,경도 일치 확인

특정 도로 지점의 교통량 분석을 위해 로그 데이터 내 위도(Lat)·경도(Lon) 정보의 정확성을 검증하였다.

로그 데이터에서 추출한 위도·경도 샘플을 Kakao Map API에 연동하여 시각화를 시도하였을 때, 우리나라 지도를 벗어나는 데이터들이 있음을 확인하였다. 

 

제공받은 데이터의 좌표계가 일반적인 WGS84가 아닐 가능성이 있어, 데이터 제공자인 멘토님(엠큐닉)께 문의를 드렸다. 확인 결과, 보안상의 이유로 내부적인 별도의 좌표 변환 알고리즘이 적용된 데이터라는 답변과 변환식을 받을 수 있었다.