은하계 데이터 분석 여정

HadoopBeginner
지금 연습하기

소개

Intergalactic Space Racing Track Design Lab 에 오신 것을 환영합니다! 유명한 Space Racing Track Designer 로서, 여러분의 임무는 이전 레이스 데이터를 분석하고 다가오는 Intergalactic Space Racing Championship 을 위한 짜릿한 새 트랙을 설계하는 것입니다. 은하계 최고의 파일럿들이 이 트랙에서 경쟁하며 속도와 지구력의 한계를 시험하게 될 것입니다.

여러분의 목표는 Hadoop 과 집계 함수 (Aggregating Functions) 의 강력한 기능을 활용하여 레이스 데이터에서 가치 있는 통찰력을 추출하는 것입니다. 랩 타임, 부스트 사용량, 에너지 소비량과 같은 다양한 지표를 분석하여 패턴을 파악하고 새로운 트랙 설계를 위한 정보에 입각한 결정을 내릴 수 있습니다.

분석 기술과 Hadoop 지식을 통해 은하계 레이싱의 미래를 만들어갈 흥미진진한 우주 여행을 시작할 준비를 하세요!

환경 설정

이 단계에서는 Hadoop 환경을 설정하고 레이스 데이터에 익숙해지겠습니다.

  1. 터미널을 열고 다음 명령을 실행하여 hadoop 사용자로 전환합니다.
su - hadoop
  1. /home/hadoop 디렉토리로 이동합니다.
cd /home/hadoop
  1. race_data라는 새 디렉토리를 만들고 레이스 데이터 파일을 복사합니다.
hadoop fs -mkdir -p /home/hadoop/race_data
hadoop fs -put /home/hadoop/race_data/* /home/hadoop/race_data
  1. race_data 디렉토리의 내용을 나열하여 파일이 성공적으로 복사되었는지 확인합니다.
hadoop fs -ls /home/hadoop/race_data

출력에 레이스 데이터 파일이 나열되어야 합니다.

랩 타임 분석

이 단계에서는 avg 함수를 사용하여 이전 레이스 동안 파일럿의 평균 랩 타임을 분석합니다.

  1. Hive 쉘을 시작합니다.
hive
  1. 랩 타임 데이터를 저장할 lap_times라는 새 테이블을 생성합니다.
CREATE TABLE lap_times (
  pilot_id INT,
  race_id INT,
  lap_time DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
  1. race_data/lap_times.csv 파일에서 lap_times 테이블로 랩 타임 데이터를 로드합니다.
LOAD DATA INPATH '/home/hadoop/race_data/lap_times.csv' INTO TABLE lap_times;
  1. 모든 레이스에서 각 파일럿의 평균 랩 타임을 계산합니다.
SELECT pilot_id, avg(lap_time) AS avg_lap_time
FROM lap_times
GROUP BY pilot_id;

이 쿼리는 각 파일럿의 평균 랩 타임을 출력하여 가장 빠른 파일럿을 식별하고 새로운 트랙을 설계할 때 그들의 강점을 고려할 수 있도록 합니다.

부스트 사용 분석

이 단계에서는 sumcount 함수를 사용하여 이전 레이스 동안 파일럿의 부스트 사용 패턴을 분석합니다.

  1. 부스트 사용 데이터를 저장할 boost_usage라는 새 테이블을 생성합니다.
CREATE TABLE boost_usage (
  pilot_id INT,
  race_id INT,
  boost_used BOOLEAN
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
  1. race_data/boost_usage.csv 파일에서 boost_usage 테이블로 부스트 사용 데이터를 로드합니다.
LOAD DATA INPATH '/home/hadoop/race_data/boost_usage.csv' INTO TABLE boost_usage;
  1. 각 파일럿이 레이스 동안 부스트를 사용한 총 횟수를 계산합니다.
SELECT pilot_id, sum(CASE WHEN boost_used THEN 1 ELSE 0 END) AS total_boosts_used
FROM boost_usage
GROUP BY pilot_id;
  1. 각 파일럿이 부스트를 사용한 레이스의 비율을 계산합니다.
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;

이러한 쿼리는 파일럿의 부스트 사용 패턴에 대한 통찰력을 제공하여 새로운 트랙에서 부스트 패드 및 에너지 재충전 스테이션의 최적 배치를 결정하는 데 도움이 될 수 있습니다.

에너지 소비 분석

이 단계에서는 minmax 함수를 사용하여 이전 레이스 동안 파일럿의 에너지 소비 패턴을 분석합니다.

  1. 에너지 소비 데이터를 저장할 energy_consumption이라는 새 테이블을 생성합니다.
CREATE TABLE energy_consumption (
  pilot_id INT,
  race_id INT,
  energy_consumed DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
  1. race_data/energy_consumption.csv 파일에서 energy_consumption 테이블로 에너지 소비 데이터를 로드합니다.
LOAD DATA INPATH '/home/hadoop/race_data/energy_consumption.csv' INTO TABLE energy_consumption;
  1. 모든 레이스에서 각 파일럿의 최소 및 최대 에너지 소비량을 찾습니다.
SELECT pilot_id, min(energy_consumed) AS min_energy_consumed, max(energy_consumed) AS max_energy_consumed
FROM energy_consumption
GROUP BY pilot_id;
  1. 모든 레이스에서 각 파일럿의 평균 에너지 소비량을 계산합니다.
SELECT pilot_id, avg(energy_consumed) AS avg_energy_consumed
FROM energy_consumption
GROUP BY pilot_id;

이러한 쿼리는 파일럿의 에너지 소비 패턴을 이해하는 데 도움이 되며, 이는 새로운 트랙에서 에너지 재충전 스테이션의 배치와 에너지 효율적인 섹션의 설계에 영향을 미칠 수 있습니다.

요약

이 랩에서는 Hadoop 집계 함수 (Aggregating Functions) 의 강력함을 탐구하여 랩 타임, 부스트 사용량 및 에너지 소비를 포함한 레이스 데이터의 다양한 측면을 분석했습니다. avg, sum, count, minmax 함수를 활용하여 이전 레이스에서 파일럿의 성능과 패턴에 대한 귀중한 통찰력을 얻었습니다.

이러한 통찰력은 파일럿의 강점과 약점을 고려하여 스릴 넘치고 경쟁적인 Intergalactic Space Racing Championship 을 보장하는 짜릿한 새 트랙을 설계하는 기반이 될 것입니다.

이 실습 경험을 통해 Hadoop 및 Hive 기술을 연마했을 뿐만 아니라 다양한 도메인에 적용할 수 있는 데이터 분석 기술에 대한 더 깊은 이해를 얻었습니다. 이 랩을 완료하고 은하계 레이싱의 미래에 기여한 것을 축하합니다!