뷰는 사용자 요구 사항을 기반으로 생성됩니다. 결과 세트 데이터를 뷰로 저장할 수 있습니다. Hive의 뷰 사용은 SQL의 뷰와 동일합니다. 이것은 표준 RDBMS 개념입니다. 뷰에서 모든 DML 작업을 실행할 수 있습니다.

View 만들기

SELECT.을 실행할 때보기를 작성할 수 있습니다. 구문은 다음과 같습니다.

CREATE VIEW [IF NOT EXISTS] view_name [(column_name [COMMENT column_comment], ...)] [COMMENT table_comment] AS SELECT ...


우리가보기에 대한 모범을 보자. Id, Name, Salary, Designation 및 Dept 필드가있는 직원 테이블을 가정합니다. 30000 루타 이상의 급여를받는 직원 세부 정보를 검색하는 쿼리를 생성합니다. 결과를 emp_30000 뷰에 저장합니다 .

+------+--------------+-------------+-------------------+--------+
| ID   | Name         | Salary      | Designation       | Dept   |
+------+--------------+-------------+-------------------+--------+
|1201  | Gopal        | 45000       | Technical manager | TP     |
|1202  | Manisha      | 45000       | Proofreader       | PR     |
|1203  | Masthanvali  | 40000       | Technical writer  | TP     |
|1204  | Krian        | 40000       | Hr Admin          | HR     |
|1205  | Kranthi      | 30000       | Op Admin          | Admin  |
+------+--------------+-------------+-------------------+--------+

다음 쿼리는 위의 시나리오를 사용하여 직원 세부 정보를 검색합니다.

hive> CREATE VIEW emp_30000 AS
SELECT * FROM employee
WHERE salary>30000; 


View 삭제

다음 구문을 사용하여 뷰를 삭제합니다.

DROP VIEW view_name


다음 쿼리는 emp_30000이라는 뷰를 삭제합니다.

hive> DROP VIEW emp_30000;



색인 만들기

인덱스는 테이블의 특정 컬럼에 대한 포인터 일뿐입니다. 인덱스를 만드는 것은 테이블의 특정 열에 포인터를 만드는 것을 의미합니다. 구문은 다음과 같습니다.

CREATE INDEX index_name
ON TABLE base_table_name (col_name, ...)
AS 'index.handler.class.name'
[WITH DEFERRED REBUILD]
[IDXPROPERTIES (property_name=property_value, ...)]
[IN TABLE index_table_name]
[PARTITIONED BY (col_name, ...)]
[
   [ ROW FORMAT ...] STORED AS ...
   | STORED BY ...
]
[LOCATION hdfs_path]
[TBLPROPERTIES (...)]

색인에 대한 예를 들어 봅시다. 이전에 Id, Name, Salary, Designation 및 Dept 필드에 사용했던 것과 동일한 사원 테이블을 사용하십시오. employee 테이블의 salary 열에 index_salary라는 인덱스를 작성하십시오.

다음 쿼리는 인덱스를 만듭니다.

hive> CREATE INDEX inedx_salary ON TABLE employee(salary)
AS 'org.apache.hadoop.hive.ql.index.compact.CompactIndexHandler';

급여 열의 포인터입니다. 열이 수정되면 변경 내용은 인덱스 값을 사용하여 저장됩니다.

색인 삭제

다음 구문은 인덱스를 삭제하는 데 사용됩니다.

DROP INDEX <index_name> ON <table_name>

다음 쿼리는 index_salary라는 인덱스를 삭제합니다.

hive> DROP INDEX index_salary ON employee;




출처 : https://www.tutorialspoint.com/hive/hive_views_and_indexes.htm

'Hadoop ecosystem > Hive' 카테고리의 다른 글

Hive - 내장함수  (0) 2017.05.04
Hive - Drop  (0) 2017.05.04
Hive - Create  (0) 2017.05.04
Hive - Data Type  (0) 2017.05.04
Hive / Pig / Spark  (0) 2017.05.04

+ Recent posts