일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- superset
- Kafka
- Snowflake
- 코테 연습
- 데이터 엔지니어
- django
- 데브코스
- Til
- Tableau
- Selenium
- SQL
- Spark
- airflow
- 코딩 테스트
- PCCP
- 데이터 시각화
- cloud platform
- 코딩테스트
- beuatifulsoup
- AWS
- HTML
- 슈퍼셋
- 팀 프로젝트
- Today
- Total
목록SQL (5)
주니어 데이터 엔지니어 우솨's 개발일지
WITH A AS(), B AS(),C AS(): A와 B와 C라는 임시 테이블을 생성ROW_NUMBER() OVER(PARTITION BY A): 윈도우 함수중 하나로 결과 집합의 행 일련번호를 매겨주는 함수 1부터 차례대로 넘버링 된다.ROW_NUMBER() OVER(PARTITION BY [그룹핑할 컬럼] ORDER BY [정렬할 컬럼]) FIRST_VALUE/LAST_VALUE함수: 처음값/마지막값을 리턴해주는 함수FIRST_VALUE(Column_Name) OVER (ORDER BY Col1, Col2, ...) 트랜잭션이란?: Atomic(동시에 성공하거나 동시에 실패해야 함)하게 실행되어야 하는 SQL들을 묶어서 하나의 작업처럼 처리하는 방법- DDL이나 DML중 레코드를 수정/추가/삭제한..
Join이란 ?SQL조인은 두개 혹은 그 이상의 테이블들을 공통 필드를 가지고 머지하는데 사용된다. 이는 스타스키마로 구성된 테이블들로 분산되어 있던 정보를 통합하는데 사용된다.왼쪽 테이블을 LEFT라고 하고 오른쪽 테이블을 RIGHT라고 하면 JOIN의 결과는 방식에 상고나없이 양쪽의 필드를 모두 가진 새로운 테이블을 만들어내게 된다. 조인의 방식에 따라 다음 두 가지가 달라진다1. 어떤 레코드들이 선택되는지?2. 어떤 필드들이 채워지는지? 조인의 종류Join시 고려해야 할점1. 먼저 중복 레코드가 없고 Primary Key의 uniqueness가 보장됨을 체크해야한다.2. 조인하는 테이블들간의 관계를 명확하게 정의해야한다.3. 어느 테이블을 베이스로 잡을지 결정해야한다.(From에 사용할지)BOOLE..
데이터 품질 확인방법1. 중복된 레코드들 체크2. 최근 데이터의 존재여부 체크(freshness)3. Primary key uniqueness가 지켜지는지 체크4. 값이 비어있는 컬럼들이 있는지 체크CTAS : SELECT를 가지고 테이블을 생성- adhoc위에서 write가능DROP TABLE IF EXISTS adhoc.suha_session_summary;CREATE TABLE adhoc.suha_session_summary ASSELECT B.*, A.ts FROM raw_data.session_timestamp AJOIN raw_data.user_session_channel B ON A.sessionid = B.sessionid;1. 중복체크 SELECT COUNT(1) FROM adhoc.su..
SQL의 기본다수의 SQL문을 실행시 세미콜론(;)으로 분리가 필요SQL주석-- : 인라인 한줄짜리 주석, 자바에서 //에 해당/*--*/ : 여러 줄에 걸쳐 사용 가능한 주석팀 작업시 테이블/필드이름의 명명규칙을 정하는 것이 중요_ vs CamelCasingex) user_session_channel vs UserSessionChannelSQLDDL - 테이블 구조 정의언어CREATE TABLE : 테이블 생성- CTAS : CREATE TABLE table_name AS SELECT (create table과 insert into를 같이 사용)- DROP TABLE : 없는 테이블을 삭제하려할 시 에러가남 - 테이블자체를 삭제함- DROP TABLE IF EXISTS table_name; : 테이블이..
관계형 데이터베이스구조화된 데이터를 저장하고 질의할 수 있도록 해주는 스토리지- 엑셀 스프레드시트 형태의 테이블로 데이터를 정의하고 저장- 컬럼(열)과 레코드(행)이 존재대표적인 관계형 데이터베이스프로덕션 데이터베이스: MySQL, PostgreSQL, Oracle 등- OLTP(OnLine Transaction Processing)- 빠른 속도에 집중, 서비스에 필요한 정보 저장데이터 웨어하우스: Redshift, Snowflake, BigQuery, Hive 등- OLAP(Online Analytical Processing)- 처리 데이터 크기에 집중, 데이터 분석 혹은 모델 빌딩 등을 위한 데이터를 저장- 보통 프로덕션 데이터베이스를 복사해서 데이터 웨어하우스에 저장- 내부 직원을 위한 데이터베이스..