ADP

ADP 2과목

봄프로 2022. 11. 9. 20:18

1장

1절. ETL

  1. ETL(Extraction Transformation Load)
    1. 단계: Staging - Profiling - Cleansing - Integration - De-Normalizing
  2. ODS(Operational Date Store)
    1. 정의: 실시간 또는 실시간 근접 
  3. 데이터 웨어하우스
    1. 정의: ODS를 통해 정제 및 통합된 데이터가 분석과 보고서 생성을 위해 적재되는 데이터 저장소
    2. 특징: 주제 중심성, 비휘발성, 통합성, 시계열성
    3. 테이블 모델링 기법
      1. 스타 스키마
        1. 정의: 조인 스키마라고도 하며 데이터 웨어하우스 중 가장 단순함
        2. 장점: 이해하기 쉬움
        3. 단점: 데이터 중복
      2. 스노우 플레이크 스키마
        1. 정의: 스타 스키마 차원 테이블을 제 3정규형으로 정규화
        2. 장점: 중복 제거
        3. 단점: 조인 테이블 개수 증가

2절. CDC

  1. CDC(Change Data Capture)
    1. 정의: 데이터 변경을 식별해 후속 처리를 자동화하는 기법
    2. 구현기법
      1. Time Stamp on Rows: 테이블 내 마지막 변경 시점 기록
      2. Version Numbers on Rows: 테이블 해당 레코드의 버전 기록
      3. Status on Rows: 타임스탬프 및 버전 넘버를 보완하며, 변경여부를 불린값으로 저장하여 기록
      4. Time/Version/Status on Rows: 세 가지 모두 활용
      5. Triggers on Tables: 데이터베이스 트리거를 활용
      6. Event Programming: 데이터 변경 식별 기능을 구현
      7. Log Scanner on Database: 트랜잭션 로그에 대한 스캐닝
    3. 구현방식
      1. PUSH: 원천에서 변경을 식별하고 대상 시스템에 변경 데이터를 적재해 주는 방식
      2. PULL: 시스템에서 원천을 정기적으로 살펴보고 필요시 데이터를 다운로드하는 방식

 

3절. EAI

  1. EAI(Enterprise Application Integration)
    1. 정의: 기업 정보 시스템을 통합
    2. 특징: 실시간 혹은 근접 실시간 처리 중심
    3. 데이터 연계 방식: Hub and Spoke
  2. 데이터 연계방식
    1. Point to Point: 기존의 방식
    2. Hub and Spoke: 가운데 지점에 허브 역할을 하는 브로커를 둔 중앙집중식 연결구조

 

4절. 대용량 비정형 데이터 처리

  1. 로그
    1. 정의: 기업에서 발생하는 대표적인 비정형 데이터
    2. 시스템 예시: 아파치 Flume-NG, 페이스북 Scribe, 아파치 Chukwa
  2. 하둡(Hadoop)
    1. 정의: 대규모 병렬 처리의 업계 표준인 맵리듀스 시스템과 분산 파일시스템인 HDFS를 핵심 구성요소로 가지는 플랫폼 기술
    2. 특징
      1. 비공유 분산 아키텍처
      2. 서버를 추가하면 연산 기능과 저장 기능이 서버의 대수에 비례하여 증가
      3. 3중 복제되어 데이터 유실 방지
      4. 맵과 리듀스라는 2개의 함수만 구현
      5. 풍부한 에코시스템 형성
  3. 스쿱(Sqoop)
    1. 정의: 하둡 분산 파일시스템(HDFS)과 데이터베이스 간의 데이터 연동 솔루션
    2. 특징: Import로 RDBMS에서 HDFS로, Export로 HDFS에서 RDBMS로 이동
  4. 대용량 질의기술
    1. 하이브: 복잡한 코딩이 필요한 하둡의 한계를 보완한 SQL 질의 기술 
    2. SQL on 하둡기술
      1. 아피치 스틸거
      2. 아피치 타조
      3. 아피치 드릴
      4. 샤크
      5. 프레스토
      6. 호크
      7. 임팔라

