[hive] 구체화 뷰(Materialized View)

2020. 1. 21. 21:48·빅데이터/hive

하이브 3.0에서 제공하는 구체화 뷰(Materialized Views)에 대해서 알아보겠습니다.

 

뷰(View)는 논리적인 테이블입니다. 데이터 검색을 위한 구조는 가지고 있지만 실제 데이터는 가지고 있지 않습니다. 구체화 뷰(M-View)는 물리적인 테이블입니다. 구체화 뷰를 생성할 때 데이터를 별도의 저장공간에 저장하여 뷰를 사용할 때 속도를 높일 수 있습니다. 보통 데이터웨어 하우스에서 쿼리의 속도를 높이는데 많이 사용됩니다.

 

하이브에서 규체화 뷰는 LLAP, Calcite(CBO) 기능과 협력하여 쿼리의 속도를 높이는 데 사용됩니다.

구체화 뷰 생성

구체화 뷰는 생성되는 시점에 테이블의 데이터를 취합하여 데이터를 저장합니다. 이 과정에서 맵리듀스 작업이 발생합니다. 구체화 뷰를 저장하는 기본 서데(SerDe)와 파일 포맷은 사용자가 지정할 수도 있습니다.

 

  • 데이터 저장위치는 기본적으로 HDFS이며 사용자가 설정할 수 있음
  • 데이터 저장 포맷도 사용자가 지정할 수 있음
  • 드루이드(Druid) 핸들러를 이용하여 드루이드에 데이터를 저장하여 처리 속도를 높일 수 있음
  • 구체화 뷰는 원천 테이블의 정보가 재작성되면 해당 정보가 자동으로 반영되지 않음
    • rebuild명령을 주기적으로 처리해 주는 것이 좋음
-- 구체화 뷰생성 
CREATE MATERIALIZED VIEW mvew
AS
SELECT col1, col2
  FROM tbl;

-- 구체화 뷰 포맷 확인 
DESC FORMATTED mview;

구체화 뷰기반 쿼리 작성

쿼리에 구체화 뷰를 이용하며 옵티마이저가 쿼리를 자동으로 재작성하게 할 수 있습니다. hive.materializedview.rewriting 설정을 이용하여 기본으로 재작성 기능을 설정할 수 있고, ALTER 명령으로 기능을 동작 여부를 지정할 수 있습니다. 쿼리를 분석하는 시점에 구체화 뷰의 정보를 이용하여 최적화를 진행합니다.

ALTER M VIEW mv_code ENABLE|DISABLE REWRITE;

AWS EMR의 구체화 뷰

EMR의 AMI 5.24에서 지원하는 구체화 뷰는 아직 ALTER 명령과 REBUILD명령을 지원하지 않습니다. 따라서 고정된 데이터의 특정 칼럼을 이용할 때만 이용하는 것이 좋습니다.

 

https://cwiki.apache.org/confluence/display/Hive/Materialized+views

 

Materialized views - Apache Hive - Apache Software Foundation

Version information Materialized views support is introduced in Hive 3.0.0. Introduction This page documents the work done for the supporting materialized views in Apache Hive. Objectives Traditionally, one of the most powerful techniques used to accelerat

cwiki.apache.org

 

반응형
저작자표시 비영리 동일조건 (새창열림)

'빅데이터 > hive' 카테고리의 다른 글

[hive] 하이브 매크로(macro)  (0) 2020.04.22
[hive] This command is not allowed on an ACID table default.table_name with a non-ACID transaction manager 오류 해결 방법  (0) 2020.03.17
[hive] UDF에서 발생하는 argument type mismatch 오류 수정  (0) 2020.01.14
[hive] 벡터화(vectorized) 처리  (0) 2020.01.07
[hive] 하이브의 조인방식(hive join)  (0) 2020.01.06
'빅데이터/hive' 카테고리의 다른 글
  • [hive] 하이브 매크로(macro)
  • [hive] This command is not allowed on an ACID table default.table_name with a non-ACID transaction manager 오류 해결 방법
  • [hive] UDF에서 발생하는 argument type mismatch 오류 수정
  • [hive] 벡터화(vectorized) 처리
hs_seo
hs_seo
Hello World!
    반응형
  • hs_seo
    개발자로 살아남기
    hs_seo
  • 전체
    오늘
    어제
    • 전체 (1140)
      • 개발자 (21)
        • 개발에 유의할 점 (0)
        • 면접 (5)
      • IT 소식 (5)
        • 업계 (1)
      • java (51)
        • 디자인패턴 (3)
        • apache-common (1)
      • 개념 (47)
        • 자료구조 (4)
        • 함수형사고 (8)
        • 디자인패턴 (1)
      • 데이터분석 (1)
      • python (67)
        • 코드조각 (12)
        • 라이브러리 (2)
      • 빅데이터 (418)
        • zookeeper (5)
        • hadoop (78)
        • hdfs (12)
        • hive (127)
        • hbase (16)
        • spark (40)
        • scala (4)
        • trino (3)
        • oozie (41)
        • Hue (9)
        • R (5)
        • sqoop (6)
        • flume (3)
        • elasticsearch (2)
        • airflow (16)
        • kafka (3)
        • kubernetes (10)
        • openstack (3)
        • flink (2)
        • redis (2)
      • 빅데이터 강좌 (2)
      • 알고리즘 (131)
        • 알고리즘 (1)
        • 백준 (61)
        • 정올 (41)
        • 더블릿 (5)
        • 프로그래머스 (1)
      • 프로그래밍 언어 (30)
        • go (4)
        • js (9)
        • .Net (6)
        • Jsp (1)
        • ansible (3)
        • terraform (6)
      • Tools (56)
        • docker (2)
        • macbook (6)
        • maven (3)
        • sublime (1)
      • 프레임워크 (25)
        • [JS] angularjs (2)
        • [JS] node.js (19)
        • [Java] spring (2)
        • Android (2)
      • 데이타베이스 (43)
        • SQLD (5)
        • Oracle (1)
        • MySQL (8)
        • ADsP (2)
      • 리눅스 (25)
        • Bash (61)
      • GCP (5)
      • AWS (34)
        • EC2 (2)
        • EMR (14)
      • 정보보안기사 (4)
        • 네트워크 (1)
      • 개인 (80)
        • 업무실수 (0)
        • 책 (9)
        • 교육 (3)
        • 여행 (17)
        • 영화 (12)
        • 음악 (2)
        • 피규어 (4)
        • 게임 (3)
        • 생각 (7)
        • 기타 (10)
        • 좋은글 (5)
        • 좋은 사이트 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

    • 빅데이터-하둡,하이브로 시작하기
    • 빅데이터-스칼라, 스파크로 시작하기
    • Kaggle에서 파이썬으로 데이터 분석 시작하기
    • 쉘스크립트 개발 시작하기
    • 개발자가 데이터 분석 준전문가 되기
    • 데브쿠마
  • 공지사항

  • 인기 글

  • 태그

    SPARK
    k8s
    build
    HDFS
    ubuntu
    java
    하둡
    Tez
    nodejs
    파이썬
    Linux
    bash
    hbase
    mysql
    S3
    airflow
    HIVE
    error
    오류
    알고리즘
    하이브
    Hadoop
    AWS
    oozie
    yarn
    백준
    emr
    다이나믹
    정올
    Python
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
hs_seo
[hive] 구체화 뷰(Materialized View)
상단으로

티스토리툴바