TIL) 데브코스 21일차 - RDB, Redshift

Pori·2023년 11월 13일
0

데엔

목록 보기
16/47

관계형 데이터베이스

RDB란?

  • 구조화된 데이터를 저장하고 질의할 수 있도록 해주는 스토리지
  • RDB를 조작하는 언어가 SQL
    • 테이블의 정의를 위한 Data Definition Language
    • 조작, 질의를 위한 Data Manipulation Language
  • 대표적인 RDB
    • 프로덕션 DB : 웹서비스나 모바일 같은 빠른 속도에 집중한 DB, OnLine Transaction Processing (OLTP)
    • 데이터 웨어하우스 : 프로덕션 DB를 복사해서 웨어하우스에 저장하는 방식이 많이 쓰임, OnLine Analytical Processing (OLAP)
  • RDB의 구조
    • 2가지 단계로 구성 → 테이블과 스키마
    • 스키마(DB)를 기반으로 테이블들이 내부에 존재
    • 테이블의 구조 → 테이블 스키마
      • 테이블은 레코드들로 구성된다.
      • 레코드는 하나 이상의 필드(컬럼)로 구성
      • 필드는 이름과 타입, 속성으로 구성된다.
  • SQL의 단점
    • 구조화된 데이터를 다루는 것에 최적화됨.
      • 비구조화된 데이터를 다루는 것이 가능은 하나, 제약이 심하다.
      • 많은 RDB들이 플랫 구조만 지원
      • SQL 문법이 상이한 경우가 많음
      • 비구조화된 데이터를 다루는 Spark, Hadoop과 같은 분산 컴퓨팅 환경이 필요해짐.
  • Star schema
    • RDB에서 보통 스타 스키마를 사용하여 데이터를 저장한다.
    • 논리적 단위로 저장하여 필요시에 조인한다.
    • 저장공간의 낭비가 덜하고 업데이트가 쉽다.

데이터 웨어하우스

  • 데이터 웨어하우스 : 회사에 필요한 데이터를 저장한다.
    • SQL기반의 별도 DB가 필요하다.
    • AWS - Redshift, Big Query, Snowflake 등이 대표적이다.
    • 고정비용 옵션(redshift) vs 가변비용 옵션(big query, snowflake)
  • DW는 내부의 직원을 위한 DB이다.
    • 처리 데이터의 크기가 더 중요하다.
  • ETL 혹은 데이터 파이프라인
    • 데이터 → 데이터 웨어하우스에 적재하는 과정
  • 데이터 인프라
    • 데이터 엔지니어가 관리, 대용량 분산처리 시스템이 추가

클라우드와 AWS

  • 클라우드의 정의
    • 컴퓨팅 자원을 네트워크를 통해 서비스 형태로 사용하는 것
    • “No Provisioning”, “Pay As You Go”
    • 자원을 실시간으로 필요한 만큼 사용, 지불
  • 장점
    • 초기 투자비용이 크게 줄어든다.
    • 리소스 관리를 통해 비용을 절약
    • 소프트웨어 개발 시간이 단축된다.
  • EC2 - Elastic Compute Cloud
    • AWS의 서버 호스팅 서비스
    • 다양한 서버 타입 제공
  • S3 - Simple Storage Service
    • 스토리지 서비스
    • 버킷을 활용하여 디렉토리를 관리

Redshift

  • Redshift : Scalable SQL 엔진
    • Still OLAP
      • 응답 속도는 빠르지 않다.
    • Columnar storage
      • 컬럼별 압축이 가능하다.
      • 컬럼의 추가, 삭제가 매우 빠름
    • 벌크 업데이트 지원
      • S3로 파일 복사 후 Redshift로 일괄 복사.
    • PK uniqueness를 보장하지 않는다. → 개발자가 다른 방법을 통해 보장해주어야 한다.
    • PostgreSQL과 SQL이 호환된다.
  • Schema 구성
    • 폴더의 구성처럼 사용된다. SQL커맨드 사용 → CREATE SCHEMA table_name;

공부 한 내용

  • 클라우드 환경에 대한 간단한 소개
  • RDB 짚고 넘어가기

새롭게 배운 내용

  • AWS의 S3, EC2에 대해 무슨 역할을 수행하는지 배움.
  • Redshift에 대한 개요

느낀점&참고

: 앞으로 사용할 클라우드 기능들에 대한 개요를 통해 사용 목적을 조금이나마 이해 할 수 있었다. 강의를 들으며 PostgreSQL에 대한 언급이 종종 있었는데 이에 대한 궁금증이 생겨 쉽게 설명해준 블로그를 참고 링크로 기재한다.

참고)

0개의 댓글