HQL의 예제가 포함 된 상위 Hive 명령



이 블로그에서는 HQL의 예제와 함께 Hive 명령에 대해 설명합니다. CREATE, DROP, TRUNCATE, ALTER, SHOW, DESCRIBE, USE, LOAD, INSERT, JOIN 및 더 많은 Hive 명령

이 블로그 게시물에서는 예제와 함께 상위 Hive 명령에 대해 설명하겠습니다. 이러한 Hive 명령은 다음에 대한 기반을 설정하는 데 매우 중요합니다. .

Edureka 2019 기술 경력 가이드가 나왔습니다! 가장 인기있는 직무 역할, 정확한 학습 경로, 업계 전망 등이 가이드에서 제공됩니다. 다운로드 지금.

Hive 란 무엇입니까?

Apache Hive는 Hadoop에서 작동하도록 구축 된 데이터웨어 하우스 시스템입니다. 분산 스토리지에있는 대규모 데이터 세트를 쿼리하고 관리하는 데 사용됩니다. Apache Hadoop의 오픈 소스 프로젝트가되기 전에 Hive는 Facebook에서 시작되었습니다. Hadoop의 데이터에 구조를 투영하고 HiveQL (HQL)이라는 SQL과 유사한 언어를 사용하여 해당 데이터를 쿼리하는 메커니즘을 제공합니다.





Hive의 테이블이 관계형 데이터베이스의 테이블과 유사하기 때문에 Hive가 사용됩니다. SQL에 대해 잘 알고있는 경우, 그것은 케이크 워크입니다. 많은 사용자가 Hive-QL을 사용하여 동시에 데이터를 쿼리 할 수 ​​있습니다.

HQL은 무엇입니까?

Hive는 Hive-QL (HQL)이라는 대규모 데이터 세트를 쿼리하고 관리하기 위해 간단한 SQL과 유사한 쿼리 언어를 정의합니다. SQL 언어에 익숙하다면 사용하기 쉽습니다. Hive를 사용하면 언어에 익숙한 프로그래머가 사용자 지정 MapReduce 프레임 워크를 작성하여보다 정교한 분석을 수행 할 수 있습니다.



Hive의 용도 :

1. Apache Hive 분산 스토리지.

2. Hive는 간편한 데이터 추출 / 변환 /로드 (ETL)를 가능하게하는 도구를 제공합니다.

3. 다양한 데이터 형식에 대한 구조를 제공합니다.



4. Hive를 사용하여 Hadoop 분산 파일 시스템 (HDFS는 상주하는 대용량 데이터 세트를 쿼리하고 관리하는 데 사용됨) 또는 Apache HBase와 같은 다른 데이터 스토리지 시스템에 저장된 파일에 액세스 할 수 있습니다.

Hive의 한계 :

& bull Hive는 온라인 트랜잭션 처리 (OLTP) 용으로 설계되지 않았으며 온라인 분석 처리에만 사용됩니다.

& bull Hive는 데이터 덮어 쓰기 또는 체포를 지원하지만 업데이트 및 삭제는 지원하지 않습니다.

& bull Hive에서는 하위 쿼리가 지원되지 않습니다.

Pig에도 불구하고 Hive가 사용되는 이유는 무엇입니까?

다음은 Pig의 가용성에도 불구하고 Hive가 사용되는 이유입니다.

  • Hive-QL은 선언적 언어 라인 SQL이고 PigLatin은 데이터 흐름 언어입니다.
  • Pig : 매우 큰 데이터 세트를 탐색하기위한 데이터 흐름 언어 및 환경입니다.
  • Hive : 분산 데이터웨어 하우스.

Hive의 구성 요소 :

메타 스토어 :

Hive는 Hive 메타 스토어에 Hive 테이블의 스키마를 저장합니다. 메타 스토어는웨어 하우스에있는 테이블 및 파티션에 대한 모든 정보를 보유하는 데 사용됩니다. 기본적으로 메타 스토어는 Hive 서비스와 동일한 프로세스에서 실행되며 기본 메타 스토어는 DerBy Database입니다.

