소개
활기찬 문화와 풍부한 역사를 자랑하는 중세 도시에서, 알라릭이라는 방랑 시인은 이 땅의 이야기와 노래에 매료되었습니다. 류트를 켜며 거리를 돌아다니던 그는 도시의 기록 보관소가 정리가 절실하다는 것을 깨달았습니다. 수많은 양피지와 두루마리가 흩어져 과거의 이야기와 기록으로 가득했지만, 이를 분류하고 관리하는 일은 벅차 보였습니다.
알라릭의 목표는 도시의 역사 기록을 보존하고 쉽게 접근할 수 있는 조화로운 시스템을 만드는 것이었습니다. 이야기하기를 좋아하고 조직력에 뛰어난 그는 방대한 데이터를 효율적으로 관리하고 조작할 수 있는 도구인 Hadoop Hive 의 힘을 활용하기 위한 여정을 시작했습니다.
도시 아카이브 탐험
이 단계에서는 조직을 기다리는 수많은 양피지와 두루마리가 흩어져 있는 도시의 기록 보관소를 탐구할 것입니다. 우리의 목표는 기존 데이터에 익숙해지고, 방대한 컬렉션을 관리하는 데 직면한 어려움을 이해하는 것입니다.
먼저, 터미널에서 다음 명령을 실행하여 hadoop 사용자로 로그인했는지 확인하십시오.
su - hadoop
여기에서 도시의 과거에 대한 다양한 기록과 이야기를 담고 있는 파일 모음을 찾을 수 있습니다. 사용 가능한 데이터에 대한 개요를 얻으려면 다음 명령을 실행하십시오.
hdfs dfs -ls /home/hadoop/archives
이 명령은 Hadoop 분산 파일 시스템 (HDFS) 의 /home/hadoop/archives 디렉토리 내의 파일 및 디렉토리를 나열합니다.
다음으로, 파일 중 하나의 내용을 살펴보겠습니다. hdfs dfs -cat 명령을 사용하여 파일의 내용을 볼 것입니다.
hdfs dfs -cat /home/hadoop/archives/chronicles/chapter_1.txt
이 명령은 chronicles 하위 디렉토리에 있는 chapter_1.txt 파일의 내용을 표시합니다.
파일을 탐색하면서 제거하거나 잘라내야 하는 관련 없는 정보나 오래된 정보가 포함된 파일이 있음을 알 수 있습니다. 여기서 Hadoop Hive 의 강력한 기능이 발휘되어 데이터를 효율적으로 관리하고 조작할 수 있습니다.
Hive 설정 및 데이터 탐색
이 단계에서는 Hadoop 위에 구축된 강력한 데이터 웨어하우스 시스템인 Hive 를 설정하고, 아카이브에 있는 기존 데이터를 탐색합니다.
먼저, Hive CLI 를 엽니다.
hive
Hive CLI 내에서 도시의 아카이브를 저장할 새 데이터베이스를 생성할 수 있습니다.
CREATE DATABASE city_archives;
이제 새로 생성된 데이터베이스로 전환합니다.
USE city_archives;
기존 데이터를 탐색하기 위해 새 테이블을 생성하고 HDFS 아카이브 디렉토리에서 데이터를 로드합니다.
CREATE EXTERNAL TABLE tmp_chronicles (
chapter STRING,
content STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LOCATION '/home/hadoop/archives/chronicles';
이 코드는 chapter 및 content의 두 열이 있는 tmp_chronicles라는 외부 테이블을 생성합니다. 테이블의 데이터는 HDFS 의 /home/hadoop/archives/chronicles 디렉토리에서 로드되며, 필드는 탭 문자로 구분됩니다.
CREATE TABLE chronicles (
chapter STRING,
content STRING
)
STORED AS ORC
TBLPROPERTIES ('transactional'='true');
이 코드는 chapter 및 content의 두 열이 있는 chronicles라는 테이블을 생성합니다. STORED AS ORC 절은 데이터가 ORC 파일 형식으로 저장됨을 지정합니다. TBLPROPERTIES 절은 테이블이 트랜잭션임을 지정하며, 이는 ACID 트랜잭션을 지원함을 의미합니다.
INSERT INTO TABLE chronicles SELECT * FROM tmp_chronicles;
이 코드는 임시 테이블 tmp_chronicles의 모든 데이터를 chronicles 테이블에 삽입합니다.
이제 chronicles 테이블을 쿼리하여 내용을 확인할 수 있습니다.
SELECT * FROM chronicles LIMIT 5;
이 명령은 chronicles 테이블의 처음 5 개 행을 표시하여 작업할 데이터의 개요를 제공합니다.
데이터 삭제 및 Truncate
이 단계에서는 Hive 테이블에서 데이터를 삭제하고 잘라내는 방법을 배우고, 이를 통해 도시의 아카이브를 효율적으로 관리하고 유지할 수 있습니다.
때로는 테이블에서 오래되었거나 관련 없는 데이터를 제거해야 할 수 있습니다. Hive 에서는 DELETE 문을 사용하여 주어진 조건과 일치하는 특정 행을 제거할 수 있습니다.
예를 들어, chronicles 테이블에서 "outdated"라는 단어가 포함된 모든 챕터를 제거하려는 경우를 가정해 보겠습니다.
DELETE FROM chronicles WHERE content LIKE '%outdated%';
이 명령은 content 열에 "outdated"라는 단어가 포함된 모든 행을 chronicles 테이블에서 삭제합니다.
그러나 테이블에서 모든 데이터를 제거하려는 경우 개별적으로 행을 삭제하는 대신 TRUNCATE 문을 사용할 수 있습니다. 이 작업은 행을 하나씩 삭제하는 것보다 더 효율적이고 빠릅니다.
TRUNCATE TABLE chronicles;
이 명령은 chronicles 테이블에서 모든 데이터를 제거하여 비워둡니다.
이러한 삭제 및 잘라내기 기술을 숙달함으로써 도시의 아카이브의 무결성과 관련성을 유지하여 가장 가치 있고 최신 정보만 보존할 수 있습니다.
요약
이 랩에서는 Hadoop Hive 를 사용하여 도시의 아카이브를 구성하고 유지하는 여정을 시작했습니다. 방랑하는 음유 시인 Alaric 의 시각을 통해 우리는 방대한 양의 역사 기록을 관리하는 어려움을 탐구하고 Hive 의 강력한 기능을 활용하여 데이터를 효율적으로 삭제하고 잘라내는 방법을 배웠습니다.
아카이브 디렉토리를 탐구하고 Hive 를 설정함으로써 데이터베이스, 테이블을 생성하고 Hive 에 데이터를 로드하는 실질적인 경험을 얻었습니다. 그런 다음 특정 행을 삭제하고 전체 테이블을 잘라내는 기술을 습득하여 도시의 아카이브에서 오래되었거나 관련 없는 정보를 제거할 수 있었습니다.
이 랩을 통해 우리는 데이터 관리의 실질적인 기술을 습득했을 뿐만 아니라 스토리텔링과 기술을 결합하는 아름다움을 발견했습니다. 도시의 풍부한 문화 유산을 보존하려는 Alaric 의 탐구는 데이터가 단순한 숫자와 수치 이상임을 상기시켜 줍니다. 그것은 엮고 공유되기를 기다리는 이야기의 태피스트리입니다.



