본문 바로가기

Coursera 강의 정리/Modern Big Data Analysis with SQL

S3 Managing Big Data in Clusters and Cloud Storage - W2 Defining Databases Tables and Columns

Modern Big Data Analysis with SQL 특화 과정 중 세 번째 강의 Managing Big Data in Clusters and Cloud Storage

 번째 주차 Defining Databases Tables and Columns 내용 정리입니다.

 

데이터베이스와 테이블을 생성/삭제하는 SQL: CREATE, DROP

테이블을 생성할 때 파일로부터 데이터를 읽어 들일 수 있다
. 이러한 경우 ROW FORMAT, STOARED AS, LOCATION을 적절히 활용해야 한다.

일반적으로
HiveImpalas는 호환이 잘 되지만, 각각의 SQL 엔진이 가지는 고유한 기능이 있으므로 유의해야 한다.

데이터베이스 및 테이블 생성/삭제하기

Hue의 Table Browser를 활용하거나 SQL 명령으로 데이터베이스 및 테이블을 생성/삭제할 수 있다.

 

1)     CREATE/DROP DATABASE databasename

2)     CREATE/DROP TABLE tablename (col1 TYPE, col2 TYPE, …)

조금 특이한 테이블 생성

일반적인 테이블 이외에 External Table와 Temporary Table이 있다.

 

1)     External Table: 외부 데이터로부터 테이블이 형성되며, 테이블이 삭제되더라도 외부 데이터가 같이 삭제되지 않는다.

2)     Temporary Table: 현재 세션에서만 유효한 테이블로 Hive에만 있는 테이블 형식이다.

테이블 생성 시 기타 사항

CREATE TABLE 이후에 데이터의 형식, 테이블 저장 형식, 데이터 위치와 관련된 속성을 지정할 수 있다.

 

1)     ROW FORAMT DELIMITED FIELD TERMINATED BY character → character로 구분된 파일 (CSV, TSV)
         ROW FORAMT SERDE library → CSV, JSON, 정규표현식으로 구분된 파일

2)     STORED AS TEXTFILE

3)     LOCATION path

Apache HiveApache Impala의 호환성

기본적으로 Hive와 Imapala는 호환성이 좋다. 하지만 각각의 SQL 엔진에서만 지원하는 기능이 있으므로 유의해야 한다. 테이블에서 열을 제거하는 것은 Impala에서만 가능하다. 반면에 테이블에 있는 열의 순서를 변경하는 것은 Hive에서만 가능하다.

 

일반적으로 Hive는 SERDE를 통한 다양한 형식의 파일로부터 데이터를 읽어 들일 수 있다. 따라서 Hive를 통해 데이터를 읽어 들이고 Imapala로 분석하는 경우가 많다. 이는 Impala가 Hive보다 훨씬 빠른 속도로 데이터를 처리하기 때문이다.