2장

1절. 분산 데이터 저장

  1. 분산 파일 시스템
    1. 구글 파일시스템(GFS; Google File System)
      1. 특징
        1. 구글의 대규모 클러스터 서비스의 기반이 되는 파일 시스템
        2. 파일을 고정된 크기의 청크(chunk)로 나누고, 각 청크에 대한 복제본과 청크를 청크서버에 분산저장
        3. 트리 구조가 아닌 해시 테이블 구조를 사용하여 효율적인 메타데이터 처리
        4. 청크는 마스터에 의해 생성 및 삭제 가능
      2. 가정
        1. 서버의 고장이 빈번히 발생할 수 있음
        2. 대부분의 파일은 대용량이라고 가정
        3. 파일에 대한 쓰기 연산은 주로 순차적으로 이뤄지며, 파일에 대한 갱신은 드물게 일어남
        4. 낮은 응답 지연 시간보다 높은 처리율이 더 중요
    2. 하둡 분산 파일시스템(HDFS; Hadoop Distributed File System)
      1. 네임노드: 메타데이터 관리
      2. 데이터노드: 슬레이브 노드로 데이터 입출력 처리, 유실 방지를 위해 3중 복제하여 저장
      3. 보조네임노드: 모니터링 보조
    3. 러스터(Lustre)
      1. 정의: 클러스터 파일 시스템에서 개발한 객체 기반의 클러스터 파일 시스템
      2. 구성요소
        1. 클라이언트 파일 시스템
        2. 메타데이터 서버
        3. 객체 저장 서버
  2. 데이터베이스 클러스터
    1. 정의: 하나의 데이터베이스 차원의 파티셔닝 또는 클러스터링
    2. 파티셔닝: 병렬처리, 고가용성(특정 파티션에서 장애가 발생해도 다른 서비스가 중단되지 않음), 성능향상
    3. 구분
      1. 무공유 디스크
        1. 완전히 분리된 데이터의 서브 집합에 대한 소유권 가짐
        2. 로컬 디스크에 저장하여 노드 간 공유하지 않음
        3. Oracle RAC 제외 대부분의 데이터베이스 채택방식
      2. 공유 디스크
        1. 각 인스턴스는 모든 데이터에 접근 가능
        2. 높은 수준의 폴트톨러런스(fault-tolerance)를 제공
        3. 클러스터 구성노드 중 하나만 살아있어도 서비스 가능
        4. 클러스터 커지면 병목현상 발생
  3. NoSQL
    1. 정의: 분산 데이터베이스 기술로 비관계형 데이터베이스 관리 시스템
    2. 특징: Not only SQL로 SQL계열 쿼리 언어 사용 가능
    3. 구조: key-value 모델, Document 모델, Graph 모델, Column 모델
    4. 종류
      1. 구글 빅테이블: 공유 디스크 방식
      2. HBase: 하둡 분산 파일시스템(HDFS) 기반으로 구현된 수평적인 칼럼 기반 분산 데이터베이스
      3. 아마존 SimpleDB: 아마존의 데이터 서비스 플랫폼으로 실시간 처리 지원하며, Domain, Item, Attribute, Value로 구성
      4. 마이크로소프트 SSDS: 마이크로소프트 데이터 서비스로 고가용성 보장하며, 컨테이너와 엔티티로 구성

 

