Hadoop 을 이용한 보석 데이터 압축

HadoopBeginner
지금 연습하기

소개

마법 예술 로열 아카데미 (Royale Academy of Magical Arts) 에 오신 것을 환영합니다. 이곳은 비전 지식 연구와 숙달을 위한 권위 있는 기관입니다. 이 세계에서, 존경받는 보석 연구원 팀은 마법이 깃든 보석의 비밀을 풀기 위해 임무를 수행합니다. 이 보석들의 신비로운 속성은 현실의 본질을 이해하는 열쇠를 쥐고 있습니다.

숙련된 보석 연구원으로서 여러분의 역할은 Hadoop 생태계, 특히 Hive 의 힘을 활용하여 방대한 양의 보석 데이터를 분석하고 압축하는 것입니다. 목표는 저장 및 처리 효율성을 최적화하여, 이 마법 유물 내의 복잡한 패턴과 숨겨진 미스터리를 풀 수 있도록 하는 것입니다.

보석 데이터 저장소 설정

이 단계에서는 보석 데이터를 저장하고 샘플 레코드로 채우기 위해 Hive 테이블을 생성합니다.

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

su - hadoop

그런 다음, 다음 명령을 실행하여 Hive 쉘을 시작합니다.

hive

이제 gemstone_db라는 새로운 Hive 데이터베이스를 생성합니다.

CREATE DATABASE gemstone_db;

새 데이터베이스를 사용합니다.

USE gemstone_db;

다음으로, id, name, color, origin, 및 enchantment 열을 포함하는 gemstones라는 테이블을 생성합니다.

CREATE TABLE gemstones (
  id INT,
  name STRING,
  color STRING,
  origin STRING,
  enchantment STRING
) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

마지막으로, /home/hadoop/gemstone_data.csv 파일에서 gemstones 테이블로 샘플 데이터를 로드합니다.

LOAD DATA LOCAL INPATH '/home/hadoop/gemstone_data.csv' OVERWRITE INTO TABLE gemstones;

보석 데이터 압축

저장 및 처리 효율성을 최적화하기 위해 Hive 의 내장 압축 기능을 사용하여 보석 데이터를 압축합니다.

먼저, 원래 gemstones 테이블과 동일한 스키마를 가진 새로운 테이블 gemstones_compressed를 생성합니다.

CREATE TABLE gemstones_compressed (
  id INT,
  name STRING,
  color STRING,
  origin STRING,
  enchantment STRING
) STORED AS ORC
TBLPROPERTIES ('orc.compress'='SNAPPY');
  • 효율적인 압축 및 저장을 제공하는 Optimized Row Columnar (ORC) 파일 형식을 사용하기 위해 STORED AS ORC 절을 지정합니다.
  • ORC 파일에 Snappy 압축을 활성화하기 위해 orc.compress 테이블 속성을 SNAPPY로 설정합니다.

그런 다음, 원래 gemstones 테이블에서 gemstones_compressed 테이블로 데이터를 삽입합니다.

INSERT INTO TABLE gemstones_compressed SELECT * FROM gemstones;

압축 데이터 쿼리

이제 보석 데이터가 압축되었으므로 Hive 를 사용하여 효율적으로 쿼리할 수 있습니다.

먼저, 데이터 무결성을 확인하기 위해 gemstones_compressed 테이블에 대한 간단한 COUNT(*) 쿼리를 실행합니다.

SELECT COUNT(*) FROM gemstones_compressed;

그런 다음, 각 색상별 보석 수를 계산하기 위해 GROUP BY 쿼리를 수행합니다.

SELECT color, COUNT(*) AS count FROM gemstones_compressed GROUP BY color;

요약

이 랩에서는 Hive 의 압축 기능을 활용하여 대규모 데이터 세트의 저장 및 처리 효율성을 최적화하는 방법을 배웠습니다. 압축된 ORC 테이블을 생성하고 데이터를 로드함으로써 쿼리 성능을 유지하면서 저장 공간을 크게 줄일 수 있었습니다.

전체 과정에서 Hive 데이터베이스 및 테이블 생성, 데이터 로드 및 압축된 데이터 쿼리에 대한 실질적인 경험을 얻었습니다. 이 실용적인 지식은 마법에 걸린 보석의 신비로운 특성에 대한 연구를 계속하면서 숨겨진 패턴과 통찰력을 보다 효율적으로 발견하는 데 매우 유용할 것입니다.