소개
Intergalactic Space Racing Track Design Lab 에 오신 것을 환영합니다! 유명한 Space Racing Track Designer 로서, 여러분의 임무는 이전 레이스 데이터를 분석하고 다가오는 Intergalactic Space Racing Championship 을 위한 짜릿한 새 트랙을 설계하는 것입니다. 은하계 최고의 파일럿들이 이 트랙에서 경쟁하며 속도와 지구력의 한계를 시험하게 될 것입니다.
여러분의 목표는 Hadoop 과 집계 함수 (Aggregating Functions) 의 강력한 기능을 활용하여 레이스 데이터에서 가치 있는 통찰력을 추출하는 것입니다. 랩 타임, 부스트 사용량, 에너지 소비량과 같은 다양한 지표를 분석하여 패턴을 파악하고 새로운 트랙 설계를 위한 정보에 입각한 결정을 내릴 수 있습니다.
분석 기술과 Hadoop 지식을 통해 은하계 레이싱의 미래를 만들어갈 흥미진진한 우주 여행을 시작할 준비를 하세요!
환경 설정
이 단계에서는 Hadoop 환경을 설정하고 레이스 데이터에 익숙해지겠습니다.
- 터미널을 열고 다음 명령을 실행하여
hadoop사용자로 전환합니다.
su - hadoop
/home/hadoop디렉토리로 이동합니다.
cd /home/hadoop
race_data라는 새 디렉토리를 만들고 레이스 데이터 파일을 복사합니다.
hadoop fs -mkdir -p /home/hadoop/race_data
hadoop fs -put /home/hadoop/race_data/* /home/hadoop/race_data
race_data디렉토리의 내용을 나열하여 파일이 성공적으로 복사되었는지 확인합니다.
hadoop fs -ls /home/hadoop/race_data
출력에 레이스 데이터 파일이 나열되어야 합니다.
랩 타임 분석
이 단계에서는 avg 함수를 사용하여 이전 레이스 동안 파일럿의 평균 랩 타임을 분석합니다.
- Hive 쉘을 시작합니다.
hive
- 랩 타임 데이터를 저장할
lap_times라는 새 테이블을 생성합니다.
CREATE TABLE lap_times (
pilot_id INT,
race_id INT,
lap_time DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
race_data/lap_times.csv파일에서lap_times테이블로 랩 타임 데이터를 로드합니다.
LOAD DATA INPATH '/home/hadoop/race_data/lap_times.csv' INTO TABLE lap_times;
- 모든 레이스에서 각 파일럿의 평균 랩 타임을 계산합니다.
SELECT pilot_id, avg(lap_time) AS avg_lap_time
FROM lap_times
GROUP BY pilot_id;
이 쿼리는 각 파일럿의 평균 랩 타임을 출력하여 가장 빠른 파일럿을 식별하고 새로운 트랙을 설계할 때 그들의 강점을 고려할 수 있도록 합니다.
부스트 사용 분석
이 단계에서는 sum 및 count 함수를 사용하여 이전 레이스 동안 파일럿의 부스트 사용 패턴을 분석합니다.
- 부스트 사용 데이터를 저장할
boost_usage라는 새 테이블을 생성합니다.
CREATE TABLE boost_usage (
pilot_id INT,
race_id INT,
boost_used BOOLEAN
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
race_data/boost_usage.csv파일에서boost_usage테이블로 부스트 사용 데이터를 로드합니다.
LOAD DATA INPATH '/home/hadoop/race_data/boost_usage.csv' INTO TABLE boost_usage;
- 각 파일럿이 레이스 동안 부스트를 사용한 총 횟수를 계산합니다.
SELECT pilot_id, sum(CASE WHEN boost_used THEN 1 ELSE 0 END) AS total_boosts_used
FROM boost_usage
GROUP BY pilot_id;
- 각 파일럿이 부스트를 사용한 레이스의 비율을 계산합니다.
SELECT pilot_id,
round(
sum(CASE WHEN boost_used THEN 1 ELSE 0 END) * 100.0 / count(*),
2
) AS boost_usage_percentage
FROM boost_usage
GROUP BY pilot_id;
이러한 쿼리는 파일럿의 부스트 사용 패턴에 대한 통찰력을 제공하여 새로운 트랙에서 부스트 패드 및 에너지 재충전 스테이션의 최적 배치를 결정하는 데 도움이 될 수 있습니다.
에너지 소비 분석
이 단계에서는 min 및 max 함수를 사용하여 이전 레이스 동안 파일럿의 에너지 소비 패턴을 분석합니다.
- 에너지 소비 데이터를 저장할
energy_consumption이라는 새 테이블을 생성합니다.
CREATE TABLE energy_consumption (
pilot_id INT,
race_id INT,
energy_consumed DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
race_data/energy_consumption.csv파일에서energy_consumption테이블로 에너지 소비 데이터를 로드합니다.
LOAD DATA INPATH '/home/hadoop/race_data/energy_consumption.csv' INTO TABLE energy_consumption;
- 모든 레이스에서 각 파일럿의 최소 및 최대 에너지 소비량을 찾습니다.
SELECT pilot_id, min(energy_consumed) AS min_energy_consumed, max(energy_consumed) AS max_energy_consumed
FROM energy_consumption
GROUP BY pilot_id;
- 모든 레이스에서 각 파일럿의 평균 에너지 소비량을 계산합니다.
SELECT pilot_id, avg(energy_consumed) AS avg_energy_consumed
FROM energy_consumption
GROUP BY pilot_id;
이러한 쿼리는 파일럿의 에너지 소비 패턴을 이해하는 데 도움이 되며, 이는 새로운 트랙에서 에너지 재충전 스테이션의 배치와 에너지 효율적인 섹션의 설계에 영향을 미칠 수 있습니다.
요약
이 랩에서는 Hadoop 집계 함수 (Aggregating Functions) 의 강력함을 탐구하여 랩 타임, 부스트 사용량 및 에너지 소비를 포함한 레이스 데이터의 다양한 측면을 분석했습니다. avg, sum, count, min 및 max 함수를 활용하여 이전 레이스에서 파일럿의 성능과 패턴에 대한 귀중한 통찰력을 얻었습니다.
이러한 통찰력은 파일럿의 강점과 약점을 고려하여 스릴 넘치고 경쟁적인 Intergalactic Space Racing Championship 을 보장하는 짜릿한 새 트랙을 설계하는 기반이 될 것입니다.
이 실습 경험을 통해 Hadoop 및 Hive 기술을 연마했을 뿐만 아니라 다양한 도메인에 적용할 수 있는 데이터 분석 기술에 대한 더 깊은 이해를 얻었습니다. 이 랩을 완료하고 은하계 레이싱의 미래에 기여한 것을 축하합니다!



