Hive External Table로 json 파일 연동
- 인쇄
- PDF
Hive External Table로 json 파일 연동
- 인쇄
- PDF
기사 요약
이 요약이 도움이 되었나요?
의견을 보내 주셔서 감사합니다.
VPC 환경에서 이용 가능합니다.
Hive External Table은 Hive에서 테이블 생성 시 External 키워드로 생성하는 테이블입니다. Hive External Table은 hive.metastore.warehouse.dir
속성이 가리키는 디렉터리에 데이터를 저장하지 않으며, 테이블 생성 시 설정한 경로에 데이터를 저장합니다.
이미 Hadoop에 있는 데이터를 기반으로 테이블을 만들기 때문에 스키마만 정해주면 생성할 수 있습니다.
참고
Hive 사용 가이드에서도 Hive External Table에 관련된 예제를 볼 수 있습니다.
이 가이드에서는 json 데이터를 Cloud Hadoop에서 제공하는 Hive의 External Table로 연동하여 사용하는 방법을 설명합니다.
샘플 데이터 준비
샘플 데이터를 준비하는 방법은 다음과 같습니다.
- hive 사용자로 전환시켜 주십시오.
$ sudo su - hive
- 해당 데이터를 다운로드해 주십시오.
참고
해당 데이터는 ndjson(Newline Delimited JSON) Data형태입니다.
HDFS에 json 파일 업로드
HDFS json 파일 업로드하는 방법은 다음과 같습니다.
- HDFS에 디렉터리를 생성하십시오
$ hdfs dfs -mkdir /user/hive/bookstat
- HDFS 에 json 파일을 업로드하십시오.
$ hdfs dfs -put bookstat.json /user/hive/bookstat
- HDFS 파일 리스트를 확인하십시오.
$ hdfs dfs -ls -R /user/hive/bookstat
-rw-r--r-- 2 hive hdfs 193 2023-06-28 14:41 /user/hive/bookstat/bookstat.json
json포맷을 사용하는 Hive External Table 생성
Hive External Table을 생성하는 방법은 다음과 같습니다.
Cloud Hadoop 클러스터의 엣지 노드에 SSH로 접속해 주십시오.
- 클러스터 노드에 SSH로 접속하는 방법에 대한 자세한 내용은 SSH로 클러스터 노드 접속 가이드를 참고해 주십시오.
Hive 클라이언트 명령어를 이용하여 External Table을 생성합니다.
- 데이타베이스 생성
hive> create database book;
- 생성한 데이타베이스 사용
hive> use book;
- 테이블 생성
hive> CREATE EXTERNAL TABLE IF NOT EXISTS bookstat_serde1 ( statTime STRING, bizCode STRING, saleInfo STRUCT < bookName:STRING, saleCount:INT > ) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' STORED AS TEXTFILE LOCATION '/user/hive/bookstat' ;
json포맷을 사용하는 Hive External Table 조회
- 테이블이 생성되면
SELECT
쿼리를 수행하여 데이터를 확인할 수 있습니다.
- 테이블 조회
hive> select * from bookstat_serde1;
OK
20130710180059 BOOK {"bookname":"book61","salecount":749}
20230628140059 BOOK {"bookname":"book800","salecount":899}
Hive External Table 삭제
Hive External Table을 삭제하는 방법은 다음과 같습니다.
- 생성된 Hive External Table 다음 명령어를 사용하여 삭제해 주십시오.
- 아래는 앞서 생성한 Hive External Table(bookstat_serde1)을 삭제하는 예시입니다.
DROP TABLE bookstat_serde1;
- 삭제된 테이블에 SELECT 쿼리를 수행해 주십시오. 에러가 발생하여 정상적으로 테이블이 삭제된 것을 확인할 수 있습니다. 또한 Show Tables를 통해 테이블 삭제 여부를 확인하실 수 있습니다.
- SELECT 쿼리 이용
SELECT * FROM bookstat_serde1;
Error: Error while compiling statement: FAILED: SemanticException [Error 10001]: Line 1:14 Table not found 'bookstat_serde1' (state=42S02,code=10001)
- SHOW TABLES로 테이블 목록 확인
SHOW TABLES;
이 문서가 도움이 되었습니까?