SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
HIVE
 Begins
오 성 민 springloops@지메일.컴
13년 8월 5일 월요일
그럼 지금부터 Hive에 대해서 간략하게 소개해드리도록 하겠습니다.
발표를 한시간 안에 끝내야 해서 질문은 맨 마지막에 받도록 하겠고,
발표에 부족한 부분이 있을수 있습니다만, 발표 이후에라도 부족한 부분에 대해서
답변드리도록 노력하겠습니다.
목차
1. Hive
 소개
2. Hive
 architecture
3. Hive
 데이터
 단위
 구성
4. HiveQL
5. User
 Defined
 Function
6. HiveQL
 과
 M/R
 비교
7. Demo
13년 8월 5일 월요일
발표 순서는
hive에 대한 간략한 소개,
hive의 아키텍처, 데이터 단위 구성, hive QL, 사용자 정의 함수
그리고 hive QL과 map reduce의 비교를 해드리고
간략한 데모시연을 순서로 진행하겠습니다.
Hive
 ??
•Hadoop
 Eco
 system
•데이터
 웨어하우스
 프레임웍
•데이터
 요약을
 좀더
 쉽게
•페이스북에서

Weitere ähnliche Inhalte

Was ist angesagt?

하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기beom kyun choi
 
하둡 설치(의사분산모드)
하둡 설치(의사분산모드)하둡 설치(의사분산모드)
하둡 설치(의사분산모드)Kwangyoung Jeon
 
Java 초보자를 위한 hadoop 설정
Java 초보자를 위한 hadoop 설정Java 초보자를 위한 hadoop 설정
Java 초보자를 위한 hadoop 설정HyeonSeok Choi
 
Hive 입문 발표 자료
Hive 입문 발표 자료Hive 입문 발표 자료
Hive 입문 발표 자료beom kyun choi
 
하둡 타입과 포맷
하둡 타입과 포맷하둡 타입과 포맷
하둡 타입과 포맷진호 박
 
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)Matthew (정재화)
 
Hadoop 제주대
Hadoop 제주대Hadoop 제주대
Hadoop 제주대DaeHeon Oh
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Gruter
 
하둡 HDFS 훑어보기
하둡 HDFS 훑어보기하둡 HDFS 훑어보기
하둡 HDFS 훑어보기beom kyun choi
 
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for HadoopSeungYong Baek
 
An introduction to hadoop
An introduction to hadoopAn introduction to hadoop
An introduction to hadoopMinJae Kang
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoMatthew (정재화)
 
20140522 uc집계 정민철_발표자료_최종
20140522 uc집계 정민철_발표자료_최종20140522 uc집계 정민철_발표자료_최종
20140522 uc집계 정민철_발표자료_최종민철 정민철
 

Was ist angesagt? (20)

Hadoop overview
Hadoop overviewHadoop overview
Hadoop overview
 
하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기하둡 (Hadoop) 및 관련기술 훑어보기
하둡 (Hadoop) 및 관련기술 훑어보기
 
하둡 설치(의사분산모드)
하둡 설치(의사분산모드)하둡 설치(의사분산모드)
하둡 설치(의사분산모드)
 
Java 초보자를 위한 hadoop 설정
Java 초보자를 위한 hadoop 설정Java 초보자를 위한 hadoop 설정
Java 초보자를 위한 hadoop 설정
 
Hive 입문 발표 자료
Hive 입문 발표 자료Hive 입문 발표 자료
Hive 입문 발표 자료
 
Hadoop administration
Hadoop administrationHadoop administration
Hadoop administration
 
하둡 타입과 포맷
하둡 타입과 포맷하둡 타입과 포맷
하둡 타입과 포맷
 
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
Hadoop과 SQL-on-Hadoop (A short intro to Hadoop and SQL-on-Hadoop)
 
Hadoop 제주대
Hadoop 제주대Hadoop 제주대
Hadoop 제주대
 
Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013Tajo and SQL-on-Hadoop in Tech Planet 2013
Tajo and SQL-on-Hadoop in Tech Planet 2013
 
하둡 HDFS 훑어보기
하둡 HDFS 훑어보기하둡 HDFS 훑어보기
하둡 HDFS 훑어보기
 
Hdfs
HdfsHdfs
Hdfs
 
