플라즈밍
플라즈마 IT
플라즈밍
  • All (163)
    • MindSet (2)
    • Wisdom (8)
    • Book (18)
    • [Web] (6)
      • [Web]Guide (2)
      • [Web]HTML-CSS-JS (1)
      • [Web]ReactJS (0)
      • [Web]NextJS (1)
    • 퀀트주식투자 (4)
      • [리포트]포트폴리오 (4)
    • 자산배분전략 (2)
      • [리포트]자산배분전략 (1)
    • 포트폴리오 (0)
      • 발걸음 (0)
    • 개발 Note (3)
    • TipNote (5)
    • 알고리즘 (27)
      • 백준[BOJ] 오답노트 (27)
      • 백준[BOJ] 강의 정리 노트 (0)
    • etc-posts (18)
      • Unity :: C# 튜토리얼 (18)
    • Web&Know (23)
    • 끄적임 (4)
    • 세상이슈 (0)
    • Youtube 유튜브 (3)
      • Youtube 채널소개 (3)
    • 창업 Know&Idea (1)
    • Web&Dev (4)
    • 프로젝트 (6)
      • Unity5 Project (3)
      • UnrealEngine4 Project (2)
      • Web Page (1)
    • 주가차트-기술적분석 (2)
    • BlockChain (7)
    • SystemDesign (11)

인기 글

최근 글

hELLO · Designed By 정상우.
플라즈밍

플라즈마 IT

[시스템디자인&인터뷰] 3. 빅데이터를 활용한 작업
SystemDesign

[시스템디자인&인터뷰] 3. 빅데이터를 활용한 작업

2023. 3. 17. 19:33
반응형

시스템 디자인 및 디자인

목적 : 기업의 비즈니스 모델에 효율적인 아키텍처를 고안하기 위한 능력 배양 

 

목차

1. 확장 가능한 시스템 설계

2. 알고리즘과 데이터 구조 

3. 빅데이터를 활용한 작업

4. 설계 인터뷰 전략 

5. 모의 설계 인터뷰 

7. 일반적인 기술 인터뷰 팁 

 

ref) 

http://media.sundog-soft.com/SystemDesign/SystemDesign.pdf 

 

빅데이터를 활용한 작업

 

1. 메시지 큐 

데이터의 생성자와 소비자 간의 일종의 버퍼를 두는 것이다. 

- 버퍼는 미리 데이터를 모아두는 용도로 사용되거나,

- 많은 데이터를 저장해두었다가 천천히 꺼내 사용하는 용도이다. 

- 메시지 큐 : AWS SQS , 싱글 스레드 관점에서 서비스 

- 데이터 스트리밍 : 카프카, 스파크 스트리밍 > 실시간 대규모 데이터 처리 

 

2. 데이터 애널리틱스 / 아파치 스파크 

 

HDFS : 하둡 파일 시스템, 데이터를 클러스터 전체에 분산 저장 

- YARN : 데이터의 접근 관리, 클러스터의 어플리케이션 관리 

- * MapReduce : 데이터 추출(매핑 프로세스) > 데이터 결합 ( 리듀스 단계 ) , 유연성 있게 처리 어렵다.

- * Spark : 맵리듀스의 대체, Scala, Python 언어로 작성  

 

스파크

- 인메모리 캐시에 크게 의존하여 속도가 빠르고 , 디스크 사용 최소 

- SQL문을 작성하면, 각 클러스터에 최적의 데이터 수집 및 처리 프로세스를 구동 

- DAG , 유향 비순환 그래프 -> 작업의 시퀀스 최적화 

 

스파크 스트리밍

- 실시간 데이터가 들어오면서, 분석을 실행 , 머신러닝에 널리 사용 

- 스파크는 OLTP , 데이터를 실시간으로 쿼리하는 목적이 아니다. 데이터 분석 도구로 사용된다. 

 

스파크 프로세스 : 클러스터 어딘가에서 독립적으로 작동하면 된다. 

- 하둡 클러스터, 스파크 클러스터 어디든

 

드라이버 프로그램 (스파크 컨텍스트) : 스파크 프로세스가 작동하고, 어떻게 분석, 출력, 저장하는지 적힌 프로그램

- 이는 스파크 컨텍스트에서 실행, 데이터 가공에 대한 API를 제공 

- 작업자 노드에게 작업을 지시하고, 끝나면 보고 받는다. 

 

클러스터 관리자 노드  : 드라이버 프로그램과 통신한다. 파이썬 주피터 노트북과 같은 인터페이스 

 

스파크 코어 : 파이썬, 스칼라를 이용해 메모리관리, 장애 리커버리, 스케쥴링, 모니터링 등 인터렉션 

스파크 스트리밍 : 카프카 같이 실시간으로 데이터를 분석 

스파크 SQL : 어떠한 데이터 소스든 SQL로 접근하도록 함 

MLLib : 머신러닝 알고리즘을 사용 하도록 라이브러리 제공 

 

3. 클라우드 컴퓨팅 

시스템 설계시, 클라우드 컴퓨팅 서비스를 사용해도 된다.

 

예시) 로그 데이터를 위한 데이터 웨어하우스 디자인 

1. 서버 로그 : 데이터 생성자가 되며, AWS 키네시스에 전송

2. 키네시스 : 데이터 스트리밍 기술 사용, CSV, JSON 등의 가공을 통해 S3에 전송

3. S3 : 데이터 스토리지이며 비정형 데이터를 저장

4. AWS Glue : SQL 인터페이스로 데이터 확인 / 

5. AWS Athena : Glue 대화형 인터페이스로 쿼리 ( Glue + Athena = Serverless ) 

or

4. AWS Reshift : SQL 대화형 > 데이터 확인

5. QuickSight : 데이터 시각화  ( Reshift + QuickSight = managed ) 

 

Hybrid Cloud 의 정의 

- AWS 와 같은 퍼블릭 클라우드 서비스와 + 온프레미스 or Private Cloud를 섞어서 사용한다.

- 민감한 기밀 데이터나 금융데이터를 사용하는 경우에 도입한다. 

반응형
저작자표시 비영리 변경금지 (새창열림)

'SystemDesign' 카테고리의 다른 글

프런트엔드 아키텍처  (0) 2023.04.13
[시스템디자인&인터뷰] 5. 모의 설계 인터뷰  (0) 2023.03.23
[시스템디자인&인터뷰] 4. 설계 인터뷰 전략  (0) 2023.03.23
[시스템디자인&인터뷰] 2. 알고리즘과 데이터 구조  (0) 2023.03.16
[시스템디자인&인터뷰] 1.확장 가능한 시스템 설계  (1) 2023.03.14
    'SystemDesign' 카테고리의 다른 글
    • [시스템디자인&인터뷰] 5. 모의 설계 인터뷰
    • [시스템디자인&인터뷰] 4. 설계 인터뷰 전략
    • [시스템디자인&인터뷰] 2. 알고리즘과 데이터 구조
    • [시스템디자인&인터뷰] 1.확장 가능한 시스템 설계
    플라즈밍
    플라즈밍
    퀀트 주식투자 자산배분 데이터분석 정보 공유 프로그래밍,투자 주제의 책 강의 리뷰 노하우 전수

    티스토리툴바