티스토리 뷰

ADP (데이터분석 전문가) 필기

 

ADP 2과목에 해당하는 영역입니다. 

ADsP(데이터분석 준전문가)에서는 출제영역에 해당하지 않는 부분입니다.

 


과목 Ⅱ. 데이터 처리기술 이해

 

ETL

추출(Extract), 변환(Transform), 적재(Load)

DW, ODS, DM 등의 적재 작업의 핵심구성요소

통합, 이동, MDM(마스터 데이터 관리)에 활용

 

0) Interface : 인터페이스 메커니즘 구현

1) Staging ETL : 데이터 획득, 스테이징 테이블에 저장

2) Profiling ETL : (스테이징 테이블에서) 특성 식별, 품질 측정

3) Cleansing ETL : 프로파일링된 데이터 보정

4) Integration ETL : 충돌해소, 클렌징된 데이터 통합

5) Denormalization : 운영보고서 생성, 비정규화(반정규화)

 

 

ODS 운영 데이터 스토어

다양한 데이터 원천들로부터 데이터를 추출, 통합한 데이터 베이스 -> DW로 이관

실시간(Real time), 실시간 근접(Near Real time) 트랜잭션 등

하위 수준 데이터 저장

 

1) 인터페이스 단계 : 데이터 획득

2) 스테이징 단계 : 스테이징 테이블에 저장

3) 프로파일링 단계 : 품질 점검

4) 클렌징 단계 : 식별된 오류 데이터를 수정

4) 인티그레이션 단계 : 단일 통합 테이블에 적재

6) 익스포트 단계

 

DW 특징

주제 중심, 영속성(읽기전용, 삭제 X), 통합성, 시계열성


다차원 모델링 기법

1. 스타 스키마 (조인스키마)

1개의 fact table 과 여러개의 dimension table로 구성

fact table -> 제3정규형, dimension table -> 제2정규형

 

특징

장점 : 이해쉬움, 복잡도 낮음, 쿼리작성용이, 조인 테이블 개수 적음

단점 : 적재시 시간소요 큼

 

2. 스노우 플레이크 스키마

스타 스키마에서 dimension table을 제3정규형으로 정규화한 모델

 

특징

장점 : 저장공간 최소화, 유연성 증가, 무결성 유지용이, 데이터 중복 최소화

단점 : 복잡도 증가, 결과 검증이 어려움, 조인으로 인한 성능저하

 

CDC 

Change Data Capture

푸시방식 / 풀방식

 

구현기법

1. Time stamp on Rows

2. Version numbers on Rows

3. Status on Rows <- 1, 2를 보완 True/False

4. Time/Version/Status on Rows

5. Triggers on Tables

6. Event Programming

7. Log scanner on Database 

-> 데이터베이스에 대한 영향도 최소화

    변경식별 지연시간 최소화

    트랜잭션 무결성에 대한 영향 최소화

    DB스키마 변경 불필요

 

 

EAI

1. Point-to-Point 방식

-> 복잡성, 유지보수 비용 높음

간선의 개수 최대 n(n-1)/2

 

2. Hub and Spoke 방식

버스, 허브(브로커), 트랜스포머로 구성

 

① Mediation : Publish-Subscribe pattern -> EAI엔진이 브로커 역할

② Federation : Request-Reply Pattern -> 데이터 요청 일괄 수정

 

일괄(Batch) 통합

- 비실시간

- 대용량 데이터 처리

- 조작 복잡성 높음

- CDC

- 데이터 재처리 허용

 

비동기식 근접 실시간 (Near Real Time) 통합

- 중간 용량 데이터

- 데이터 재처리 허용

- 다수 데이터 원천 및 목표 시스템

 

실시간(Real Time) 방식

- 단일 트랜잭션 단위

- 데이터 재처리 불가

- 단일, 다수 데이터 원천

 

대용량 비정형 데이터 수집 시스템 특징

① 초고속 수집 성능과 확장성

② 데이터 전송보장 메커니즘

③ 다양한 수집과 저장 플러그인

④ 인터페이스 상속을 통한 애플리케이션 기능확장

Flume-NG : 오픈소스 데이터 수집 시스템

 

대규모 분산 병렬 처리

하둡(Hadoop)

- 자바 기반 오픈소스

- 여러 대의 서버로 클러스터

- 맵리듀스 +HDFS

 

특징

