내가 보려고 만든 블로그
<Hive> 하이브 본문
등장 배경:
빅데이터 개념이 등장하면서 일단 데이터를 Data Lake에 던지고 보는 환경이 만들어짐. 이렇게 스키마 없이 저장된 데이터들을 편하게? 가져오기 위해 하이브가 등장하게 됨.
1. 하이브의 가장 큰 특징은 메타스토어에 스키마를 정의하고 저장된 데이터에 스키마를 입힐 수 가 있다.
3. HIVEQL
sql과 거의 유사하지만 hdfs는 한 번 저장한 파일을 수정할 수 없기 때문에 update, Delete 등 사용이 불가능하며 insert를 할 때에도 덮어쓰기만 가능하다고 한다.
4. External table 과 managed table
External table은 hdfs에 존재하고 있는 파일에 대해 스키마를 입혀 실제 테이블 처럼 사용하는 것이다.( 파일이 생기지 않는다 추가적으로)
반면 , Managed table 은 생성하게 되면 default 설정 기준 hive/warehouse 라는 곳에 테이블이 생성되게 된다.
예제) External Table
/temp/test_dir안에 테스트용 데이터를 적재하고 이 데이터를 이용해 external_test라는 테이블 만듬.
다음과 같이 external_test라는 테이블을 가져올 수있다.
예제) Managed Table
external table에서 hdfs내의 데이터를 그대로 테이블로 사용하던 것과 다르게 managed table은 새로운 테이블들을 생성한다.
1. 테이블 생성
2. 테이블에 간단한 데이터들을 넣어줌
3. 앞서 말했듯이 저장된 데이터는 /hive/warehouse 경로에 저장됨.
방금은 테이블을 생성하고 insert해서 넣어주었는데 사실 많이 사용되는 방법은 select 문을 이용해서 테이블을 생성하는 거임.
아래가 예시 20221010 데이터를 가져와서 select_test라는 테이블 만듦