TIL 21

이예인·2023년 11월 13일
0

TIL

목록 보기
2/10

관계형데이터베이스

  • 구조화된 데이터를 저장하고 질의할 수 있도록 해주는 스토리지
  • 관계형 데이터베이스를 조작하는 프로그래밍 언어가 SQL
    • DDL
      • Create, Alter, Drop, Truncate, Rename
    • DML
      • Select, Insert, Update, Delete

대표적인 관계형 데이터베이스

프로덕션 데이터베이스

  • MySQL, PostgreSQL, Oracle, …
  • OLTP (OnLine Transaction Processing)
  • 빠른 속도에 집중, 서비스에 필요한 정보 저장

데이터웨어하우스

  • Redshift, Snowflake, BigQuery, Hive, …
  • OLAP (OnLinne Analytical Processing)
  • 처리 데이터 크기에 집중
  • 데이터 분석 혹은 모델 빌딩 등을 위한 데이터 저장
  • 프로덕션 데이터베이스를 복사해서 데이터 웨어하우스에 저장

SQL

Structure Query Language

관계형 데이터베이스에 있는 데이터를 질의하거나 조작해주는 언어

1970년대 초반 IBM이 개발한 구조화된 데이터 질의 언어

SQL의 단점

  • 구조화된 데이터를 다루는데 최적화가 되어있다.
    • 정규표현식을 통해 비구조화된 데이터를 어느 정도 다루는 것은 가능하나 제약이 있다.
    • 많은 관계형 데이터벵리스들이 플랫한 구조만 지원한다. (JSON처러 nested된 구조 지원 x)
    • 구글 빅쿼리는 nested structure를 지원한다.
  • 비구조화된 데이터를 다루는데 Spark, Hadoop과 같은 분산 컴퓨팅 환경이 필요해졌다.

Star Schema

  • Production DB용 관계형데이터베이스에서는 보통 스타 스키마를 사용해 데이터를 저장
  • 데이터를 논리적 단위로 저장하고 필요시 조인한다.
  • 스토리지 낭비가 덜하고 업데이트가 쉽다.

Denormalized Schema

  • 데이터웨어하우스에서 사용하는 방식이다.
  • 단위 테이블로 나눠 저장하지 않음으로 별도의 조인이 필요없는 형태이다.
  • 스토리지를 더 사용하지만 조인이 필요 없어 빠른 계산이 가능하다.

데이터웨어하우스

  • 회사에 필요한 모든 데이터를 저장
  • 여전히 SQL 기반의 관계형 데이터베이스이다.
  • Redshift < BigQuery, Snowflake (scalable)
  • 처리속도가 별로 중요하지는 않다.
    • 서비스되는게 아니고, 내부에서만 사용할 것이기 때문
  • ETL(Extract, Transform, Load), 데이터 파이프라인
    • 외부에 존재하는 데이터를 읽어서 데이터 웨어하우스에 저장하는 것

데이터 인프라

Redshift

  • Scalable SQL 엔진
  • 2PB까지 지원한다.
    • 실제로 써보면, 2PB까지는 못쓴다.
  • OLAP
    • 응답속도가 빠르지 않아서 프로덕션 데이터베이스로 사용할 수 없다.
  • Columnar Storage
    • 컬럼별 압축이 가능하다.
    • 컬럼을 추가하거나 삭제하는 것이 빠르다.
  • 벌크 업데이트 지원
    • 레코드가 들어있는 파일을 S3로 복사 후 COPY 커맨드로 Redshift로 일괄 복사
    • 레코드 바이 레코드로 insert하면 시간이 많이 걸린다.
  • 고정 용량, 고정 비용
    • Snowflake, BigQuery는 가변 용량, 가변 비용
  • primary key uniqueness를 보장하지 않는다.
    • 레코드를 저장할 때 마다 unique한지 확인해야한다.
    • 시간이 많이 걸린다.
  • Postgresql 8.x와 SQL이 호환된다.
    • Postgresql 8.x를 지원하는 툴이나 라이브러리로 액세스 할 수 있다.
      • JDBC, ODBC

0개의 댓글

관련 채용 정보