2절. 분산 컴퓨팅 기술

  1. MapReduce
    1. 정의: 구글에서 분산 병렬 컴퓨팅을 이용하여 대용량 데이터를 처리하기 위함
    2. 특징: Map Task 하나가 1개의 블록을 대상으로 연산 수행
    3. Hadoop MapReduce
      1. 아키텍쳐
        1. 네임노드: 네임 스페이스를 관리하는 마스터 역할
        2. 데이터노드: 데이터 입출력에 대한 처리 수행
        3. 잡트래커: job이라는 작업을 관리하는 마스터에 해당
        4. 태스크트래커: 작업을 수행하는 워커 데몬
      2. 실행절차: 스플릿(Split) - 맵(Map) - 컴바인(Combine) - 셔플(Shuffle) - 정렬(Sort) - 리듀스(Reduce)
  2. 병렬 쿼리 시스템
    1. 정의: 직접 코딩해야하는 구글 및 하둡 MapReduce의 한계를 쿼리 인터페이스로 보완하여 추상화된 병렬 처리함
    2. 종류
      1. 구글 Sawzall: 최초의 스크립트 형태 병렬 쿼리 언어
      2. 아파치 Pig: 야후에서 개발한 오픈소스, 하둡 MapReduce 하에서 동작
      3. 아파치 Hive: 페이스북에서 개발한 데이터 웨어하우징 인프라로 맵리듀스의 모든 기능 지원
  3. SQL on 하둡
    1. 정의: 하둡에 저장된 대용량 데이터를 대화 형식의 실시간 SQL 질의를 통해 처리
    2. 특징: 하둡의 한계를 보완하기 위한 실시간 처리
    3. 임팔라
      1. 분석과 트랜잭션 처리 모두 지원 
      2. C++ 언어 사용
      3. MapReduce 사용하지 않음
      4. 구성요소: 클라이언트, 메타스토어, 임팔라 데몬, 스테이트 스토어, 스토리지

 

3절. 클라우드 인프라 기술

  1. 클라우드 컴퓨팅
    1. 정의: 동적으로 확장할 수 있는 가상화 자원들을 인터넷으로 서비스
    2. 서버 가상화
      1. 정의: 물리적인 자원은 숨기고 논리적인 자원만 보여주는 기술
      2. 효과
        1. 가상머신 사이의 데이터 보호
        2. 예측하지 못한 장애로부터 보호
        3. 공유 자원에 대한 강제 사용의 거부
        4. 서버 통합
        5. 자원 할당에 대한 증가된 유연성
        6. 테스팅
        7. 정확하고 안전한 서버 사이징
        8. 시스템 관리
  2. CPU 가상화
    1. 하이퍼바이저: 가상머신으로 호스트 컴퓨터에서 다수의 운영 체제를 동시에 실행하도록 하기 위한 논리적인 플랫폼
    2. 가상화 방식
      1. 완전 가상화: 하이퍼바이저보다 우선순위가 낮은 가상머신에서 실행되지 않는 명령어에 대해 trap을 발생시켜 하이퍼바이저에서 실헹하는 방식
      2. 하드웨어 지원 완전 가상화: 명령을 내릴 수 있는 반가상화 수준의 성능을 발휘하도록 개선
      3. 반가상화: 명령어를 게스트 운영체제에서 하이퍼바이저에 전달
      4. Monolithic 및 Microkernel: 하드웨어에 대한 드라이버가 어느 계층에 있는지에 따라 구분
      5. 호스트 기반 가상화: 완전한 운영체제가 설치되고 가상화를 담당하는 하이퍼바이저가 호스트 운영체제 위에 탑재
      6. 컨테이너 기반 가상화: 운영체제만을 가상화한 방식으로, 가상화 지원 계층을 가상 운영환경이라 함
  3. 메모리 가상화
    1. Vmware 기법: 하이퍼바이저 내 Shadow Page Table을 별도로 두어 가상 메모리 주소와 물리 메모리 주소의 중간 변환 과정을 가로챔
  4. I/O 가상화
    1. 가상 이더넷: 물리적으로 존재하지 않는 자원을 만들어 내는 emulation 기능 사용
    2. 공유 이더넷 어댑터: 여러 개의 가상머신이 물리적인 네트워크 카드 공유
    3. 가상 디스크 어댑터: 가상머신이 디스크 자원을 획득