[1기] K-Digital Training: 데이터 분석 데브코스 - TIL_Day21

정연우·2023년 12월 18일
0

주요 메모 사항 소개

SQL_Analysis_Day 1-1

SQL의 중요성

SQL은 데이터 관련 3개의 직군 모두에게 필요한 스킬셋이다. (그 중 데이터 분석가에게 가장 중요한 스킬셋이다.)

  • 데이터 직군에서 일하는한 SQL에 대한 지식은 필수다

배움이란?

정체기는 자연스러운 과정이고 이를 버틸 수 있어야한다. (어느정도는 즐겨야한다. → 포기하지 말아야한다 (적어도 3달 풀타임 정도))

내가 뭘 모르는지 생각해야한다. (자문자답해야한다.)


관계형 데이터베이스란?

비구조화된 데이터는 관계형 데이터베이스에 저장할 수 없다.

컬럼(열), 레코드(행)


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

  • 프로덕션 데이터베이스: 웹이나 모바일에 연동해서 주로 사용한다. (백엔드, 프론트엔드 개발자들이 주로 사용한다.)
  • 데이터 웨어하우스: 처리 데이터의 크기가 크다. (데이터 직군 개발자들이 주로 사용한다.)

데이터 웨어하우스를 사용하면 데이터팀이 발전된 회사이고 프로덕션 데이터베이스를 사용하면 데이터팀이 발전되지 못한 회사이다.


관계형 데이터베이스의 구조

두단계로 구성 (데이터베이스, 테이블)

테이블의 이름으로 관리를 하면 어렵기 때문에 데이터베이스(폴더같은 기능)밑에 테이블들을 놓아 정리할 수 있다.

테이블의 구조를 테이블 스키마라고 부르기도 한다. (테이블 이름, 컬럼 이름, 타입 등)

프로덕션 데이터베이스, 데이터 웨어하우스 모두 이 구조로 형성되어있다. (용어는 조금씩 다르다)


SQL이란?

대용량 데이터 웨어하우스도 관계형 데이터베이스이다.

구조화된 데이터를 다루는데 최적화되어있다.


Star schema

데이터 모델링: 데이터를 어떻게 표현할 것인지 판단하는 것

데이터 모델링 방법 2가지

  • Star scehema

어떤 정보를 한 테이블에 넣는 것이 아니라 논리적인 단위에 맞게 별도의 테이블을 만들어 놓고 링크를 걸어 놓는다. (프로덕션 DB에서 자주 사용한다)

  • Denormalized schema

테이블 안에 다 집어넣는다. (스토리지의 크기에 제약이 없는 데이터 웨어하우스에 적합하다. 스토리지가 많이 필요하지만 계산이 빠르다. 데이터 수정은 프로덕션 DB에서 하고 데이터 웨어하우스에 복사해오기만 하면된다.)


SQL_Analysis_Day 1-2

데이터 웨어하우스는 외부고객이 사용하는 데이터베이스가 아니라 내부직원이 사용하는 데이터베이스이다. 따라서 처리속도보다는 데이터 크기가 더 중요하다.


데이터 순환 구조

데이터 소스를 데이터 파이프라인을 통해 데이터 웨어하우스에 테이블로 저장한다. (데이터 엔지니어)

데이터들을 통합해 이를 지표를 정의해 시각화하거나 다양한 데이터 분석을 한다. (데이터 분석가)

회사 서비스를 머신러닝이나 딥러닝 형태로 발전시킨다. (데이터 과학자)


Cloud와 AWS 소개

Cloud

클라우드를 통해 내가 필요한 하드웨어나 소프트웨어를 준비할 필요가 없다는 장점이 있다.

클라우드는 내가 사용한만큼 지출로 나간다. 따라서 초기 투자 비용이 줄어든다.


AWS

많은 국내 업체들이 사용한다.

다양한 종류의 소프트웨어/플랫폼 서비스를 제공한다.


EC2

서버 호스팅 서비스


S3

대용량 클라우드 스토리지 서비스


기타 중요 서비스

RDS: 프로덕션 DB지원

Redshift


기타 중요 서비스 - AI & ML Services

SageMaker: 딥러닝, 머신러닝 모델을 테스트하고 배포를 자동화 해주는 프레임워크

Lex: Chatbot service

Polly: Text to Speech Engine

Rekognition: Image Recognition Service


Redshift: Scalable SQL 엔진

SQL기반의 데이터베이스

컬럼별로 저장된다 (컬럼 추가 삭제가 빠르고 컬럼별로 압축을 할 수 있다.)

고정 용량/비용 SQL 엔진

SQL이 메인 언어이다. (구조화된 데이터베이스만 처리한다.)


Redshift Schema (폴더) 구성

raw_data: ETL로 구현한 데이터들을 넣는다

analytics: raw_data의 데이터를 읽거 요약을해서 넣는다. (이 데이터를 활용해 분석한다.)

adhoc: 개발자들이 테스트를 할 때 사용하는 공간 (테스트용)

0개의 댓글