전체 글 373

5주차 - 3 [데이터 웨어하우스]

GROUP BY & Aggregate 1. 먼저 그룹핑 할 필드를 결정한다. (GROUP BY) 2. 그룹별로 계산할 내용을 결정한다. (Aggregate) CTAS & CTE CTAS는 SELECT를 사용해 테이블을 생성한다. 앞으로 자주 사용할 join등의 테이블을 미리 만들어 편리하게 재사용할 수 있다. CTE는 FROM 안에 SELECT 쿼리를 nesting해주는 대신 With (테이블명) AS로 앞으로 자주 사용할 테이블을 임시로 만들어줄 수 있다. 반드시 체크해야할 데이터 품질 확인 방법들 1. 중복된 레코드들 체크하기 2. 최근 데이터의 존재 여부 체크하기 3. Primary key uniqueness가 지켜지는지 체크하기 4. 값이 비어있는 컬럼들이 있는지 체크하기 GROUP BY & Ag..

데브코스 TIL 2023.11.15

Redshift - CTAS & CTE, 테이블(데이터) 품질 확인 방법

CTAS: SELECT를 가지고 테이블을 생성 데이터 분석을 함에 있어서 많이 사용되는 테이블(예를 들면 join된 테이블)을 미리 만들어 둘 때 흔히 사용됩니다. DROP TABLE IF EXISTS adhoc.keeyong_session_summary; CREATE TABLE adhoc.keeyong_session_summary AS SELECT B.*, A.ts FROM raw_data.session_timestamp A JOIN raw_data.user_session_channel B ON A.sessionid = B.sessionid; Redshift는 스키마로 raw_data, analytics, adhoc 세 가지 폴더(DB)로 나뉜다고 했습니다. 그리고 각 폴더에 테이블들을 생성해 사용합니..

SQL 2023.11.15

Redshift - GROUP BY & Aggregate 함수

GROUP BY & Aggregate 테이블의 레코드들을 필드를 중심으로 그룹화해 그룹별로 다양한 정보를 계산합니다. 크게 두 단계로 이루어집니다. 1. 먼저 그룹핑을 할 필드를 결정합니다. 이때 그룹핑할 필드는 2개 이상이 될 수 있습니다. 그리고 GROUP BY로 그룹핑할 필드(들)의 이름을 사용하거나 필드 일련번호를 사용합니다. (여기서 일련번호란 "ordinal numbering" 또는 "ordinal position"를 말합니다.) 2. 그룹별로 계산할 내용을 결정합니다. 이 단계에서 Aggregate함수를 사용합니다. COUNT, SUM, AVG, MIN, MAX, LISTAGG 등이 있습니다. 이 때 이런 함수들을 사용하면 결과가 곧 새로운 필드가 되기 때문에 보통은 이때 alias(as)를..

SQL 2023.11.15

5주차 - 2 [데이터 웨어하우스]

1. 강의에서 알려주는 Redshift 설치 방법이 현재시점에서는 맞지 않아 조금 시행착오가 있었다. 2. 특히나 AWS는 자그마한 실수 몇번에 큰 비용이 동반되기 때문에 확인에 확인을 거듭하느라 진을 뺐다. 3. 거기에 더해 강의 커리큘럼에서 공유된 Colab 셀 내용으로는 Redshift에 연결이 불가능해 실습을 하지 못했다.. 4. 그나마 다행인 것은 Redshift 역시 구조화된 데이터를 다루기 때문에 SQL을 사용하고 기존의 프로덕션 데이터베이스와 쿼리문이 거의 동일하다는 점?.. Redshift Cluster 생성과 Google Colab에 연결하기 Redshift의 SELECT에 대해

데브코스 TIL 2023.11.14

Redshift SELECT

실습에 사용할 테이블에 대한 설명 ◆ 관계형 데이터베이스 예제 - 웹서비스 사용자/세션 정보 (1) ❖ 사용자 ID: 보통 웹서비스에서는 등록된 사용자마다 부여하는 유일한 ID ❖ 세션 ID: 세션마다 부여되는 ID ● 세션: 사용자의 방문을 논리적인 단위로 나눈 것 ▪ 사용자가 외부 링크(보통 광고)를 타고 오거나 직접 방문해서 올 경우 세션을 생성 ▪ 사용자가 방문 후 30분간 interaction이 없다가 뭔가를 하는 경우 새로 세션을 생성 ● 즉 하나의 사용자는 여러 개의 세션을 가질 수 있음 ● 보통 세션의 경우 세션을 만들어낸 접점(경유지)를 채널이란 이름으로 기록해둠 ▪ 마케팅 관련 기여도 분석을 위함 ● 또한 세션이 생긴 시간도 기록 ◆ 관계형 데이터베이스 예제 - 웹서비스 사용자/세션 정..

