DA 18

Snowflake 운영과 관리

목표: Snowflake Role로 권한 설정 해보고 Snowflake가 제공해주는 보안 관련 기능 알아보기 Redshift는 snowflake보다 오래된 기술이라 안전성이 높지만 트렌드를 따라가지 못하는 단점이 있음. Snowflake는 Group을 지원하지 않음. Redshift는 사용자 그룹 지원, 그 위에 Role 추가. Group과 Role은 흡사하지만 Role은 계승구조 지원. 가장 Base line이 되는 권한 생성하면 그 위에 새로운 Role 만들 수 있음. => 관리가 쉽고 반복을 안해도 되는 장점 Role과 User 생성 --Role과 User 생성 --3개의 Role 생성. 아직 누구에게도 부여하지 않음. CREATE ROLE analytics_users; CREATE ROLE ana..

DA 2024.01.30

KPI란? | Metrics vs. KPI | 좋은 지표의 기준 - 3A, SMART

지표 (KPI)는 왜 필요할까? 목표 설정과 집중이 조직 측면에서 가능해짐 성과 측정이 수치로 가능해짐 ex. 매출증대(x) 매출 200억 달성(o) 조직 하지만 숫자에 집착하면 능력치보다 낮은 목표를 설정하게 될 수 있음 주의! 의사결정에 도움이 됨 - 어떤 방향으로 움직이면 목표 = KPI 에 도달할 수 있을까 동기 부여 및 책임감 우선 순위 설정 -> 리소스 할당 (어떤 일에 시간과 비용을 얼마나 투입할 것인지) 커뮤니케이션 (공동의 목표를 달성) 추상적인 목표를 가시적이고 측정 가능한 목표로 전환 조직이 진행 상황을 추적하여 정보에 입각한 의사 결정이 가능 KPI (Key Performance Indicator)란? 조직내에서 달성하고자 하는 중요한 목표 정량적인 숫자 선호 ex. 매출액 혹은 유..

DA 2024.01.26

Snowflake 실습 - AWS S3에 Bucket, IAM 생성 | Snowflake에서 DB, Schema, Table 생성 | COPY 하기

실습목표 Snowflake에 DW 생성, 클라우드 환경에서 데이터 불러와서 간단한 ELT 해보기 실습 진행 방식 1. Snowflake에 Warehouse, DB , Schema, Table 생성 -> 데이터 적재 raw_data : ETL이 불러온 데이터 저장 analytics: DW에 존재하는 테이블 바탕으로 새로운 테이블 생성 -> ELT adhoc: 개발용, 테스트 용으로 만드는 테이블 저장 2. COPY를 위한 IAM 사용자, Bucket 생성하기 3. 클라우드에 저장되어 있는 데이터 불러오기 -> COPY 4. ELT Snowflake의 COPY '파일 통으로 적재 -> 클라우드 스토리지에 저장 (ex.S3) -> 목적 테이블로 벌크업하기 ' 레코드들을 하나씩 적재하지 않고 벌크로 레코드들이 ..

DA 2024.01.26

ETL 실습: Redshift에 연동하고, ETL에 필요한 함수 정의해 테이블에 적재하기 feat.transaction

1. 구글 코랩으로 Redshift 연동하기 ID/PW 입력하고 접속할 DB정보 입력 import psycopg2 # Redshift connection 함수 # 본인 ID/PW 사용! def get_Redshift_connection(): host = "" redshift_user = "" redshift_pass = "" port = 5439 dbname = "dev" conn = psycopg2.connect("dbname={dbname} user={user} host={host} password={password} port={port}".format( dbname=dbname, user=redshift_user, password=redshift_pass, host=host, port=port ))..

DA 2024.01.25

Snowflake소개 및 특징

Snowflake 소개 2014년 클라우드 기반 데이터웨어하우스로 시작됨 현재는데이터 클라우드라고 부를 정도로 발전 글로벌 클라우드위에서 모두 동작 데이터 판매를 통한 매출을 가능하게 해주는 Data Sharing/Marketplace 제공 ETL과 다양한 데이터 통합 기능 제공 Snowflake 특징 특징 1. 스토리지와 컴퓨팅 인프라가 별도로 설정되는 가변 비용 모델 - Redshift 고정비용처럼 노드 수를 조정할 필요가 없고 distkey등의 최적화 불필요 SQL 기반으로 빅데이터 저장, 처리, 분석을 가능하게 해줌 - 비구조화된 데이터 처리와 머신러닝 기능도 제공 배치 데이터 중심이지만 실시간 데이터 처리 지원 TIme Travel: 과거 데이터 쿼리 기능으로 트렌드를 분석하기 쉽게 해줌 특징2..

DA 2024.01.23

데이퍼 파이프라인이란 | 데이터 파이프 라인 만들 때 고려할 점