1) 선형적인(Scalable) 성능, 용량 확장

 비공유 분산 아키텍처 시스템

2) 고장 감내성 (Fault Tolerance)

 - 3중 복제, 유실 방지

3) 핵심 비즈니스 로직에 집중

 - 자동 복구 기능 (Failover)

4) 풍부한 에코시스템

데이터 수집 : Chukwa, Flume, Scribe, Sqoop, Hiho, Kafka

데이터 처리 : Pig, Mahout, Spark, Impala, Presto, Hive, 타조

데이터 저장 : Hbase, Kudu

워크플로우 관리 : Oozie, Azkaban 

 

SQL on Hadoop

엔진 : 하이브, 타조, 임팔라 등

기술

  • 아파치 드릴 : 맵알
  • 아파치 스팅거 : 호튼윅스
  • Shark
  • 아파치 타조
  • 호크 : 피보탈
  • 프레스트 : 페이스북

임팔라 (Impala)

  • HDF와 직접 통신
  • 쿼리를 낮은 지연속도로 처리 가능
  • HiveQL, C++ 기반
  • 맵리듀스 프로그래밍 X, 실행 중의 최적화된 코드를 생성
  • DML 데이터 변경, 삭제 X
  • 칼럼단위 방식이 처리능력 개선

임팔라 구성요소

클라이언트 : ODBC, JDBC, 임팔라쉘

메타스토어

임팔라 데몬 : SQL 질의를 받아 R/W 작업수행

스테이트스토어 : 상태체크, 장애확인

스토리지

 

아파치 스파크

  • 인메모리 실행모델
  • 스칼라, 자바, 파이썬, R
  • 다양한 클러스터 매니저
  • 인메모리 기반 -> 높은 메모리필요
  • 반복처리에 적합
  • 하둡에 비해 빠른 연산처리

분산파일시스템

- 비대칭형 클러스터 파일시스템

 

구글 파일 시스템 GFS

Chunk 단위

고장이 빈번한 환경을 가정하고 설계되었다

파일은 대용량으로, 순차적으로 추가하며, 갱신은 적다고 가정

낮은 지연응답시간보다는 높은 처리율

Master, Chunk Server, Client 로 구성

POSIX 지원X

 

하둡 분산 파일 시스템 HDFS

블록구조(Chunk Based), 3개의 블록 복제본을 저장 (고장 감내성)

마스터-슬레이브 아키텍처

 

네임노드(마스터서버)

1) 메타데이터 관리

2) 데이터노드 모니터링 -> 하트비트 메세지

3) 블록관리

4) 클라이언트 요청 접수

 

데이터노드(슬레이브서버)

클라이언트로부터 데이터 입출력 요청을 처리

 

러스터(Lustre)

객체기반 클러스터 파일시스템

클라이언트 파일시스템, 메타데이터 서버, 객체 저장 서브로 구성

 

특징 

POSIX 지원, 라이트백 캐시 지원, 잠금 사용


데이터베이스 파티셔닝 효과

고가용성, 병렬처리, 성능향상

 

무공유 방식

Oracle RAC 제외한 대부분

장점 : 노드확장 제한X

단점 : 고장 감내성을 구성해야함

 

공유디스크 방식

SAN 등의 공유디스크, 커뮤니케이션 채널 필요

장점 : 고장 감내성이 높음

단점 : 클러스터가 커지면 병목현상 발생

 

Oracle RAC 데이터베이스 서버

- oracle RAC 아키텍처

- 애플리케이션 파티션 + 데이터파티션 (성능을 위해)

특징 : 가용성, 확장성, 비용절감

 

IBM BB2 ICE

- 무공유 방식

 

MS SQL server

독립된 서버 <- 네트워크로 연결

DPV (Distributed Partitioned View)

Active-Standby 방식

 

MySQL

무공유 구조, 병렬서버구조로 확장가능

관리노드, 데이터노드, MYSQL노드 (클러스터 데이터에 접근 지원)

 

특징

고가용성의 무정지 시스템, 자동 페일오버 기능

하드디스크 기반의 고성능 데이터베이스 구현

 

제한사항

  • Linear key 파티셔닝만 가능
  • 트랜잭션 수행 중의 롤백 X, 전체 트랜잭션 이전으로
  • 컬럼명 31자, DB, Table 122자 제한
  • 테이블 수 최대 20320개
  • 하나의 Row당 8KB (BLOB x)
  • Key 최대 32개
  • 클러스터 기종 동일해야함
  • 운영 중 노드 추가, 삭제 X
  • 노드 255개, 데이터노드 48개 까지

