상세 컨텐츠

본문 제목

Building Data Analytics Solutions Using Amazon Redshift

AWS

by Noong_yoon 2023. 1. 3. 11:24

본문

- Data Islands 

  : 데이터가 흩어져있는 형태

- Data Warehouses

  : 기업 내 데이터를 중앙 집중식으로 수집, 저장 -> 최종 사용자의 의사결정을 지원하기 위함

- Analytic Sandbox

  : 데이터를 우선 Load해두고 나중에 필요할 때 Transform

    --> 일반화된게 Data Lake

 

- 데이터 사일로

   : 여러 업무분야의 데이터를 연합해서 분석하고 싶은 배경에서 출발

 

<산업표준 관점에서 data 분류>

- Structured (schema, table 형식처럼)

- Semi-Structured (json, xml처럼)

- "Quasi"Structured (유사정형 데이터,, Web click stream 데이터(웹에서 클릭하면서 발생하는 데이터))

- Unstructured data (데이터 자체의 구조가 없다는 의미보다는 schema에 담기 어려운 데이터)

 

- 데이터 파이프라인:

  데이터 원본(객체, 데이터 베이스, 모바일, IoT) - 데이터 수집 - 스토리지 - 카탈로그화, 처리, 거버넌스 - 분석 및 시각화

 

- 데이터웨어하우스(DW)는 ETL! (DW에 정해져 있는 Schema에 맞춰서 데이터 저장 위해 Transform!)

 

- OLTP(Online Transfer Processing) --> RDMS        vs.     OLAP(Online Analytic Processing) --> DW

  

<데이터에 따른 AWS 서비스> 

- 트랜잭션 데이터 - AWS DMS(서로 다른 Database들의 데이터를 Migration)

- 스트리밍 데이터 - Amazon Kinesis, Amazon MSK

- 파일 및 객체 - AWS DataSync, AWS Transfer Family(File)

 

<Q&A>

1. 여러 서비스를 다목적 데이터 처리 및 분석 환경에 결합하는 AWS 스토리지 아케텍처는 무엇인가? A) 현대적 데이터 아키텍처

2. 데이터 아키텍트가 비용을 절감하고 대규모 데이터 집합에서 읽기/쓰기 속도를 극대화하기 위해 스토리지 솔루션을 최적화하고 있습니다. 이러한 요구 사항을 충족하는 스토리지 최적화 기술은 무엇인가? A) 압축, 파티셔닝, 형식 지정 

    (+ 계층화: 사용 빈도에 따라 성능에 따라 다른 것을 계층적으로 사용하는 것 - 자주 사용하는 것은 컴퓨팅 노드의 local에, 자주 안사용하는 것은 관리형 스토리지에)

 

- Cluster(=Domain) 

- Lambda는 이벤트 기반으로 사용!

 

<Q&A>

- Redshift의 이점? A) 일관된 성능, 데이터 분석 기능

 

<Redshift Architecture>

- MPP(Massively Parallel Processing)

- 사용자가 쿼리를 제출할 수 있는 노드가 리더(Leader)노드, 리더노드가 실행계획을 컴퓨팅 노드에 전달(컴퓨팅 노드(데이터 노드 역할인 듯 -- 빅데이터 처리에서 배운 내용)에 붙어있는 스토리지에 데이터 존재) 즉 할일을 데이터와 가까운 곳에서 실행시킴

- 슬라이스 : ex. X86서버 --> Disk, NW,, 등을 묶어둔 것 

   슬라이스마다 DB instance가 띄워져있음 !

 

- off - load , push - down : 내가 그 일을 할 수 있는데 다른 사람에게 시키는 것

  Ex. 스토리지 프로세스가 I/O 역할을 하도록 --> 성능의 부담을 줄 수 있는 작업을 다른 곳에서 대신 해줄 수 있도록


<실습1>

- 클러스터 서브넷 그룹 생성(VPC에서 서브넷 집합을 지정하는데 사용되는 것)

     --> Redshift 클러스터를 프로비저닝할 때 서브넷 그룹 선택(Amazon Redshift는 클러스터 서브넷 그룹에 나열된 서브넷 중 하나에 클러스터 생성)

- 클러스터 파라미터 그룹 생성

 -->

 


- ETL 서버가 data를 리더 노드로 push하는 방식

- 사용자 정의 함수(UDF)에서 Lambda 호출 가능(즉 외부 서비스와 통합 가능)

- Amazon Redshift ML에서는 Amazon SageMaker Autopilot 사용하여 Amazon SegMaker Neo 호출

- Amazon Redshift는 데이터 공유가능 (ex.생산자 클러스터-소비자 클러스터(단, 쓰기 불가. 읽기만 가능))

 

- 동일한 리소스를 공유해서 사용하는 것 : 멀티 테넌트

- 동일한 리소스를 독접해서 사용하는 것: 싱글 테넌트


<실습3>

 


- 워크로드 관리(WLM) 기능

    --> 동시성 수준(concurrency_level, 즉 slot 수)= 대기열에 한번에 수행될 수 있는 구문 수

   --> query_group : Query가 어디에 속해있느냐.

   Ex. 

   --> 1번 대기열. User_group : admin*

         2번 대기열. Query_group : reports

         3번 대기열. 기본 대기열

         Q. Set query_group to reports; 라고 하면 2번 대기열로 라우팅 됨

         Q. Jane이 관리자 그룹 멤버인데 analyze flights; 라고 하면 user_group에 포함되기에 1번 대기열로 라우팅됨

         Q. Jack이 analyze flights;라고 하면 user_group에도 포함되지 않고 query_group도 명시 안되있어서 3번 대기열로 라우팅됨

    --> 이렇게 라우팅된 애들이 차례대로 슬롯이 하나 빠지면 그 자리에 들어가서 실행되는데 이 순서대로 말고 하나가 빨리 끝난다고 말하면 SQA(Simple Query Accelator, 단기 쿼리 가속화) 활성화되어 먼저 처리해줌(별도의 특수 대기열로 전환)

 

- WLM의 파라미터 그룹은 수동/자동으로 나누어지고 수동은 위와 같은 내용들 직접 수동으로 설정 가능

- 쿼리 타겟팅 (사용자 그룹, 쿼리 그룹, 쿼리 모니터링 규칙)

 

<성능 자동화>

- 자동 테이블 자동화

- 자동 유지 관리 

* 사용하지 않는 저장소를 회수, 테이블 재정렬 등의 기능 제공

 

- 클러스터 크기 조정 가능(Elastic Resizing)

 

- 자동 워크로드 관리자는 최적화 기능 x

- 파티셔닝은 수동으로해야함!

 

<4가지 엑세스 수준>

- 클러스터 관리, 클러스터 연결, 데이터베이스 액세스, 임시 DB 자격 증명 및 SSO(IAM 또는 SSO)

 

 

[+]

Data Analytics Speciality 자격증

 

 

 

 

 

 

 

'AWS' 카테고리의 다른 글

데이터 엔지니어링  (0) 2023.01.09
데이터 전문가 - elastic  (0) 2023.01.05
Deep Learning on AWS  (0) 2023.01.04
Building Data Lakes on AWS  (0) 2023.01.02

관련글 더보기