SerDe :

Serializer, Deserializer는 레코드 처리 방법에 대한 하이브 지침을 제공합니다.

Hive 명령 :

데이터 정의 언어 (DDL)

DDL 문은 데이터베이스의 테이블 및 기타 개체를 작성하고 수정하는 데 사용됩니다.

DDL 명령 함수
창조하다 테이블 또는 데이터베이스를 만드는 데 사용됩니다.
보여 주다 데이터베이스, 테이블, 속성 등을 표시하는 데 사용됩니다.
나이 기존 테이블을 변경하는 데 사용됩니다.
설명 테이블 열을 설명합니다.
자르기 테이블의 행을 영구적으로 자르고 삭제하는 데 사용됩니다.
지우다 테이블 데이터를 삭제하지만 복원 가능

sudo hive 명령을 제공하여 Hive 셸로 이동하고 다음 명령을 입력합니다. '창조하다 데이터 베이스 이름>’ Hive에 새 데이터베이스를 만듭니다.

Hive 명령을 사용하여 Hive 데이터베이스 만들기

Hive웨어 하우스의 데이터베이스를 나열하려면‘ show database '.

데이터베이스는 Hive웨어 하우스의 기본 위치에 생성됩니다. Cloudera에서 Hive 데이터베이스는 / user / hive / warehouse에 저장됩니다.

데이터베이스를 사용하는 명령은 다음과 같습니다. 사용하다

copy From Local 명령을 사용하여 입력 데이터를 로컬에서 HDFS로 복사합니다.

하이브에서 테이블을 만들면 하이브웨어 하우스의 기본 위치에 생성됩니다. – '/ user / hive / warehouse', 테이블 생성 후 데이터를 HDFS에서 하이브 테이블로 이동할 수 있습니다.

다음 명령은 '/user/hive/warehouse/retail.db'위치에있는 테이블을 만듭니다.

노트 : retail.db는 Hive웨어 하우스에서 생성 된 데이터베이스입니다.

설명 테이블 스키마에 대한 정보를 제공합니다.

데이터 조작 언어 (DML)

DML 문은 데이터베이스에서 데이터를 검색, 저장, 수정, 삭제, 삽입 및 업데이트하는 데 사용됩니다.

예 :

LOAD, INSERT 문.

구문 :

데이터 inpath를 테이블 [tablename]에로드

로드 작업은 데이터를 해당 Hive 테이블로 이동하는 데 사용됩니다. 키워드 현지 지정되면로드 명령에서 로컬 파일 시스템 경로를 제공합니다. local 키워드가 지정되지 않은 경우 파일의 HDFS 경로를 사용해야합니다.

다음은 LOAD 데이터 LOCAL 명령에 대한 몇 가지 예입니다.

데이터를 Hive 테이블에로드 한 후 데이터 조작 문을 적용하거나 집계 함수를 사용하여 데이터를 검색 할 수 있습니다.

레코드 수를 계산하는 예 :

Count 집계 함수는 테이블의 총 레코드 수를 계산하는 데 사용됩니다.

‘외부 생성’테이블 :

그만큼 외부 생성 키워드는 테이블을 생성하는 데 사용되며 테이블이 생성 될 위치를 제공하므로 Hive는이 테이블의 기본 위치를 사용하지 않습니다. 안 외부 테이블은 기본 스토리지가 아닌 스토리지에 대한 HDFS 위치를 가리 킵니다.

명령 삽입 :

그만큼 끼워 넣다 명령은 데이터 Hive 테이블을로드하는 데 사용됩니다. 테이블이나 파티션에 삽입 할 수 있습니다.

& bull INSERT OVERWRITE는 테이블 또는 파티션의 기존 데이터를 덮어 쓰는 데 사용됩니다.

& bull INSERT INTO는 데이터를 테이블의 기존 데이터에 추가하는 데 사용됩니다. (참고 : INSERT INTO 구문은 버전 0.8에서 작동합니다.)

