은하계 데이터 분석 여정

MySQLBeginner
지금 연습하기

소개

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;

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

부스트 사용 분석

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

  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;

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

에너지 소비 분석

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

  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, min 및 max 함수를 활용하여 이전 레이스에서 파일럿의 성능과 패턴에 대한 귀중한 통찰력을 얻었습니다.

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

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