데이터 파이프라인이란? ETL (Extract, Transform, Load) = 데이터 파이프 라인 = 데이터 워크플로우 = DAG Airflow에서는 DAG(Directed Acyclic Graph) 라고 부름 DAG: a -> b, c -> d 형태로 싸이클이 아닌 d가 끝나면 실행 끝! 다시 a로 돌아가는 것이 아님 데이터 소스 -> ETL -> 데이터 레이크 or 데이터 웨어하우스 -> 테이블 형태로 적재 데이터 파이프라인 정의 데이터를 소스로부터 목적지로 복사하는 작업 - 목적지: 데이터 웨어하우스, 데이터 양이 적을 경우 데이터 레이크 (스토리지) ex. 데이터 웨어하우스, 캐시 시스템 (Redis, Memcache), 프로덕션 데이터베이스, NoSQL ... - 데이터 소스의 예 : 프로덕..

DA 2024.01.23

데이터레이크|데이터웨어하우스|Airflow|ETL,ELT

데이터 웨어하우스의 클라우드 옵션 데이터 웨어하우스가 작을 때는 MySQL 을 사용해도 좋지만, 대용량일 경우 클라우드를 사용하는 것이 좋음 - 고정비용 옵션 매달 정해진 비용 지불. 비용 관리 측면에선 장점. ex. Redshift (Redshift 서버리스는 가변 비용 옵션) - 가변비용 옵션 사용한 만큼 비용 지불. 효율적이라는 것이 장점. 비용 예측이 어려움 ex. BigQuery , Snowflake 가변비용 옵션이 처리할 수 있는 데이터 크기가 고정비용 옵션보다 큼. 스토리지와 컴퓨팅 부분이 분리되어 있음. 따라서 더 효율적인 처리가 가능함 고정비용 옵션은 스토리지를 늘리려면 컴퓨팅 부분(CPU 등)을 같이 늘려야 함 Data Lake - 스토리지에 가까운 개념으로 데이터 웨어하우스 보다 비용..

DA 2024.01.22

[TIL] INNER JOIN | LEFT, RIGHT JOIN | Subquery

JOIN이란 ? 두 개 이상의 테이블을 특정 key를 기준으로 결합하는 것 *테이블을 쪼개 놓는 이유 각 테이블을 효율적으로 관리 가능. 테이블끼리 JOIN을 통해 더 많은 활용 가능. 변경할 사항이 생길때 수정을 최소화할 수 있음. INNER JOIN 두 테이블에서 값이 일치하는 행만 출력. 교집합을 구하면서 제외되는 행이 생기기때문에 실행시간이 줄어듦. 데이터 정확성이 높음. SELECT 테이블.col, 테이블2.col FROM 테이블1 INNER JOIN 테이블2 ON 테이블1.col = 테이블2.col 예제) clicks 테이블에 적재된 clicks수 중에 실제 구매로 이어진 클릭 찾아보기 ordered 가 1값인 컬럼추가. clicks와 orders 테이블에서 user name, product_..

DA 2023.12.05

[TIL] SQL - DDL과 DML

DDL (Data Definition Language) 데이터베이스 구조를 정의하고 관리 * 테이블: 행과 열로 구성, 테이블마다 이름 지정 *뷰: 가상의 테이블, 기존 테이블의 일부분만 보여주거나, 결합해서 보여줄때 사용 CREATE : 테이블 /뷰/ 인덱스 생성 ALTER : 테이블/뷰/인덱스 구조 변경 DROP: 테이블/뷰/인덱스 삭제 DML (Data Manipulation Language) 데이터를 쿼리하거나 조작 SELECT : 질의 INSERT : 삽입 UPDATE : 수정 DELETE : 삭제 CREATE 테이블 생성 CREATE TABLE IF NOT ECISTS '테이블명' (컬럼명 및 컬럼 조건) int unsigned : 음수를 사용하지 않겠다는 의미로 음수를 저장할 공간만큼 양수 ..

DA 2023.12.05

[TIL]SQL ORDER BY| GROUP BY |DESC, ASC | HAVING | COUNT

ORDER BY 순서 정렬 price 로 내림차순 정렬후 같은 값이 있으면 name 오름차순으로 정렬. price =1, name = 2 위의 예제와 같은 결과 값 출력 3 = name name 내림차순 정렬 후 (가나다 역순), 같은 값은 category 오름차순 정렬 가격 순으로 오름차순 정렬 후 가격이 같으면 category 내림차순 정렬 Price 오름차순 정렬 후 상위 3개 출력 = 가격이 낮은 3개 출력 집계 함수 SELECT뒤에 집계함수 사용. 여러 행으로부터 하나의 결과 값을 반환하는 함수 ex. 평균, 최대, 최소, 합 product_v2에 해당하는 - price 행의 합을 구하고 sum_price 컬럼명으로 결과 값 반환 - price 행의 평균 값을 구하고 avg_price 컬럼명으로..

DA 2023.12.04