Tech/Bigdata Platform

[Hive] HiveQL 주요 내장함수 정리 part1 (DDL)

data_start_ 2024. 2. 27. 11:16

apache hive

  • 하둡 환경에서 데이터를 관리하고 쿼리하기 위한 데이터 웨어하우싱 솔루션
  • SQL과 유사한 HiveQL을 사용하여 데이터 처리
  • 주로 배치 작업, 대용량 데이터 분석을 위해 사용

HiveQL Data Types 

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types

 

LanguageManual Types - Apache Hive - Apache Software Foundation

Hive Data Types Overview This lists all supported data types in Hive. See Type System in the Tutorial for additional information. For data types supported by HCatalog, see: Numeric Types TINYINT (1-byte signed integer, from -128 to 127)SMALLINT (2-byte sig

cwiki.apache.org

1) 기본 데이터 타입

  • 문자열 타입: STRING, VARCHAR(n), CHAR(n)
  • 정수 타입: TINYINT, SMALLINT, INT, BIGINT
  • 부동 소수점 타입: FLOAT, DOUBLE
  • 날짜 및 시간 타입: DATE, TIMESTAMP
  • 부울 타입: BOOLEAN (true/false)
  • 정밀도 타입: DECIMAL(precision, scale)
  • 이진 타입: BINARY

2) 복합 데이터 타입

  • ARRAY: ARRAY<data_type> – 데이터 타입의 배열을 저장
  • MAP: MAP<key_type, value_type> – 키-값 쌍을 저장
  • STRUCT: STRUCT<col_name:data_type, ...> – 구조체처럼 여러 속성을 함께 저장
  • UNIONTYPE: 다양한 타입 중 하나의 타입을 선택적으로 저장

HiveQL 주요 내장함수 

1. DDL (Data Definition Language)

데이터베이스, 테이블, 뷰 등 데이터 구조를 정의하고 관리하는 데 사용

SHOW (데이터베이스, 테이블, 컬럼, 함수 등 메타데이터 정보를 조회)

/* 모든 스키마명 추출 */
SHOW DATABASES;

/* 특정 스키마 내 테이블명 추출 */
SHOW TABLES IN schema1;

/* use 스키마 실행 후 테이블명 추출 */
USE schema1;
SHOW TABLES;

/* 특정 테이블 내 필드명 추출 */
SHOW COLUMNS IN table_name;

CREATE (데이터베이스, 테이블, 뷰, 함수 등을 생성)

1) 특정 스키마 내에 테이블 생성 

/* user_log 스키마 내에 일자별 콘텐츠 이용자 내역 테이블 생성하기 */
CREATE TABLE `user_log`.`daily_contents_use_user` (
 	uer_id STRING COMMENT '이용자 ID' 	-- 칼럼명, 타입, 코멘트
 	contents_id STRING COMMENT '콘텐츠 ID' 	-- 칼럼명, 타입, 코멘트    
 	use_st_time STRING COMMENT '이용 시작 시간' 	-- 칼럼명, 타입, 코멘트    
 	use_ed_time STRING COMMENT '이용 종료 시간' 	-- 칼럼명, 타입, 코멘트    
) COMMENT '일별)콘텐츠_이용자_이용내역'  	-- 테이블 info 코멘트
PARTITIONED BY (
 	p_yymmdd STRING COMMENT '이용일(파티션)' -- 파티션 칼럼 지정
);

 

2) CSV형식의 데이터를 읽거나 저장하는 테이블 생성 

create table schema1.tmp_table_1 (
    user_id string
    ,create_date string
)
row format delimited fields terminated by ','; -- 필드를 쉼표로 구분해서 csv형식의 데이터를 읽거나 저장할 때 사용

/* csv파일 업로드*/
load data inpath '/경로명/파일명.csv' into table schema1.tmp_table_1;