관계형 데이터베이스
세션
-
사용자ID: 사용자마다 가지고 있는 고유ID
-
세션ID: 사용자의 활동을 tracking 하는 ID
- 세션: 사용자의 방문을 논리적 단위, 사용자가 외부 링크를 타고 오거나 혹은 time session을 두고 뭔가를 하면
- 여러 개의 세션을 가짐
- 채널 이름과 시간 기록한다(마케팅 용도)
-
데이터 분석과 지표 설정
- 마케팅 관련, 사용자 트래픽
- DAU, WAU, MAU
- Marketing Channel Attribution 분석
-
First Channel, Last Channel, Multi Channel
DDL, DML
SQL 기본
- 세미콜론으로 분리 필요
- 팀 프로젝트라면 공통 포맷 필요
- 테이블명: 단수형 VS 복수형
- underbar vs camelcase
DDL - 테이블 구조 정의 언어
- CREATE TABLE
- primary key는 지정 가능하나, 빅데이터 데이터 웨어하우스에선 지켜지지 않음(Redshift, Snowflake...)
- record가 대량으로 추가될 때, primary key를 보장해주기 위해 check해야함. 성능 이슈.
- CTAS: Create Table table_name AS SELECT
- vs. CREATE TABLE and then INSERT
CREATE TABLE raw_data.user_session_channel (
userid int,
sessionid varchar(32) primary key,
channel varchar(32)
)
- DROP TABLE
- DROP TABLE IF EXISTS table_name;
- vs. DELETE FROM(조건에 맞는 레코드들을 지움)
- ALTER TABLE
- 컬럼 추가, 컬럼 이름 변경, 컬럼 제거, 테이블 이름 변경
ALTER TABLE 테이블이름 ADD COLUMN 필드이름 필드타입
ALTER TABLE 테이블이름 RENAME 현재 필드이름 TO 새 필드 이름
ALTER TABLE 테이블이름 DROP COLUMN 필드이름
ALTER TABLE 현재 테이블이름 RENAME TO 새 테이블 이름
DML - 테이블 데이터 조작 언어
- SELECT: 레코드 질의 언어
- INSERT INTO, UDATE FROM, DELETE FROM