View 자주 사용하는 SQL 쿼리(SELECT)를 가상의 테이블처럼 만들고, 쉽게 사용할 수 있게 하는 것이다. SELECT 결과가 테이블로 저장되는 것이 아니라 View가 사용될 때마다 해당 SELECT 쿼리가 실행된다. MySQL 서버단에 저장된다. CREATE OR REPLACE VIEW 뷰이름 AS SELECT .. SELECT .. FROM session s JOIN channel c ON c.id = s.channel_id; -- 위의 쿼리를 뷰로 만든 SQL문 CREATE OR REPLACE VIEW session_detials AS SELECT .. FROM sessino s JOIN channel c ON c.id = s.channel_id;
DDL CREATE TABLE Primary key 속성 지정을 통해 유일키 보장을 설정할 수 있다. 성능 향상을 위해 인덱스를 지정할 수 있다. CREATE TABLE raw_data.user_session_channel ( user_id int, session_id varchar(32) primary key, channel varchar(32) ); DROP TABLE DROP TABLE 테이블이름; 없는 테이블을 지우려고 하는 경우 에러를 낸다. 따라서 DROP TABLE IF EXISTS table_name; 을 사용할 수 있다. ALTER TABLE 새로운 컬럼 추가 ALTER TABLE 테이블이름 ADD COLUMN 필드이름 필드타입; 기존 컬럼 이름 변경 ALTER TABLE 테이블이름 RE..
SQL (Structured Query Language) DDL (Data Definition Language): 테이블의 구조를 정의한다. DML (Data Manipulation Language): 테이블에서 검색/추가/삭제/갱신을 하는데 사용하는 언어이다. 모든 대용량 데이터 웨어하우스는 SQL기반이다. Redshift, Snowflake, BigQuery, Hive Spark(SparkSQL), Hadoop(Hive): SQL 언어 지원 단점 구조화된 데이터를 다루는데 최적화가 되어있다. 정규표현식을 통해 비구조화된 데이터를 어느 정도 다루는 것은 가능하나 제약이 심하다. 대부분의 관계형 데이터베이스들은 JSON같이 nested형은 지원하지 않는다. BigQuery는 nested structure..