'Partitioned By'및 'Clustered By'명령의 예:

'파티션 '은 테이블을 파티션으로 나누는 데 사용되며'를 사용하여 버킷으로 나눌 수 있습니다. 클러스터링 ‘명령.

오류를 발생시키는 데이터 Hive를 삽입하면 동적 파티션 모드가 엄격하고 동적 파티션이 활성화되지 않습니다. 제프 ...에서 드레스 헤드 웹 사이트 ). 따라서 Hive 셸에서 다음 매개 변수를 설정해야합니다.

hive.exec.dynamic.partition = true 설정

동적 파티션을 활성화하려면 기본적으로 false입니다.

hive.exec.dynamic.partition.mode = nonstrict 설정

파티션은 카테고리별로 수행되며 'Clustered By'명령을 사용하여 버킷으로 나눌 수 있습니다.

'Drop Table'문은 테이블의 데이터와 메타 데이터를 삭제합니다. 외부 테이블의 경우 메타 데이터 만 삭제됩니다.

'Drop Table'문은 테이블의 데이터와 메타 데이터를 삭제합니다. 외부 테이블의 경우 메타 데이터 만 삭제됩니다.

테이블 테이블 이름에 로컬 인 패스 'aru.txt'데이터를로드 한 다음 Select * from table name 명령을 사용하여 employee1 테이블을 확인합니다.

선택을 사용하여 테이블의 레코드 수를 계산하려면 카운트(*) txnrecords에서

집계 :

테이블 이름에서 개수 (DISTINCT 범주) 선택

이 명령은 'cate'테이블의 다른 범주를 계산합니다. 여기에는 세 가지 카테고리가 있습니다.

f1이 범주의 필드 이름 인 다른 테이블 범주가 있다고 가정합니다.

그룹화 :

Group 명령은 결과 집합을 하나 이상의 열로 그룹화하는 데 사용됩니다.

카테고리별로 txt 레코드 그룹에서 카테고리, 합계 (금액) 선택

동일한 카테고리의 금액을 계산합니다.

결과 한 테이블이 다른 테이블에 저장됩니다.

select * from oldtablename으로 테이블 newtablename 만들기

조인 명령 :

여기에 이름에 테이블이 하나 더 생성됩니다. ‘메일’

조인 작업 :

조인 작업은 각각에 공통된 값을 사용하여 두 테이블의 필드를 결합하기 위해 수행됩니다.

왼쪽 외부 결합 :

테이블 A 및 B에 대한 왼쪽 외부 조인 (또는 단순히 왼쪽 조인)의 결과에는 join-condition이 '오른쪽'테이블에서 일치하는 레코드를 찾지 못하더라도 항상 '왼쪽'테이블 (A)의 모든 레코드가 포함됩니다. (비).

오른쪽 외부 결합 :

오른쪽 외부 조인 (또는 오른쪽 조인)은 테이블을 반대로 처리한다는 점을 제외하고는 왼쪽 외부 조인과 매우 유사합니다. '오른쪽'테이블 (B)의 모든 행은 조인 된 테이블에 한 번 이상 나타납니다.

완전 가입 :

조인 된 테이블에는 두 테이블의 모든 레코드가 포함되며 양쪽에서 누락 된 일치 항목에 대해 NULL을 채 웁니다.

하이브 작업이 끝나면 quit 명령을 사용하여 하이브 셸을 종료 할 수 있습니다.

Hive에서 종료

데이터 과학은 무엇에 사용됩니까?

Hive는 Big Data 및 Hadoop이라는 큰 퍼즐의 일부일뿐입니다. Hadoop은 단순한 Hive 이상입니다. Hadoop에서 마스터해야하는 다른 기술을 보려면 아래를 클릭하십시오.

질문이 있으십니까? 의견란에 언급 해 주시면 연락 드리겠습니다.

관련 게시물:

빅 데이터 교육으로 조직을 바꿀 수있는 7 가지 방법

Hive 데이터 모델