본문 바로가기

전체 글35

[Hive] 데이터베이스, 테이블 기본 명령어 데이터베이스 Hive는 실제 데이터베이스가 아니다. 실제 데이터는 HDFS에 저장되지만, 저장되는 데이터에 대한 메타 데이터를 관리하는 메타 스토어이다. 데이터베이스 생성 -- IF NOT EXISTS를 사용할 것을 권장한다. CREATE DATABASE IF NOT EXISTS d1; 데이터베이스 정보 보기 DESCRIBE DATABASE d1; 데이터베이스 COMMENT 달기 CREATE DATABASE IF NOT EXISTS d2 COMMENT 'this is a database'; DESCRIBE DATABASE EXTENDED d2; 데이터베이스 생성시 DBPROPERTIES 속성 넣기 (생성한 사람, 생성 일자) CREATE DATABASE IF NOT EXISTS d3 WITH DBPROP.. 2023. 12. 12.
[Hive] Table Migration 하기 Hive Table Migration 1. 파티션 확인 show PARTITIONS ; 2. External에서만 drop 하기 (메타 데이터 drop) ALTER TABLE DROP IF EXISTS PARTITION ( = ); ☆ 주의점 !! : 만약 EXTERNAL='FALSE' 설정시 테이블을 drop하면 실제 물리적 파일도 같이 삭제된다. 따라서 Internal에서 drop 하기 전에는 반드시 메타데이터와 실제 물리적 데이터의 연결을 해제해줘야 한다. ALTER TABLE SET TBLPROPERTIES('EXTERNAL' = 'TRUE'); 3. 테이블 이름 변경 ALTER TABLE RENAME TO ; 4. 기존 폴더에 있던 파일들을 새로 옮기려는 테이블의 경로로 물리적 파일을 Move .. 2023. 11. 26.
[Hive] Beeline 쿼리 실행 쿼리 실행 명령행(CLI)에 쿼리를 직접 입력하여 실행 # -e : Query that should be executed. Double or single quotes enclose the query string. This option can be specified multiple times. beeline -e # single quotes beeline -e 'SELECT * FROM SOSS.DM_SAFE_IDEX_GRID' # dobule quotes beeline -e "SELECT * FROM SOSS.DM_SAFE_IDEX_GRID" 스크립트 파일로 실행 (비대화식 모드) # -f : Script file that should be executed. beeline -f # file SELECT .. 2023. 11. 26.
[Django] Model에 Field 추가시 주의사항 Model에 Field를 추가하는 상황 기존 모델에 필드를 추가해야 하는 경우각 있다. 기존 데이터베이스에 데이터가 없다면 상관 없겠지만 이미 데이터가 있다면 필드를 추가하는 데 있어 여러 고민이 생긴다. 나는 앞서 title, rating 두 컬럼만 가진 Book 객체에 2개의 데이터를 넣었다. 그리고 author, is_bestselling 객체를 추가하여 migration 파일을 다시 재정의 하려고 한다. 그러자 나는 아래와 같은 응답을 받았다. 간단히 요약하자면 새로운 컬럼에 대한 default 값이 정의되어 있지 않아 기존 데이터(existing rows)에 어떤 값을 넣어야 할지 모르겠다는 것이다. 그리고 옵션을 Select 하라고 한다. 기존에 존재하는 모든 데이터들에 신규 컬럼에 대해 nu.. 2023. 11. 19.