관계형 데이터베이스에서는 Schema on Write 개념을 사용한다.
- 데이터베이스에 데이터를 입력하기전에 스키마를 정의.
Hive는 구조화되지 않은 데이터를 가져와서 읽는 순간에 스키마를 적용한다.
- ex) 데이터는 탭으로 구분된 텍스트 파일이지만 실제로 구조화되지는 않은 상태
CREATE TABLE ratings (
userID INT,
movieID INT,
rating INT,
time INT)
ROW FORMAT DELIMETED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
LOAD DATA LOCAL INPAHT '<PATH the data file>'
OVERWRITE INTO TABLE ratings
Hive는 구조화된 관계형 데이터베이스를 만드는 게 아님. 클러스터에 있는 기존의 데이터를 읽을 때 스키마를 적용하는 것. 'LOAD DATA' 명령어를 사용하면 데이터를 분산 파일 시스템에서 Hive로 가져오고 그 데이터에 대한 소유권을 갖고 관리한다.
CREATE TABLE customers(
name STRING,
address STRUCT<street:STRING, city:STRING, state:STRING, zip:INT>)
PARTITIONED BY (country STRING);