본문 바로가기
Data Science

[SQL] 데이터 웨어하우스, ETL, 데이터 파이프라인 w. redshift 가격

by Lora Baek 2023. 5. 29.
300x250

지난 게시글을 보고 오시면 좀 더 빠른 이해가 가능합니다! : [SQL] 관계형 데이터베이스, SQL이란? w.스타 스키마 구조

 

[SQL] 관계형 데이터베이스, SQL이란? w.스타 스키마 구조

현재 프로그래머스 AI 데브코스를 수강하면서 조금씩 내용을 노션에 정리해오고 있었는데, 강의 자료 자체가 아닌 해당 내용을 바탕으로 내가 공부한 내용은 저작권에 문제가 되지 않는다는 답

for-data-science.tistory.com

데이터 웨어하우스

- SQL 기반의 관계형 데이터베이스

- 회사에 필요한 모든 데이터를 저장하되, 프로덕션 데이터베이스의 복사본이지만 별도여야 함.

AWS의 Redshift : 고정비용 옵션, 한 달에 정해진 비용

Googld cloud의 BigQuery, Snowflake : 가변비용 옵션

 

처음 시작할 때는 주로 BigQuery, Snowflake 사용하는 것이 좋다. Redshift와 큰 차이는 없다.

데이터 웨어하우스는 '고객이 아닌 내부 데이터 팀원을 위한' 데이터베이스이므로, 처리속도보다는 처리 데이터의 크기가 더 중요하다.

 

ETL(Extract, Transform, Load) or 데이터 파이프라인

외부(프로덕션 데이터베이스 등)에 존재하는 데이터를 읽어서,

데이터 웨어하우스의 테이블로 저장하는 프로세스.

 

데이터 인프라

데이터 엔지니어가 관리하는 것으로, ETL과 데이터 웨어하우스가 포함되는 개념.

여기서 더 발전하면 Spark 같은 대용량 분산처리 시스템이 일부로 추가된다.

1. 내부, 외부에 다양한 트래픽이 있고,

2. 중앙에 한군데에 저장된 데이터를 가지고, 데이터 인프라를 만들고.

3. 그 summary 자료를 만든 다음에 시각화, 지표 정의 등 다양한 데이터 분석.

4. 데이터 과학자들이 머신러닝, 딥러닝의 형태로 추천개인화, 랭킹, 최적화 등 회사 프로세스 발전..

 

Redshift란?

현재 아마존 AWS에서 다양한 클라우드 컴퓨팅 서비스를 제공하고 있는데, 데이터베이스 서비스도 그 중 하나다.

MySQL, PostgreSQL, Aurora 등 프로덕션 관계형DB도 RDS(Relational Database Service)서비스 형태로 지원하며,ㅌ

데이터웨어하우스인 Redshift도 지원하고 있다.

 

Redshift란 한 마디로 SQL 기반의 데이터베이스이다.

Scalable SQL 엔진. 2PB까지 지원은 하지만 64TB까지가 안정적이라고 한다.

Still OLAP = 응답속도가 빠르지 않으므로 프로덕션 데이터베이스로 사용하면 안 된다!

Columnar storage = 레코드별로 저장하는게 아니라, 컬럼별로 저장하므로 컬럼 추가/삭제하는 게 아주 빠르다.

 

벌크 업데이트 지원

INSERT statement로 동시에 추가할 수 있는 데이터 수가 제한되어 있다.

그래서 레코드가 든 파일을 Web storage(AWS는 S3)로 복사한 후, COPY 커맨드로 Redshift로 일괄 복사한다.

 

고정 용량/비용 SQL 엔진.

장점 : 비용관리 측면에서 매달 얼마일지 예상이 된다.

단점 : 사용 안해도 동일함. 그래서 snowflake, bigquery가 리스크 관리만 잘 한다면 좋은 옵션이 된다.

primary key uniqueness를 보장하지 않음 = 각 테이블마다 primary key로 사용할 필드에 그 값이 유일하게 존재하는지 체크해야 하는데, 레코드가 추가될때마다 하나하나 체크해야 하는데 이건 속도가 너무 오래 걸린다.

그래서 테이블 정의할 때 어떤 필드를 primary key로 설정해도 중복으로 들어감.

개발자, 데이터 엔지니어들이 보장해주어야 하는 부분. 꼭 기억해두자.

 

Redshift는 PostgreSQL 8.x와 SQL이 호환된다.

모든 기능을 지원하지는 않지만,PostgreSQL 8.x를 지원하는 툴이나 라이브러리로 액세스 가능하다.

Redshift는 빅데이터 웨어하우스 엔진이지만, SQL이 메인언어니까 구조화된 데이터여야 한다는 점! 그러니 테이블 디자인이 아주 중요하다는 점을 명심하자.

 

Redshift 옵션과 가격

storage에 focus하거나, 연산이 중요하거나, 둘 다 잡기 위해 비용을 많이 내거나..

서울 기준의 옵션을 아래에서 조회해보았다. 연습을 할 때는 가장 저렴한 dc2.large 옵션이 좋다.

 

Redshift Schema(폴더) 구성 예시

raw_data / analytics / adhoc이라는 세가지 스키마를 만들어보자.(admin 권한이 있는 사람만 사용 가능).

CREATE SCHEMA raw_data; (ETL 구현해서 읽어온 곳, 데이터 엔지니어용)

CREATE SCHEMA analytics; (데이터 분석가용)

CREATE SCHEMA adhoc; (데이터분석하고 테스트, 개발해야 할 때)

 

Redshift 액세스

Google colab을 사용해서 접근 가능하다.

Postgresql 8.x와 호환되는 모든 툴, 프로그래밍 언어로 접근 가능

- SQL workbench(Mac, Window), Postico(Mac)

- Python psycopg2 모듈

- Looker, Tableau, PowerBI, Superset 등의 시각화/대시보드 툴

 

 

댓글