SQL 2023.11.14

Redshift Cluster 생성 & Colab에 연결

클러스터 생성 AWS의 신규회원으로 가입해 $300의 무료 크레딧을 받을 수 있는 사용자를 기준으로 설명합니다. 먼저 AWS에 회원가입을 진행합니다. 우측 상단에서 사용할 서버의 지역을 선택할 수 있습니다. 미국이 오리곤이 저렴하다고 하지만 저는 최대한 강의 내용을 따라가기 위해 서울로 선택했습니다. 그리고 서비스 검색에서 Redshift를 검색해 선택합니다. 네임스페이스, IAM 그 어떤 것도 손대지 않고 초기 선택된 디폴트 옵션으로 Serverless 클러스터를 생성했습니다. 이제 콘솔 홈에서 생성한 클러스터를 방문하여 무료 평가판의 크레딧이 얼마나 남았고 언제 만료되는지 확인할 수 있습니다. Google Colab 연동 Serverless 대시보드에서 작업 그룹을 클릭합니다. 편집을 눌러 퍼블릭 액..

SQL 2023.11.14

Redshift: Scalable SQL 엔진

Redshift: Scalable SQL 엔진 Amazon Redshift는 Amazon Web Services(AWS)에서 제공하는 완전 관리형, 페타바이트 규모의 데이터 웨어하우스 서비스입니다. Redshift 역시 SQL입니다. Redshift의 특징 (1) 2 PB까지 지원 문제는 2페타바이트에 가까워질수록 성능상에 문제가 발생합니다. 이론상 최대 용량이라고 생각하시는게 좋습니다. Still OLAP 데이터 웨어하우스가 그렇듯 응답속도가 아닌 데이터 크기에 집중했으므로 프로덕션 데이터베이스로는 사용 X Columnar storate 기존의 프로덕션 데이터베이스는 행별로 데이터가 추가되었습니다. 반면에 Redshift는 컬럼별 압축이 가능합니다. 덕분에 컬럼을 추가, 삭제와 쿼리 실행이 아주 빠르며..

SQL 2023.11.12

클라우드와 AWS

클라우드 쉽게 말하면 아마존, 마이크로소프트, 구글과 같은 다른 업체가 이미 준비해둔 컴퓨터를 네트워크(인터넷 등)를 이용해 언제 어디서나 사용할 수 있는 서비스입니다. 클라우드의 키워드는 2가지가 있습니다. "No Provisioning" 준비할 필요 없다. "Pay As You Go" 사용한 만큼만 지불하라 덕분에 클라우드 클라이언트는 서버를 직접 구매 및 구축할 필요가 없고 트래픽량에 따른 컴퓨터 리소스를 유연하게 조절할 수 있습니다. AWS 트래픽이 가장 치솟는 블랙 프라이데이, 사이버 먼데이 기준으로 구축한 서버가 평시에 놀게 두지 않고 필요한 개발자에게 임대 제공하기 시작했던 것이 시초입니다. AWS는 Amazon Web Services의 약자로, 아마존닷컴이 제공하는 클라우드 컴퓨팅 서비스 ..

SQL 2023.11.12

데이터 웨어하우스

데이터 웨어하우스 데이터 웨어하우스: 회사에 필요한 모든 데이터를 저장 여전히 SQL 기반의 관계형 데이터베이스 프로덕션 데이터베이스와는 별도이어야 함 그래서 회사에 존재하는 모든 데이터를 데이터 웨어하우스에 복사해두고 사용합니다. 서비스 개발자들이 사용하는 프로덕션 데이터베이스와 분리되어있기 때문에 서비스에 지장이 없습니다. OLAP (OnLine Analytical Processing) vs. OLTP (OnLine Transaction Processing) AWS의 Redshift, Google Cloud의 Big Query, Snowflake 등이 대표적 고정비용 옵션 vs. 가변비용 옵션 데이터 웨어하우스는 고객이 아닌 내부 직원을 위한 데이터베이스 처리속도가 아닌 처리 데이터의 크기가 더 중요..

SQL 2023.11.12