일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- KDT_TIL
- CI/CD
- spark executor memory
- Dag
- Spark
- backfill
- Salting
- Spark Partitioning
- AQE
- Spark Caching
- Spark SQL
- Airflow
- mysql
- aws
- colab
- 데이터 파이프라인
- DataFrame Hint
- k8s
- Spark 실습
- SQL
- etl
- Kubernetes
- Docker
- Speculative Execution
- redshift
- Kafka
- 빅데이터
- disk spill
- topic
- off heap memory
- Today
- Total
목록SQL (6)
JUST DO IT!
📚 KDT WEEK 10 DAY 4 TIL Primary Key Uniqueness 보장하기 🟥 Primary Key Uniqueness 보장하기 PK : 테이블에서 하나의 레코드를 유일하게 지칭할 수 있는 필드(들) 관계형 데이터베이스 시스템이 Primary key의 값이 중복 존재하는 것을 막아준다. 빅데이터 기반 데이터 웨어하우스들은 Primary key Uniqueness를 보장하지 않으므로 엔지니어가 보장해야함 날씨 데이터 API(https://openweathermap.org/api)를 가져오는 과정에서 PK Uniquness를 보장해보려고 한다. SQL 문법을 사용해서 Upsert(데이터가 있는 경우 새로 업데이트)방식을 사용할 것이다. 참고로 적재 대상 DB인 Redshift에서는 Upse..
📚 KDT WEEK 6 DAY 5 TIL Transaction Python에서 트랜잭션 사용하기 유용한 SQL 문법 🟥 Transaction Atomic하게 실행되어야 하는 SQL들을 묶어서 하나의 작업처럼 처리하는 방법 DDL 또는 DML 중 레코드를 수정, 추가, 삭제한 것에만 의미가 있음 SELECT에는 트랜잭션 불가 BEGIN ~ END or BEGIN ~ COMMIT 사이에 쿼리문 작성 Atomic : 트랙잭션의 과정이 모두 성공되거나 모두 실패되어야함 ROLLBACK : 이전 상태로 돌아감 ex) 은행의 계좌 인출과 입금이 묶여서 실행되어야 하므로 트랙잭션이 필요함 BEGIN; A의 계좌로부터 인출; B의 계좌로 입금; END; -- COMMIT과 동일 계좌 인출과 입금이 마치 하나의 명령어처..
📚 KDT WEEK 6 DAY 4 TIL JOIN 숙제 %%sql SELECT LEFT(ts.ts, 7) as month, ch.channel, COUNT(DISTINCT ch.userid) as uniqueUsers, COUNT(DISTINCT CASE WHEN trans.amount > 0 THEN ch.userid END) as paidUsers, ROUND(paidUsers*100.0 / NULLIF(uniqueUsers,0), 2) as conversionRate, SUM(CASE WHEN trans.refunded is not NULL THEN trans.amount END) as grossRevenue, SUM(CASE WHEN trans.refunded is False THEN trans...
📚 KDT WEEK 6 DAY 3 TIL GROUP BY CTAS 🟥 GROUP BY & Aggregate 테이블의 레코드를 그룹핑(GROUP BY)하여 그룹별로 다양한 정보를 계산(Aggregate)한다 그룹핑할 하나 이상의 필드를 결정한다. 그룹별로 계산할 내용을 결정하고 함수를 사용 COUNT, SUM, AVG, MIN, MAX, LISTAGG... 예시 1) SELECT LEFT(ts,7) AS mon, COUNT(1) AS session_count FROM raw_data.session_timestamp GROUP BY 1 -- GROUP BY mon, GROUP BY LEFT(ts,7) ORDER BY 1; raw_data.session_timestamp 테이블에서 월별 총 세션 수를 구하는 ..
📚 KDT WEEK 6 DAY 2 TIL Redshift 생성 웹 서비스에서 사용자와 세션 정보 데이터 품질 체크 🟥 Redshift Cluster 만들어보기 https://aws.amazon.com/ko/ 클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services aws.amazon.com Redshift는 아마존에서 제공하는 데이터 웨어하우스 서비스이다. 위 aws 사이트에서 계정을 생성하고, redshift를 검색하여 해당 서비스를 이용할 수 있다. aws 계정 생성에는 최초 카드 등록이 필요했고, 100원을 이체했다가 다시 돌려준다. 내가 만들 Redshift 클러스터는 무료 버전이 존재하지만 시험삼아서 유료 버전을 만들어 보기로 한다. 로그인후, aws redshift 화면..
📚 KDT WEEK 6 DAY 1 TIL 관계형 데이터베이스 SQL 클라우드 Redshift 🟥 관계형 데이터베이스 구조화된 데이터를 저장하고 질의할 수 있도록 해주는 스토리지 ex) 엑셀 스프레드시트 형태의 테이블로 데이터를 열과 행으로 저장 데이터베이스(혹은 스키마)라는 폴더 밑으로 테이블이 존재하는 2단계로 구성되어 있다. 대표적인 관계형 데이터베이스 1. 프로덕션 데이터베이스 - OLTP(Online Transaction Processiong) MySQL, PostgreSQL, Oracle... 빠른 속도에 중점을 두는 데이터베이스 웹이나 모바일 앱 등에 바로 연동이 되어 해당 서비스에 필요한 정보를 저장하거나 읽어오는데 사용한다. Star schema 데이터를 논리적 단위로 나누어 저장하고 필요..