Hive External Table로 json 파일 연동
    • PDF

    Hive External Table로 json 파일 연동

    • PDF

    Article Summary

    VPC 환경에서 이용 가능합니다.

    Hive External Table은 Hive에서 테이블 생성 시 External 키워드로 생성하는 테이블입니다. Hive External Table은 hive.metastore.warehouse.dir 속성이 가리키는 디렉터리에 데이터를 저장하지 않으며, 테이블 생성 시 설정한 경로에 데이터를 저장합니다.

    이미 Hadoop에 있는 데이터를 기반으로 테이블을 만들기 때문에 스키마만 정해주면 생성할 수 있습니다.

    참고

    Hive 사용 가이드에서도 Hive External Table에 관련된 예제를 볼 수 있습니다.

    이 가이드에서는 json 데이터를 Cloud Hadoop에서 제공하는 Hive의 External Table로 연동하여 사용하는 방법을 설명합니다.

    샘플 데이터 준비

    샘플 데이터를 준비하는 방법은 다음과 같습니다.

    1. hive 사용자로 전환시켜 주십시오.
    $ sudo su - hive
    
    1. 해당 데이터를 다운로드해 주십시오.
    참고

    해당 데이터는 ndjson (Newline Delimited JSON) 데이터 형태입니다.

    HDFS에 json 파일 업로드

    HDFS json 파일을 업로드하는 방법은 다음과 같습니다.

    1. HDFS에 디렉터리를 생성해 주십시오.
    $ hdfs dfs -mkdir /user/hive/bookstat
    
    1. HDFS 에 json 파일을 업로드해 주십시오.
    $ hdfs dfs -put bookstat.json /user/hive/bookstat
    
    1. 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을 생성하는 방법은 다음과 같습니다.

    1. Cloud Hadoop 클러스터의 엣지 노드에 SSH로 접속해 주십시오.
    2. 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을 삭제하는 방법은 다음과 같습니다.

    1. 생성된 Hive External Table 다음 명령어를 사용하여 삭제해 주십시오.
      • 아래는 앞서 생성한 Hive External Table (bookstat_serde1)을 삭제하는 예시입니다.
    DROP TABLE bookstat_serde1;
    
    1. 삭제된 테이블에 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;
    

    이 문서가 도움이 되었습니까?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.