Apache sqoop
Apache sqoopApache sqoop
Apache sqoop
 
hadoop ch1
hadoop ch1hadoop ch1
hadoop ch1
 
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
하둡 알아보기(Learn about Hadoop basic), NetApp FAS NFS Connector for Hadoop
 
HBase 훑어보기
HBase 훑어보기HBase 훑어보기
HBase 훑어보기
 
Hadoop발표자료
Hadoop발표자료Hadoop발표자료
Hadoop발표자료
 
An introduction to hadoop
An introduction to hadoopAn introduction to hadoop
An introduction to hadoop
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
 
20140522 uc집계 정민철_발표자료_최종
20140522 uc집계 정민철_발표자료_최종20140522 uc집계 정민철_발표자료_최종
20140522 uc집계 정민철_발표자료_최종
 

Ähnlich wie Hive begins

Fundamentals of Oracle SQL
Fundamentals of Oracle SQLFundamentals of Oracle SQL
Fundamentals of Oracle SQLJAEGEUN YU
 
log-monitoring-architecture.pdf
log-monitoring-architecture.pdflog-monitoring-architecture.pdf
log-monitoring-architecture.pdfSungkyun Kim
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoGruter
 
From MSSQL to MySQL
From MSSQL to MySQLFrom MSSQL to MySQL
From MSSQL to MySQLI Goo Lee
 
Presto User & Admin Guide
Presto User & Admin GuidePresto User & Admin Guide
Presto User & Admin GuideJEONGPHIL HAN
 
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1Seok-joon Yun
 
Memcached의 확장성 개선
Memcached의 확장성 개선Memcached의 확장성 개선
Memcached의 확장성 개선NAVER D2
 
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)탑크리에듀(구로디지털단지역3번출구 2분거리)
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1happychallenge
 
RHive tutorial 4: RHive 튜토리얼 4 - UDF, UDTF, UDAF 함수
RHive tutorial 4: RHive 튜토리얼 4 - UDF, UDTF, UDAF 함수RHive tutorial 4: RHive 튜토리얼 4 - UDF, UDTF, UDAF 함수
RHive tutorial 4: RHive 튜토리얼 4 - UDF, UDTF, UDAF 함수Aiden Seonghak Hong
 
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4Seok-joon Yun
 
Node.js DBMS short summary
Node.js DBMS short summaryNode.js DBMS short summary
Node.js DBMS short summaryHoChul Shin
 
[오픈소스컨설팅]MyBatis Basic
[오픈소스컨설팅]MyBatis Basic[오픈소스컨설팅]MyBatis Basic
[오픈소스컨설팅]MyBatis BasicJi-Woong Choi
 
Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Gruter
 
MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxNeoClova
 
2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)
2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)
2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)JiandSon
 

Ähnlich wie Hive begins (20)

Fundamentals of Oracle SQL
Fundamentals of Oracle SQLFundamentals of Oracle SQL
Fundamentals of Oracle SQL
 
log-monitoring-architecture.pdf
log-monitoring-architecture.pdflog-monitoring-architecture.pdf
log-monitoring-architecture.pdf
 
Expanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with TajoExpanding Your Data Warehouse with Tajo
Expanding Your Data Warehouse with Tajo
 
From MSSQL to MySQL
From MSSQL to MySQLFrom MSSQL to MySQL
From MSSQL to MySQL
 
SPARK SQL
SPARK SQLSPARK SQL
SPARK SQL
 
Presto User & Admin Guide
Presto User & Admin GuidePresto User & Admin Guide
Presto User & Admin Guide
 
PL/SQL - 10g Release1
PL/SQL - 10g Release1PL/SQL - 10g Release1
PL/SQL - 10g Release1
 
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
[2015-06-12] Oracle 성능 최적화 및 품질 고도화 1
 
Memcached의 확장성 개선
Memcached의 확장성 개선Memcached의 확장성 개선
Memcached의 확장성 개선
 
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
#1.SQL초보에서 Schema Objects까지(SQL학원/오라클학원/IT실무교육학원/재직자/실업자교육학원추천)
 
03.Ansible 소개
03.Ansible 소개03.Ansible 소개
03.Ansible 소개
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1
 