NoSQL

★ 구글 Big table

아마존 simple DB

마이크로소프트 SSDS


분산 컴퓨팅 기술

 

맵리듀스

  • HDFS에 저장된 파일을 분산 배치분석 할수 있게 도와주는 프레임워크
  • 분할 정복 방식으로 병렬 처리
  • 비공유 아키텍처

 

맵, 리듀스 과정

맵 - 입력 데이터를 가공

리듀스 - 맵의 결과를 집계 (shuffle) 단계를 거쳐 리듀스의 입력으로 전송


맵리듀스 실행과정

1) 분할입력 (각 spit이 map 프로세스의 할당단위)

2) Fork Process

3) map

4) map worker : partition

5) Reduce sort (shuffle)

6) Reduce function

7) Done

 

하둡 맵리듀스 시스템

  • 클라이언트
  • 잡트래커 -> Job을 스케쥴링, 모니터링
  • 태스크 트래커

병렬 쿼리 시스템

1) 구글 Sawzall

- 스크립트 형태의 병렬 프로그래밍 언어

2) 아파치 pig -> 야후

- Join 연산 지원

3) 아파치 하이브

- SQL쿼리를 맵리듀스 작업으로 변경해주는 쿼리엔진

- JDBC 지원


★ 클라우드 컴퓨팅

IaaS (Infrastructure as a Service)

서버, 스토리지, 네트워크

가상화하여 인터넷으로

 

PaaS (Platform as a Service)

통합개발환경을 웹으로 제공하는 서비스

 

SaaS (Software as a Service)

소프트웨어를 인터넷으로 제공하는 서비스

 

서버 가상화

서버 가상화 효과

  1. 가상머신 사이의 데이터 보호
  2. 예측하지 못한 장애로부터 보호
  3. 공유 자원에 대한 강제사용의 거부
  4. 서버통합
  5. 자원할당에 의한 증가된 유연성
  6. 테스팅
  7. 정확하고 안전한 서버사이징
  8. 시스템관리 : 로드밸런싱, 업그레이드, 장애처리

CPU 가상화

1) 호스트기반 가상화

호스트OS -> 하이퍼바이저 -> 게스트OS

설치가 쉽고, 구성이 편리 / 성능 저하 가능

 

2) 베어메탈기반 가상화

완전가상화와 반가상화로 나뉨

하이퍼바이저가 직접 하드웨어와 연결되어 가상머신을 생성

하드웨어 -> 하이버바이저 -> 호스트 OS

 

하이퍼바이저

(가상머신을 생성하고 구동하는 소프트웨어)

1) 하드웨어 환경 에뮬레이션

2) 실행환경 격리

3) 시스템 자원 할당

4) 소프트웨어 스택보존

 

가상화 분류

1. 완전가상화

  • 모든 자원 하이퍼바이저가 관리
  • 어떤 OS라도 수정없이 설치 가능
  • 반가상화에 비해 속도가 느림
  • 자원에 대한 동적변경 작업이 단일 서버내에선 어렵다

2. 반가상화

  • hypercall
  • 자원의 변화와 같은 동적 가상화 환경에 유연하게 적응 가능
  • 게스트운영체제 일부분수정 (커널변경)
  • 상호작용
  • 자원이 적게듬
  • 자원의 변경이 서비스 중단 없이 이뤄질 수 있음
  • 성능이 완전가상화에 비해 뛰어나다

Privileged

Ring0 -> Kernel

Ring3 -> User

 

3. 하드웨어 지원 완전가상화

4. Monolithic kernel vs Microkernel

5. 호스트기반 가상화

6. 컨테이너 기반 가상화 - 가상운영환경

 

메모리가상화

VMware 기법

1) TPS (Transparent page sharing)

2) Memory Ballooning

3) Memory overcommitment

 

I/O 가상화

1) 가상이더넷 

에뮬레이션 기능 이용

메모리버스를 통해 네트워크 이중화, 안정적 단절 효과

2) 공유 이더넷 어댑터

3) 가상디스크 어댑터

-> 파이버 채널 어댑터, I/O 부족 해결

댓글
반응형
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함