복잡한 쿼리 설명
이 단계에서는 조인 (join) 과 집계 (aggregation) 를 포함하는 더 복잡한 쿼리 플랜을 설명하는 방법을 배웁니다.
- 다음 스키마를 사용하여
locations라는 다른 샘플 테이블을 생성합니다.
CREATE TABLE locations (
location_id INT,
location_name STRING,
coordinates STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
/home/hadoop/sample_data/locations.csv 파일에서 locations 테이블로 샘플 데이터를 로드합니다.
LOAD DATA LOCAL INPATH '/home/hadoop/sample_data/locations.csv' INTO TABLE locations;
events 및 locations 테이블을 조인하고 위치별 이벤트 수를 계산하는 다음 쿼리를 실행합니다.
SELECT l.location_name, COUNT(e.event_id) AS event_count
FROM events e
JOIN locations l ON e.event_id = l.location_id
GROUP BY l.location_name;
- 이 문에 대한 쿼리 플랜을 설명합니다.
EXPLAIN
SELECT l.location_name, COUNT(e.event_id) AS event_count
FROM events e
JOIN locations l ON e.event_id = l.location_id
GROUP BY l.location_name;
- 출력을 분석하고 파일 시스템 스캔 (file system scans), 매퍼 (mappers), 리듀서 (reducers), 조인 (join) 및 집계 (aggregation) 단계 등 쿼리 실행에 관련된 다양한 단계를 관찰합니다.