RHive tutorial 4: RHive 튜토리얼 4 - UDF, UDTF, UDAF 함수
RHive tutorial 4: RHive 튜토리얼 4 - UDF, UDTF, UDAF 함수RHive tutorial 4: RHive 튜토리얼 4 - UDF, UDTF, UDAF 함수
RHive tutorial 4: RHive 튜토리얼 4 - UDF, UDTF, UDAF 함수
 
6.테이블만들기
6.테이블만들기6.테이블만들기
6.테이블만들기
 
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
[2015 07-06-윤석준] Oracle 성능 최적화 및 품질 고도화 4
 
Node.js DBMS short summary
Node.js DBMS short summaryNode.js DBMS short summary
Node.js DBMS short summary
 
[오픈소스컨설팅]MyBatis Basic
[오픈소스컨설팅]MyBatis Basic[오픈소스컨설팅]MyBatis Basic
[오픈소스컨설팅]MyBatis Basic
 
Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)Big data analysis with R and Apache Tajo (in Korean)
Big data analysis with R and Apache Tajo (in Korean)
 
MySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docxMySQL_SQL_Tunning_v0.1.3.docx
MySQL_SQL_Tunning_v0.1.3.docx
 
2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)
2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)
2013.02.02 지앤선 테크니컬 세미나 - 하둡으로 배우는 대용량 데이터 분산처리 기술(이현남)
 

Mehr von SungMin OH

Apache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloopsApache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloopsSungMin OH
 
Head first statistics_summary_ch03
Head first statistics_summary_ch03Head first statistics_summary_ch03
Head first statistics_summary_ch03SungMin OH
 
Head first statistics_summary_ch01
Head first statistics_summary_ch01Head first statistics_summary_ch01
Head first statistics_summary_ch01SungMin OH
 
Head first statistics_summary_ch02
Head first statistics_summary_ch02Head first statistics_summary_ch02
Head first statistics_summary_ch02SungMin OH
 
Netflix suro begins
Netflix suro beginsNetflix suro begins
Netflix suro beginsSungMin OH
 
Collaborative filtering
Collaborative filteringCollaborative filtering
Collaborative filteringSungMin OH
 
Multi mechanize
Multi mechanizeMulti mechanize
Multi mechanizeSungMin OH
 

Mehr von SungMin OH (8)

Apache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloopsApache kafka intro_20150313_springloops
Apache kafka intro_20150313_springloops
 
Head first statistics_summary_ch03
Head first statistics_summary_ch03Head first statistics_summary_ch03
Head first statistics_summary_ch03
 
Head first statistics_summary_ch01
Head first statistics_summary_ch01Head first statistics_summary_ch01
Head first statistics_summary_ch01
 
Head first statistics_summary_ch02
Head first statistics_summary_ch02Head first statistics_summary_ch02
Head first statistics_summary_ch02
 
Netflix suro begins
Netflix suro beginsNetflix suro begins
Netflix suro begins
 
Storm begins
Storm beginsStorm begins
Storm begins
 
Collaborative filtering
Collaborative filteringCollaborative filtering
Collaborative filtering
 
Multi mechanize
Multi mechanizeMulti mechanize
Multi mechanize
 

