Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- airflow
- 데브코스
- 운영체제
- S3
- 컴퓨터네트워크
- Django
- 정리
- PYTHON
- sql
- TCP
- redshift
- 데이터엔지니어링
- 데이터 파이프라인
- linux
- 컴퓨터 네트워크
- 데이터 엔지니어링
- airflow.cfg
- AWS
- Docker
- 파이썬
- 종류
- Go
- 자료구조
- 데이터 웨어하우스
- HADOOP
- 데이터베이스
- TIL
- http
- 가상환경
- dockerfile
Archives
- Today
- Total
홍카나의 공부방
[DE 개념 정리] 데이터 웨어하우스와 클라우드, AWS Redshift 본문
데이터 웨어하우스
- 여전히 SQL 기반 관계형 데이터베이스의 형태지만, 프로덕션 데이터베이스와 별도로 저장되는 DB다.
- 회사에 필요한 모든 데이터를 저장하는 DB다. (분석용으로 자주 쓰이는 DB인거지, 분석용 DB요! 라고 답변하면.. 망함)
- 보통 프로덕션 DB로 만들어놓은 MySQL을 복사하여 AWS Redshfit, BigQuery, Snowflake 등으로 별도 저장한다.
- 데이터 웨어하우스는 OLAP(Online Analytical Processing) 방법론을 이용하여 분석할 수 있다.
- 데이터 웨어하우스는 서비스 운영이 아닌 기업 내부의 팀을 위한 데이터 집계/분석/요약용 데이터베이스이므로, 처리속도가 아닌 처리 데이터의 크기가 더 중요해진다.
- 외부에 존재하는 데이터를 읽어다가 데이터 웨어하우스로 적재하는 프로세스를 데이터 파이프라인이라고 부르는데, 이에 대해서는 https://hongcana.tistory.com/81를 참고하면 도움을 받을 수 있다.
- https://hongcana.tistory.com/67에도 간단히 개념을 정리해 놨다.
Cloud Computing
- 클라우드는 컴퓨팅 자원(하드웨어, 소프트웨어 등)을 네트워크를 통해 서비스 형태로 사용하는 것이다.
- 초창기에는 서버 하드웨어만 빌려서 OS 깔고, MySQL 깔고 사용하는 것이었으나, 이미 십여 년 전부터 필요한 소프트웨어만 빌려서 사용한 만큼 돈을 지불하는 것이 일상이 되었다.
- 클라우드 컴퓨팅이 없었다면.. 서버 구매와 설치, 네트워크 설정, 스토리지 구매와 설정, Peak time을 기준으로 Capacity planning하여 직접 운용비용을 줄이는 과정... 이런 거를 다 해야 한다. 많은 시간과 자본이 드는 과정이다.
- 기회비용을 생각하면 클라우드를 사용하여 비용을 아끼는 것이 훨씬 효율적이다.
AWS
- AWS는 전 세계에서 가장 큰 클라우드 컴퓨팅 서비스 업체로, 2002년 아마존의 상품데이터를 API로 제공하면서 시작되었다.
- 대표적인 서비스로는 EC2로, 서버 호스팅 서비스다. 3가지 구매 옵션이 있는데, On-Demand로 시간당 비용을 지불하는 옵션, 1년이나 3년간 사용을 보장하고 할인을 받는 Reserved, 그리고 Spot Instance가 존재한다.
- 그리고 대용량 클라우드 스토리지 서비스인 S3도 있다. 인터넷 하드 디스크라고 생각하면 이해하기 쉽다. 계층적 구조를 제공한다.
- 그 외에도 다양한 데이터베이스들을 서비스 형태로 지원해 준다. RDS, Redshift 등이 존재한다.
- 딥러닝과 머신러닝 모델을 만들고, 모델의 테스트와 API 형태로 배포하는 것까지 자동화해주는 SageMaker, 챗봇 서비스인 Lex 등의 AI & ML 서비스들도 존재한다.
- 기타 중요 서비스로는 Lambda가 있다. 서버리스 컴퓨팅 엔진인데, 구글 클라우드에는 Cloud Function, Azure에는 Azure Function이라는 이름으로 서비스를 제공한다. API 로직만 구현하면 나머지는 Lambda에서 다 알아서 해주는 것.
AWS Redshift
- Redshift는 SQL 엔진이다.
- 이론적으로는 최대 2 PB까지 지원하며, 실제로 64TB부터는 약간 문제가 생긴다고 한다.
- OLAP 방식으로 만들어진 서비스이기 때문에 응답속도가 빠르지 않다. 따라서 MySQL처럼 프로덕션 데이터베이스(제품용 DB)로 사용하면 망한다.
- 디스크에 Column 기반의 블록으로 저장이 될 것이다. 컬럼 별로 압축이 가능하다.
- SQL의 INSERT 명령어를 사용하여 모든 데이터를 저장하기엔 시간이 오래 걸려서 바람직한 방법이 아니다.
- 따라서 레코드가 들어있는 파일을 S3로 복사하고, COPY 커맨드로 Redshift로 일괄 복사하는 벌크 업데이트를 사용한다. 이러면 백만 개의 레코드도 1분 안에 복사가 충분히 가능하다.
- 고정 비용 SQL 엔진이다. 이에 반해 snowflake나 big query는 가변 비용 SQL 엔진이다.
- 다른 데이터 웨어하우스처럼 Primary Key Uniqueness를 보장하지 않는다. 이게 보장되려면 레코드가 추가될 때마다 PK 값이 중복되는지 체크해야 하는데, MySQL은 이걸 보장하나 Redshift는 그렇지 않다.
- Redshift는 Postgresql 8.x의 모든 기능을 지원하지 않으나, 대부분 SQL이 호환된다.
- Redshift를 시작하고 난 뒤, 3개의 스키마를 만드는 방법을 선택할 수 있다.
CREATE SCHEMA raw_data;
CREATE SCHEMA analytics;
CREATE SCHEMA adhoc;
- 이처럼 외부에서 읽어온 데이터를 저장하는 raw_data, 로우 데이터를 비정규화하거나 변환해서 저장하는 analytics, 사용자가 실시간으로 원하는 조건에 맞게 에드혹 분석을 할 수 있게끔 만들어둔 adhoc을 둘 수 있다.
반응형
'Data Engineering' 카테고리의 다른 글
[DE 개념 정리] 데이터 파이프라인 개요, ETL과 ELT (0) | 2023.05.22 |
---|---|
CSV 파일을 데이터 웨어하우스(redshift)에 로드할 때 주의사항 (0) | 2023.05.14 |
REST API에서 데이터 추출하기 파이썬 예제 (1) | 2023.05.13 |
AWS RDS 설정 방법 + Troubleshooting (0) | 2023.05.02 |
[DE 개념 정리] 데이터 웨어하우스, 데이터 마트, 데이터 레이크 용어 간단 정리 (0) | 2023.04.23 |