통합 데이터 퀘스트 Hadoop 통합

HadoopBeginner
지금 연습하기

소개

신비로운 데이터고니아 왕국에서, 용감한 데이터 기사 라이언하트 (Lionheart) 는 특별한 퀘스트를 시작했습니다. 왕국의 번영은 데이터를 활용하는 데 달려 있었고, 라이언하트의 임무는 왕국 전역에 흩어져 있는 다양한 데이터 세트를 통합하는 것이었습니다. 그의 믿음직한 Hadoop 도구들을 옆에 두고, 그는 앞에 놓인 난관들을 정복하기 위해 나섰습니다.

왕국의 광대한 들판에는 작물 수확량, 토양 상태, 기상 패턴에 대한 귀중한 정보가 담겨 있었습니다. 광산에서는 광물 매장량 및 채굴 속도에 대한 데이터가 통합을 기다리고 있었습니다. 번화한 도시들은 무역, 상업, 인구 역학에 대한 기록으로 가득했습니다. 라이언하트의 목표는 이러한 서로 다른 데이터 소스를 통합하여 왕국의 의사 결정권자들에게 힘을 실어주고 발전을 이끌어낼 수 있는 통일되고 포괄적인 데이터 세트를 만드는 것이었습니다.

샘플 데이터 생성

이 단계에서는 Hive 의 UNION 연산자의 강력함을 탐구하기 위해 몇 가지 샘플 데이터 파일을 생성합니다.

먼저, 터미널에서 다음 명령을 실행하여 hadoop 사용자로 로그인했는지 확인합니다.

su - hadoop

그런 다음, /home/hadoop/data 디렉토리로 이동하여 crops라는 새 디렉토리를 생성합니다.

mkdir -p /home/hadoop/data/crops

다음으로, crops 디렉토리 안에 다음 내용으로 wheat.csvcorn.csv라는 두 개의 파일을 생성합니다.

wheat.csv:

North,2020,50
South,2020,45
East,2020,48
West,2020,42

corn.csv:

North,2020,50
South,2020,58
East,2020,62
West,2020,55

원하는 텍스트 편집기를 사용하여 이러한 파일을 생성할 수 있습니다.

Hive 테이블에 데이터 로드

이 단계에서는 Hive 테이블을 생성하고 샘플 데이터를 로드합니다.

먼저, 터미널에서 다음 명령을 실행하여 Hive CLI 를 시작합니다.

hive

Hive CLI 에 접속한 후, agriculture라는 데이터베이스를 생성합니다.

CREATE DATABASE agriculture;

다음으로, agriculture 데이터베이스로 전환합니다.

USE agriculture;

적절한 스키마로 wheat라는 테이블을 생성합니다.

CREATE TABLE wheat (
  region STRING,
  year INT,
  yield INT
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

wheat.csv 데이터를 wheat 테이블에 로드합니다.

LOAD DATA LOCAL INPATH '/home/hadoop/data/crops/wheat.csv' OVERWRITE INTO TABLE wheat;

corn 테이블에 대해 이 과정을 반복합니다.

CREATE TABLE corn (
  region STRING,
  year INT,
  yield INT
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

LOAD DATA LOCAL INPATH '/home/hadoop/data/crops/corn.csv' OVERWRITE INTO TABLE corn;

SELECT 문을 사용하여 테이블의 데이터를 확인할 수 있습니다.

SELECT * FROM wheat;
SELECT * FROM corn;

UNION 연산 수행

이제 Hive 테이블에 데이터를 로드했으므로 UNION 연산자를 사용하여 두 개 이상의 쿼리 결과를 결합할 수 있습니다.

Hive CLI 에서 다음 쿼리를 실행합니다.

CREATE TABLE result_1
AS
SELECT region, year, yield FROM wheat
UNION
SELECT region, year, yield FROM corn;

SELECT * FROM result_1;

이 쿼리는 wheatcorn 테이블의 결과를 결합하여 모든 지역, 연도 및 수확량을 포함하는 통합 데이터 세트를 효과적으로 생성합니다.

중복 행을 결과 집합에 포함하는 UNION ALL도 수행할 수 있습니다.

SELECT region, year, yield FROM wheat
UNION ALL
SELECT region, year, yield FROM corn;

UNION 또는 UNION ALL 연산에 사용된 모든 쿼리에서 열 이름과 데이터 유형이 일치해야 합니다.

고급 UNION 연산 (선택 사항)

더 복잡한 쿼리를 결합하거나 필터링 또는 집계와 같은 다른 Hive 구성 요소와 함께 사용하여 UNION 연산자를 더 자세히 탐색할 수 있습니다.

예를 들어, GROUP BY 쿼리의 결과를 다른 쿼리와 결합할 수 있습니다.

CREATE TABLE result_2
AS
SELECT region, SUM(yield) AS total_yield FROM wheat GROUP BY region
UNION
SELECT region, yield FROM corn;

SELECT * FROM result_2;

또는 결합하기 전에 결과를 필터링할 수 있습니다.

SELECT region, year, yield FROM wheat WHERE year = 2020
UNION
SELECT region, year, yield FROM corn WHERE year = 2020 AND yield > 60;

다양한 조합을 자유롭게 실험해보고 UNION 연산자가 여러 소스의 데이터를 통합하는 데 어떻게 도움이 되는지 확인하십시오.

요약

이 랩에서는 Hadoop 생태계에서 데이터 웨어하우징 및 분석을 위한 강력한 도구인 Apache Hive 에서 UNION 연산자의 사용법을 살펴보았습니다. 샘플 데이터 세트를 생성하고 Hive 테이블에 로드하여 UNIONUNION ALL을 사용하여 여러 쿼리의 결과를 결합하는 방법을 배웠습니다. 이 강력한 기능을 통해 다양한 소스의 데이터를 통합하여 포괄적인 분석과 정보에 입각한 의사 결정을 가능하게 합니다.

데이터 기사 Lionheart 의 여정을 통해 데이터 통합의 변혁적인 힘을 목격했습니다. 왕국의 들판, 광산 및 도시에서 얻은 이질적인 데이터 세트를 통합함으로써 Lionheart 는 의사 결정자에게 포괄적인 관점을 제공하여 Datagonia 영역의 발전과 번영을 위한 길을 열었습니다.

이 랩은 Hive 및 UNION 연산자에 대한 실습 경험을 제공했을 뿐만 아니라 통찰력을 얻고 혁신을 추진하는 데 있어 데이터 통합의 중요성을 상기시켜 주었습니다. 이러한 기술을 마스터함으로써 복잡한 데이터 문제를 해결하고 더 밝은 미래를 만들어갈 수 있는 도구를 갖춘 데이터 기사가 될 수 있습니다.