Hive begins

  • 2.  Begins 오 성 민 springloops@지메일.컴 13년 8월 5일 월요일 그럼 지금부터 Hive에 대해서 간략하게 소개해드리도록 하겠습니다. 발표를 한시간 안에 끝내야 해서 질문은 맨 마지막에 받도록 하겠고, 발표에 부족한 부분이 있을수 있습니다만, 발표 이후에라도 부족한 부분에 대해서 답변드리도록 노력하겠습니다.
  • 11.  과
  • 12.  M/R
  • 13.  비교 7. Demo 13년 8월 5일 월요일 발표 순서는 hive에 대한 간략한 소개, hive의 아키텍처, 데이터 단위 구성, hive QL, 사용자 정의 함수 그리고 hive QL과 map reduce의 비교를 해드리고 간략한 데모시연을 순서로 진행하겠습니다.
  • 14. Hive
  • 16.  Eco
  • 27.  공개 13년 8월 5일 월요일 hive란 Hadoop 에코 시스템으로 하둡 기반의 데이터 웨어하우징 프레임웍입니다. 하둡에 있는 데이터를 관리 하기 위해 , 하이브가 있기 전에는 프로그래머들이 map reduce 프로그램을 작성하여 데이터를 관리하였는데 페이스북에서 조금 더 쉽고 명확하게 데이터를 관리하고 학습하기 위해 2007년도에 개발하였고 현재는 아파지 제단에 오픈소스로 공개되어있습니다.
  • 28. Hive
  • 36.  X 13년 8월 5일 월요일 하이브는 Hive QL이라는 SQL 베이스의 쿼리를 제공해서   사용자가 쿼리를 통해 데이터 분석과 요약을 좀더 쉽게 할수 있도록 하는 클라이언트 툴입니다. 동시에 Hive QL은 전통적인 맵-리듀스 프로그래머들이 그들의 맵과 리듀스를 좀 더 쉽게 추가할 수 있도록 지원하 여 Hive QL의 기본 기능에서 제공하지 않는 좀 더 복잡한 데이터를 분석할 수 있게 끔 한다. 기본적으로 하둡은 배치 프로세스를 위한 시스템이고 하둡 잡을 실행하고 스케쥴링 하는데 부가적인 오버헤드가 발생한다. 결과적으로 하이브를 통해 약간의 데이터를 가지고 온다고 해도 하이브의 쿼리는 실시간으로 결과를 반영할 수 없습니다. 하이브는 쿼리 시에 적절히 인내할 수 있는 시간을 제공하는 것을 목표로 한다. 하이브에서 사용하는 데이터는 HDFS 에 저장 되는데, HDFS 는 한번 저장한 파일은 수정할 수 없기 때문에 행 단위 update, delete가 불가능 하고 트랜잭션을 제공하지 않습니다.
  • 37. Architecture 13년 8월 5일 월요일 하이브의 아키텍쳐는 크게 하이브 클라이언트, 메타스토어, 드라이버 로 구분이 됩니다. 하이브 클라이언트는 사용자로 부터 쿼리 명령어를 받고 드라이버로 전달 합니다. 드라이버는 클라이언트로 부터 전달 받은 쿼리를 파싱하고 최적화 한뒤에 실행계획을 만들고 하둡의 잡트래커로 잡을 요청 합니다. 하이브는 테이블 스키마와 시스템 메타 데이터를 HDFS에 저장하지 않고 별도의 저장소에 저장 하도록 구현 되어 있습니다. 이를 메타스토어라고 부릅니다. 기본적으로 아파치 더비 디비를 포함하고 있으며, 일반적인 상용 구성에서는 mysql을 활용한다고 합니다.
  • 38. Hive
  • 41.  구성 •Database •Table •partition •Row •Column 13년 8월 5일 월요일 하이브의 데이터 단위 구성은 다음과 같이 RDBMS 의 개념을 재사용 하고 있습니다.
  • 42. Hive
  • 46.  단위 예 Database myDB Table docs Partition year=2013 Row 1
  • 52.  는
  • 53.  /user/hive/warehouse {hive_root}/myDb {hive_root}/myDb/docs {hive_root}/myDb/docs/year=2013 Hadoop HDFS files 000000_0 000000_1 000000_2 foo1, bar1, 2013 foo2, bar2, 2013 foo3, foo3, 2013 13년 8월 5일 월요일 RDBMS 의 단위 개념이 HDFS에서 어떻게 적용 되는지 예를 들어 설명해드리겠습니다. 데이타베이스, 테이블, 파티션, 로우, 컬럼이 다음의 예와 같이 존재 할 경우 HDFS에는 데이타베이스 부터 파티션까지 디렉토리 수직 구조로 정의 됩니다. 로우는 파티션 하위에 존재하는 파일 내용중 각 라인을 표현하고, 컬럼은 각 라인을 구분자로 구분한 각 필드의 값이 됩니다. 여기서는 foo1, bar1, 2013이 각 row가 되고 foo1이 column이 됩니다.
  • 55.  -
  • 57.  table CREATE [EXTERNAL] TABLE page_view(viewTime INT , userid BIGINT                     , ip STRING COMMENT 'IP Address of the User')    PARTITIONED BY(dt STRING, country STRING)    ROW FORMAT DELIMITED    FIELDS TERMINATED BY 't'    STORED AS TEXTFILE; 13년 8월 5일 월요일 이제 실제 HIVE를 사용하기 위한 명령어인 HIVEQL에 대해서 말씀드리겠습니다. 여기 다홍빛 글자는 HIVE의 예약어이고, 하얀 글자는 사용자 정의 구문, 회색 글자는 해당 명령문의 옵션 값들입니 다. 앞으로 설명할 페이지 모두 동일 하니 참고해 주시기 바랍니다. 여기 있는 예시는 예상하셨겠지만, 테이블을 만드는 명령문입니다. SQL과 비슷합니다. 기본 적으로 create table 테이블 명, 컬럼명, 데이터 타입을 정의 하면 됩니다. 옵션으로는 커멘트를 정의 할수 있는데 테이블과 , 각 컬럼 별로 정의 할수 있고 파티션을 정의 해서 검색에 효율적으로 대처 할수 있습니다. ROW FORMAT DELIMITED 명령어 부터는 파일의 포멧에 대해 설명하는 부분으로 FIELDS TERMINATED BY 명령어를 추가 함으로서 파일의 필드를 구분 짓기 위해 명시해주는 명령어입니다. 예에서는 탭 문자로 필드를 구분짓고 있습니다. 스토어 명령어는 저장될 파일 포멧을 정의 합니다. 기본적으로 TEXTFILE 포멧이 있고, sequenceFile, RCFile 포멧이 있습니다. 마지막으로 external 키워드는 데이터의 관리를 하이브가 하지 않겠다는 의미 입니다. 이말은 테이블 스키마가 삭제되어도 데이터는 삭제 되지않는 다는 것을 말합니다. HDFS에 있는 데이터를 하이브만 사용하는게 아니라 다른 하둡의 에코시스템에서도 사용하는 경우 유용합니다.
  • 59.  -
  • 61.  data LOAD DATA [LOCAL] INPATH 'filepath' INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] INSERT (OVERWRITE|INTO) TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...)] SELECT columns.. FROM from table; 13년 8월 5일 월요일 이제 만들어 놓은 테이블에 데이터를 넣는 방법에 대해 설명하겠습니다. 데이터를 테이블에 적재 시키기 위해 HiveQL은 LOAD DATA와 INSERT TABEL 키워드를 제공합니다. LOAD DATA는 HDFS에 존재하는 파일을 불러와 테이블에 넣는 방법이고 LOAD DATA INPATH 파일 패스 INTO TABLE 형태로 표현합니다. INSERT TABLE은 SELECT 쿼리와 조합하여, SELECT 쿼리의 결과를 테이블에 넣는 방법입니다. OVERWRITE 의 경우 테이블에 데이터가 존재 할경우 덮어쓰게 되고, INTO는 뒤로 추가하게 됩니다. 파티션이 존재 하는 테이블일 경우 옵션 처럼 파티션 정의 값을 함께 정의 해 주어야 합니다.
  • 63.  -
  • 65.  Data1 Select Syntax e.g) SELECT * FROM t1 2 WHERE Clause e.g) SELECT * FROM sales WHERE amount 10 AND region = US” 3 DISTINCT Clauses e.g) SELECT DISTINCT col1 FROM t1 4 Partition Based Queries e.g) partition(region string) e.g) SELECT * FROM sales WHERE region = US” AND amount 10 5 HAVING Clause e.g) SELECT col1 FROM t1 GROUP BY col1 HAVING SUM(col2) 10 6 LIMIT Clause e.g) SELECT * FROM sales ORDER BY amount DESC LIMIT 5 13년 8월 5일 월요일 SELECT 구문입니다. SELECT, FROM, WHERE 절로 구성이 되있고 알고 계시는 SQL과 동일합니다. 차이가 있다면 HIVEQL은 서브 쿼리가 FROM 절에서만 가능합니다. 다음으로 넘어가겠습니다.
  • 67.  -
  • 68.  Join SELECT p.user, p.post, l.count FROM posts p JOIN likes l ON (p.user = l.user); SELECT p.*, l.* FROM posts p LEFT OUTER JOIN likes l ON (p.user = l.user) SELECT p.*, l.* FROM posts p RIGHT OUTER JOIN likes l ON (p.user = l.user) SELECT p.*, l.* FROM posts p FULL OUTER JOIN likes l ON (p.user = l.user) 13년 8월 5일 월요일 보시는 쿼리는 JOIN 쿼리인데요. HIVEQL은 INNER JOIN, LEFT OUTER, RIGHT OUTER, FULL OUTER JOIN 만 제공합니다.
  • 70.  -
  • 72.  by SELECT pv_users.gender , count(*) , count(DISTINCT pv_users.userid) , sum(DISTINCT pv_users.userid)   FROM pv_users GROUP BY pv_users.gender; 13년 8월 5일 월요일 GROUP BY 역시 SQL과 동일 합니다.
  • 74.  -
  • 76.  table ALTER TABLE old_table_name RENAME TO new_table_name; ALTER TABLE old_table_name REPLACE COLUMNS (col1 TYPE, ...); ALTER TABLE table_name ADD COLUMNS ( c1 INT COMMENT 'a new int column' , c2 STRING DEFAULT 'def val'); ALTER TABLE table_name ADD PARTITION (ds='2008-08-08') LOCATION ‘/logs/2011/01/01’ ALTER TABLE table_name DROP PARTITION (ds='2008-08-08') 13년 8월 5일 월요일 테이블을 수정하는 명령어인 alter table 입니다. - rename to 로 기존 테이블 이름을 변경할 수 있고, - replace columns 로 컬럼의 속성을 변경할 수 있습니다. replace columns 경우 기존의 모든 컬럼을 삭제하고 다시 등록하게 됩니다. - add columns 로 새로운 컬럼을 추가 하고, - add partition, drop partition으로 파티션 데이터를 추가/삭제 할수 있습니다.
  • 78.  -
  • 80.  table DROP TABLE pv_users; 13년 8월 5일 월요일 마지막으로 DROP table 명령어는 테이블의 스키마와 데이터를 함께 삭제 하는 명령어 입니다. EXTERNAL 테이블이 아닌 경우 데이터까지 삭제 되므로 사용자의 주의가 필요합니다. 하이브는 데이터만 삭제 하는 명령어가 없습니다. 하지만 강제로 데이터만 삭제 하고 싶을 경우 HDFS 에서직접 파일을 삭제 하면 스키마는 남고 데이터만 삭제하게 됩니다.
  • 81. User
  • 94.  
  • 101.  행 explode 13년 8월 5일 월요일 하이브 역시 기본적으로 몇십가지 쿼리 함수를 제공하는데, 그것 이외에 사용자 정의 함수를 만들어 사용할 수 있습 니다. UDF, UDAF, UDTF 이렇게 세가지 형태의 방법을 제공 하는데요. - UDF의 경우 SUBSTR, ROUND 와 같은 함수 들 처럼, 단일 행의 입력을 받아 하나의 값을 출력하는 함수를 에 해당 하며, - UDAF 의 경우 SUM, MAX 함수 등과 같이, 다수 행의 입력을 받아 하나의 값을 출력하는 집계 함수에 해당합니 다. - UDTF 의 경우 특별한 함수를 정의 할 수 있게 지원하는데, 하나의 값을 분할 하여 다중 행의 테이블형태로 출력하는 사용자 정의 함수 입니다. HIve에서 제공하는 explode 함수가 해당됩니다.
  • 102. UDTF
  • 103.  Example SELECT explode(myCol) AS myNewCol FROM myTable; myCol :Arrayint [1, 2, 3] [4, 5, 6] myNewCol : int 1 2 3 4 5 6 myTable 13년 8월 5일 월요일 UDTF 에 대해 조금더 말씀 드리면 보시는 것 처럼 myTable 이라는 테이블이 존재 하고, ARRAY 데이터 형의 컬럼이 있을 경우 다음과 같이 explode 함수를 사용하여 쿼리 하면, 오른쪽 하단과 같이 결과값이 하나의 테이블 형태로 출력되게 됩니다. 이런식으로 동작하는 사용자 정의 함수를 UDTF 라고 합니다.
  • 104. UDF
  • 105.  Example Dependency - hadoop-core-*.jar - hive-exec-*.jar - jdo2-api-*.jar ADD jar /path/hive-examples.jar; CREATE TEMPORARY FUNCTION myLower AS ‘com.springloops.hive.udf.Lower‘; SELECT myLower(col1) FROM myTable; 13년 8월 5일 월요일 아주 간단한 사용자 정의 함수를 만들고 사용하는 법을 설명 드리겠습니다. 우선 UDF 클래스는 hadoop-core, hive-exec, jdo-api 에 대한 디펜던시를 갖습니다. 따라서 이 세 라이브러리를 클래스 패스에 추가 해주셔야 하고, 새롭게 생성할 사용자 정의 함수 클래스는 UDF 클래스를 상속 받고, 하나 이상의 evaluate 메서드를 구현해주어야 합니다. 컴파일과 빌드 작업으로 jar 파일을 생성을 하고 하이브 클라이언트에서 다음과 같이 add jar 명령으로 해당 jar를 등록합니다. 다음으로 create temporary function 키워드로 사용자 정의 함수를 선언합니다. 그럼 쿼리문에 다음과 같이 정의한 함수를 사용하실 수 있습니다.
  • 106. HiveQL
  • 107.  With
  • 108.  Map/Reduce pageid age 1 25 1 25 pv_users pageid age count 1 25 3 pageid age 2 32 1 25 Map key value 1,25 2 key value 1,25 1 2,32 1 key value 1,25 2 1,25 1 key value 2,32 1 Shuffle Sort pageid age count 2 32 1 Reduce Grouping SELECT
  • 110.  age,
  • 112.  FROM
  • 115.  BY
  • 117.  age 1 1 2 2 3 3 13년 8월 5일 월요일 마지막으로 하이브와 map/reduce 의 작업을 비교해 보겠습니다. Grouping의 경우 Map/reducec가 만들어진 목적과 부합하는 예인데요. 데이터 셋에서 그룹해서 출력해야할 필드를 키로 묶고, 데이터를 순회 하며 키에 해당 하는 값을 1로 채웁니다. 리듀스는 키를 기반으로 값을 합하고, 구분자로 묶인 키를 분리 하여 출력하는 형태로 진행됩니다.
  • 118. HiveQL
  • 119.  With
  • 120.  Map/Reduce key value 111 1,1 111 1,2 222 1,1 pageid userid time 1 111 9:08:01 2 111 9:08:13 1 222 9:08:14 userid age gender 111 25 female 222 32 male page_view user pv_users key value 111 2,25 222 2,32 Map key value 111 1,1 111 1,2 111 2,25 key value 222 1,1 222 2,32 Shuffle Sort Pageid age 1 25 2 25 pageid age 1 32 Reduce Join SELECT
  • 122.  age
  • 123.  FROM
  • 125.  p
  • 126.  JOIN
  • 127.  user
  • 128.  u
  • 129.  ON
  • 131.  =
  • 132.  u.userid 1 1 2 2 13년 8월 5일 월요일 다음으로 JOIN 쿼리의 경우에 대해서 말씀드리면, 위와 같이 페이지 뷰 테이블과 유저 테이블을 유저아이디로 조인을 하여 쿼리를 할경우 HIVEQL은 위에 보시는 것처럼 간단하게 뽑을 수 있습니다. 쿼리 아래 그림은 맵리듀스로 조인하는 디자인 패턴을 표현한 것입니다. 첫번째로 매퍼는 각 데이터 셋에서 입력 레코드를 가져 오고, 다음으로 레코드에서 외래 키를 추출 하여 조인 연산을 준비 합니다. 두 개 이상의 데이터 셋이므로 각 데이터 셋에 대한 식별자를 포함합니다. 리듀서는 동일한 키에 대한 값을 전달 받고 값을 순회 하면서 레코드를 조인합니다.
  • 133.  
  • 141.  UDF
  • 142.  사용 13년 8월 5일 월요일 마지막으로 데모를 할텐데요 말씀 드린대로 HIVE QL은 SQL 과 많이 유사 하므로 간단하게 실행해보는 것으로 마무리 하겠습니다.
  • 143. Hive
  • 144.  Information • 한글 • http://pizzastudio.tistory.com/8 • http://www.jopenbusiness.com/mediawiki/index.php/Hive • 영문 • https://cwiki.apache.org/confluence/display/Hive/LanguageManual • https://cwiki.apache.org/confluence/display/Hive/Home • http://courses.coreservlets.com/Course-Materials/pdf/hadoop/07-Hive-01.pdf 13년 8월 5일 월요일 다음은 추천 페이지 입니다.
  • 146.  
  • 147.  A 13년 8월 5일 월요일