사막 드래곤 데이터 통합

HadoopBeginner
지금 연습하기

소개

황량한 사막의 광활한 공간에서 맹렬한 모래 폭풍이 맹위를 떨치며, 지평선을 가리는 모래 구름을 휘몰아칩니다. 소용돌이치는 혼돈 속에서 웅장한 사막 드래곤이 하늘을 가르며 날아오르고, 그 비늘은 찬란한 금빛으로 빛납니다. 이 강력한 생물은 중요한 임무를 맡고 있습니다. 흩어진 데이터 소스에서 중요한 정보를 수집하고, 멈추지 않는 모래 폭풍을 길들이는 데 도움이 될 수 있는 숨겨진 통찰력을 발견하는 것입니다.

이 Lab 의 목표는 Hadoop 과 Hive 의 힘을 활용하여 여러 소스의 데이터를 결합하고 결합할 수 있는 기술을 갖추도록 하는 것입니다. 데이터를 결합하는 기술을 마스터함으로써, 사막 드래곤이 맹렬한 모래 폭풍의 비밀을 풀려고 하는 것처럼, 복잡한 관계를 풀고 가치 있는 패턴을 발견하는 능력을 얻게 될 것입니다.

환경 설정

이 단계에서는 Hadoop 과 Hive 를 사용하여 작업하는 데 필요한 환경을 준비합니다.

  1. 터미널 창을 열고 다음 명령을 실행하여 hadoop 사용자로 전환합니다.
su - hadoop
  1. 다음 명령을 실행하여 /home/hadoop 디렉토리로 이동합니다.
cd /home/hadoop
  1. 파일을 저장할 join_lab이라는 새 디렉토리를 만듭니다.
mkdir join_lab
  1. join_lab 디렉토리로 이동합니다.
cd join_lab

이제 이 Lab 을 위한 전용 작업 공간이 준비되었습니다.

샘플 데이터 세트 생성

이 단계에서는 Hive 에서 join 연산을 연습하기 위해 두 개의 샘플 데이터 세트를 생성합니다.

  1. 다음 내용으로 employees.txt라는 새 파일을 만듭니다.
101,John Doe,Sales
102,Jane Smith,Marketing
103,Michael Johnson,IT
104,Emily Davis,HR
105,Adam Wilson,Finance
106,Lisa Brown,Operations
  1. 다음 내용으로 departments.txt라는 다른 파일을 만듭니다.
1,Sales,New York
2,Marketing,Los Angeles
3,IT,Chicago
4,HR,San Francisco
  1. 다음 명령을 실행하여 Hive 셸을 시작합니다.
hive
  1. 다음 명령을 실행하여 데이터 세트를 Hive 에 로드합니다.
CREATE TABLE employees (emp_id INT, name STRING, dept STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

LOAD DATA LOCAL INPATH '/home/hadoop/join_lab/employees.txt' OVERWRITE INTO TABLE employees;

CREATE TABLE departments (dept_id INT, dept_name STRING, location STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

LOAD DATA LOCAL INPATH '/home/hadoop/join_lab/departments.txt' OVERWRITE INTO TABLE departments;

이러한 명령은 두 개의 Hive 테이블, employeesdepartments를 생성하고 해당 텍스트 파일에서 데이터를 로드합니다.

Inner Join 수행

이 단계에서는 Hive 에서 employeesdepartments 테이블의 데이터를 결합하기 위해 inner join 연산을 수행하는 방법을 배웁니다.

다음 Hive 쿼리를 실행하여 inner join 을 수행합니다.

CREATE TABLE result_1
AS
SELECT e.emp_id, e.name, d.dept_name, d.location
FROM employees e
JOIN departments d
ON e.dept = d.dept_name;

SELECT * FROM result_1;

이 쿼리는 employeesdepartments 테이블을 각각 deptdept_name 열을 기준으로 조인합니다. 조인된 결과에서 emp_id, name, dept_namelocation 열을 검색합니다.

출력은 다음과 같아야 합니다.

101     John Doe        Sales   New York
102     Jane Smith      Marketing       Los Angeles
103     Michael Johnson IT      Chicago
104     Emily Davis     HR      San Francisco

Inner join 은 지정된 조건을 기반으로 두 테이블의 행을 결합합니다. 이 경우 employees 테이블의 dept 값과 departments 테이블의 dept_name 값을 일치시킵니다. 결과에는 조인 조건이 충족되는 행만 포함됩니다. 즉, deptdept_name 값이 일치합니다.

Left Outer Join 수행

이 단계에서는 Hive 에서 left outer join 연산을 수행하는 방법을 배웁니다.

다음 Hive 쿼리를 실행하여 left outer join 을 수행합니다.

CREATE TABLE result_2
AS
SELECT e.emp_id, e.name, d.dept_name, d.location
FROM employees e
LEFT OUTER JOIN departments d
ON e.dept = d.dept_name;

SELECT * FROM result_2;

이 쿼리는 employeesdepartments 테이블 간에 left outer join 을 수행합니다. 왼쪽 테이블 (employees) 의 모든 행과 오른쪽 테이블 (departments) 의 일치하는 행을 포함합니다. 오른쪽 테이블에 일치하는 항목이 없으면 결과에는 오른쪽 테이블의 열에 대한 NULL 값이 포함됩니다.

출력은 다음과 같아야 합니다.

101     John Doe        Sales   New York
102     Jane Smith      Marketing       Los Angeles
103     Michael Johnson IT      Chicago
104     Emily Davis     HR      San Francisco
105     Adam Wilson     NULL    NULL
106     Lisa Brown      NULL    NULL

Left outer join 은 왼쪽 테이블 (employees) 의 모든 행과 오른쪽 테이블 (departments) 의 일치하는 행을 반환합니다. 왼쪽 테이블의 행이 오른쪽 테이블에 일치하는 행이 없으면 결과에는 오른쪽 테이블의 열에 대한 NULL 값이 포함됩니다.

요약

이 랩에서는 Hadoop 및 Hive 를 사용하여 데이터 세트에 대한 join 연산을 수행하는 방법을 배웠습니다. 샘플 데이터 세트를 생성하여 Hive 테이블에 로드함으로써 inner join 및 left outer join 을 연습할 수 있었습니다. 이러한 join 연산을 숙달함으로써 여러 소스의 데이터를 결합하고 분석하는 능력을 얻었습니다. 마치 사막 드래곤이 흩어진 소스에서 정보를 결합하여 맹렬한 모래 폭풍의 비밀을 풀듯이 말입니다.

이 랩을 통해 명확한 지침, 코드 예제 및 설명을 통해 각 단계를 안내하는 구조화되고 몰입적인 학습 경험을 제공하고자 했습니다. 체커 (checkers) 를 사용하여 진행 상황을 검증하고 개선 영역을 식별할 수 있도록 했습니다. 데이터 분석에서 직면하는 과제와 공감할 수 있는 시나리오를 설계함으로써 학습 과정을 더욱 흥미롭고 관련성 있게 만들고자 했습니다.

전반적으로 이 랩은 Hadoop 및 Hive 에 대한 기술적 기술을 제공했을 뿐만 아니라 복잡한 문제를 해결하는 데 있어 데이터 통합 및 분석의 중요성에 대한 더 깊은 이해를 길러주었습니다. 사막 드래곤이 자신의 임무를 끈기 있게 수행하는 것처럼, 여러분이 새롭게 얻은 지식은 실제 데이터 문제를 자신감과 창의성으로 해결할 수 있도록 힘을 실어줄 것입니다.