학습주제
- SQL의 중요성
- 관계형 데이터베이스란?
- 데이터 웨어하우스란?
- Cloud와 AWS
- Redshift
주요 메모 사항 소개
- 관계형 데이터베이스
- 구조화된 데이터를 저장하고 질의할 수 있도록 해주는 스토리지
- 엑셀 스프레드시트 형태의 테이블로 데이터를 정의하고 저장 - 관계형 데이터베이스를 조작하는 프로그래밍 언어가 SQL
- 테이블 정의 DDL (Data Definition Language)
- 테이블 데이터 조작 / 질의 DML(Data Manipulation Language)
- 구조화된 데이터를 저장하고 질의할 수 있도록 해주는 스토리지
- 대표적 관계형 데이터베이스
- 프로덕션 데이터베이스 : MySQL, PostgreSQL, Oracle, ...
- OLTP (OnLine Transaction Processing)
- 빠른 속도에 집중, 서비스에 필요한 정보 저장 - 데이터 웨어하우스 : Redshift, Snowflake, BigQuery, Hive, ...
- OLAP (OnLine Analytical Processing)
- 처리 데이터 크기에 집중, 데이터 분석 혹은 모델 빌딩등을 위한 데이터 저장
- 프로덕션 데이터베이스 : MySQL, PostgreSQL, Oracle, ...
관계형 데이터베이스의 구조
DataBase (엑셀 파일)
↑
Tables (엑셀 시트)
-
- 테이블의 구조
- 테이블은 레코드 들로 구성 (행)
- 레코드는 하나 이상의 필드(컬럼)로 구성 (열)
- 필드(컬럼)는 이름과 타입과 속성(Primary Key)으로 구성된다.테이블 스키마 예시 테이블 레코드 예시
- 테이블의 구조
- SQL 소개
- SQL : Structured Query Language
- 관계형 데이터베이스에 있는 데이터(테이블)를 질의하거나 조작해주는 언어 - SQL은 1970년대 초방네 IBM이 개발한 구조화된 데이터 질의 언어
- 두 종류의 언어로 구성된다.
- DDL(Data Definition Language)
- 테이블 구조를 정의하는 언어 - DML(Data Manipulation Language)
- 테이블에서 원하는 레코드들을 읽어오는 질의 언어
- 테이블에 레코드를 추가 / 삭제 / 갱신 하는데 사용하는 언어
- DDL(Data Definition Language)
- 구조화된 데이터를 다루는한 SQL은 데이터 규모와 상관없어 쓰임
- 모든 대용량 데이터 웨어하우스는 SQL 기반이다.
- SQL : Structured Query Language
- SQL 단점
- 구조화된 데이터를 다루는데 최적화가 되어있다.
- 정규 표현식을 통해 비구조화된 데이터를 어느 정도 다루는 것은 가능하나 제약이 심하다. - 많은 관계형 데이터베이스들이 플랫한 구조만 지원한다. (no nested like JSON)
- 구글 빅쿼리는 nested structure를 지원한다. - 비구조화된 데이터를 다루는데 Spark, Hadoop과 같은 분산 컴퓨팅 환경이 필요하다.
- SQL 만으로는 비구조화 데이터를 처리하지 못한다. - 관계형 데이터베이스마다 SQL문법이 조금씩 상이하다.
- 구조화된 데이터를 다루는데 최적화가 되어있다.
- Star schema
- Production DB용 관계형 DB에서는 보통 스타 스키마를 사용해 데이터를 저장한다.
- 논리적 단위로 나눠 저장하고 필요시 조인하는 방법
- 스토리지 낭비가 덜하고 업데이트가 쉽다.Star_Schema 예시 - Denormalized Schema
- 데이터 웨어하우스에서 사용하는 방식
- 단위 테이블로 나눠 저장하지 않음으로 별도의 조인이 필요없는 형태이다.
- 스토리지를 더 사용하지만 조인이 필요없기 때문에 빠른 계산이 가능하다.Denormalize 테이블
- 데이터 웨어하우스에서 사용하는 방식
- 데이터 웨어하우스 : 회사에 필요한 모든 데이터를 저장
- SQL 기반의 관계형 데이터베이스
- 프로덕션 데이터베이스와는 별도
- OLAP(Online Analytical Processing) vs OLTP (OnLine Transaction Processing)
- AWS의 Redshift, Google Cloud의 Big Query, Snowflake 대표적(고정비용 vs 가변비용 옵션) - 데이터 웨어하우스는 고객이 아닌 내부 직원을 위한 데이터베이스
- 처리속도가 아닌 처리 데이터의 크기가 더 중요하다. - ETL 혹은 데이터 파이프라인
- 외부에 존재하는 데이터를 읽어다가 데이터 웨어하우스로 저장해주는 코드들
- SQL 기반의 관계형 데이터베이스
- 데이터 인프라
- 데이터 엔지니어가 관리한다.
- 한 단계 더 발전하면 Spark와 같은 대용량 분산처리 시스템이 일부 추가된다. - ETL, 데이터 웨어하우스
- 데이터 엔지니어가 관리한다.
- 데이터 순환구조
- 사이트 방문트래픽과 외부 데이터 (이메일, 마케팅 등)
- 데이터 웨어하우스 (데이터 팀)
순환구조 시각화
- 클라우드 정의
- 컴퓨팅 자원(하드웨어, 소프트웨어 등)을 네트웍을 통해 서비스 형태로 사용하는 것
- 키워드
- "No Provisioning"
- "Pay As You Go" - 자원(서버 등)을 필요한 만큼 실시간으로 할당하여 사용한 만큼 지불한다.
- 탄력적으로 유지하는것이 중요하다
- 클라우드 컴퓨팅의 장점
- 초기 투자비용이 줄어든다.
- CAPEX (Capital Expenditure) vs OPEX (Operating Expense) - 리소스 준비를 위한 대기시간이 대폭 감소한다.
- Shorter Time to Market - 노는 리소스 제거로 비용이 감소한다.
- 글로벌 확장이 용이하다.
- 소프트웨어 개발 시간이 단축된다.
- Magnaged Service(SaaS) 이용
- 초기 투자비용이 줄어든다.
- AWS
- 가장 큰 클라우드 컴퓨팅 서비스 업체
- 2002년 아마존의 상품데이터 API로 제공하면서 시작했다.
- 다양한 종류의 서비스만으로 온라인 서비스를 제공한다.
- Redshift : Scalable SQL 엔진
- 2PB까지 지원한다.
- Still OLAP
- 응답속도가 빠르지 않기 때문에 프로덕션 데이터베이스로 사용불가 - Columnar Storage
- 컬럼별 압축이 가능
- 컬럼을 추가하거나 삭제하는 것이 아주 빠르다. - 벌크 업데이트 지원
- 레코드가 들어있는 파일을 S3로 복사 후 COPY 커맨드로 Redshift로 일괄복사한다. - 고정 용량 / 비용 SQL 엕진
- 다른 데이터 웨어하우스처럼 primary key uniqueness를 보장하지 않는다.
- 프로덕션 데이터베이스들은 보장한다. - Postgresql 8.x 와 SQL이 호환된다.
공부하며 어려웠던 내용
- -
반응형
'데이터분석' 카테고리의 다른 글
23. GROUP BY & AGGREGATE (0) | 2023.12.29 |
---|---|
22. SQL 코드 작성 (0) | 2023.12.29 |
14. 효율적인 SQL 코드 작성법 (1) | 2023.12.07 |
13. 데이터 타입 (1) | 2023.12.06 |
12. SQL문 (1) | 2023.12.05 |