본문 바로가기

05. 빅분기 ADP/04. ADP

ADP 필기 요약 정리 (2과목 - 데이터 처리 기술 이해)

ETL (Extraction, Transformation, Load)

  • 데이터의 이동 및 변환 절차와 관련된 업계 표준 용어
  • 다양한 데이터 원천으로부터 데이터를 추출 및 변환 하여 ODS, DW, DM 등에 데이터를 적재

ODS (Operation Data Store)

  • 추가 작업을 위해 데이터를 추출/통합한 데이터베이스
  • 실시간 또는 실시간 근접
  • 구성단계
    1. 인터페이스
    2. 데이터 획득
    3. 데이터 스테이징
      • 데이터들이 추출되어 하나 또는 그 이상의 스테이징 테이블들에 저장
      • 데이터 원천과 스테이징 테이블과의 데이터 매핑은 일대일 또는 일대다
    4. 데이터 프로파일링
    5. 데이터 클렌징
    6. 데이터 인티그레이션
    7. 익스포트

데이터 웨어하우스(DW)

DW 특징

주제 중심성 특정 이벤트나 업무 항목을 기준으로 구조화 → 이해 쉬움
영속성, 비휘발성 읽기 전용, 삭제되지 않음
통합성 데이터들의 통합본
시계열성 시간 순에 의한 이력 데이터를 보유

 

DW 테이블 모델링 기법

  • 스타 스키마
    • 가장 단순
    • 사실 테이블 → 제 3규형으로 모델링
    • 차원 테이블 → 제 2정규형으로 모델링
    • 장점 : 이해하기 쉽고, 쿼리 작성이 용이
    • 단점 : 데이터 중복으로 적재할 때 많은 시간 소요
  • 스노우 플레이크 스키마
    • 장점 : 중복이 제거, 적재 시간 단축
    • 단점 : 복잡성 증가로 조인 테이블의 개수가 증가

 

ODS, DW 비교

  ODS DW
데이터의 내용 현재 또는 비교적 최신 데이터 오래된 상세 데이터, 2차 가공 데이터
데이터의 양 비교적 소규모 대규모
데이터의 갱신 지속적으로 갱신 → 현재의 DB 상태 반영 데이터 축적 보관
기술적 요소 DB 처리의 모든 기능 단순한 적재와 접근 중심

 

CDC (Change Data Capture)

  • 변경을 식별해 후속처리를 자동화
  • 실시간 또는 근접 실시간 데이터 통합 기반
  • 스토리지 하드웨어 계층에서부터 애플리케이션 계층까지 다양한 계층에서 구현
  • 구현기법
    • Time Stamp on Rows 타임스탬프 컬럼
    • Version Numbers on Rows 버전을 기록하는 컬럼
    • Status on Rows 타임 스탬프 및 넘버 기법에 대한 보완 용도, 변경 여부를 True/False로 저장
    • Time/Version/Status on Rows 세가지 특성 보두 활용
    • Triggers on Tables 사전에 등록된 다수 대상 시스템에 변경 데이터 배포, 시스템 유지보수성 저하로 사용에 주의
    • Event Programming 
    • Log Scanner and Database 

 

EAI (Enterprise Application Integration)

  • 데이터 연계 방식: Point to Point, Hub and Spoke
  • 구성요소: 어댑터, 버스, 브로커, 트랜스포머
  • 활용효과
    • 정보 시스템 개발 및 유지 보수비용 절감
    • 기업 정보 시스템의 지속적 발전 기반 확보
    • 협력사/ 파트너/ 고객과의 협력 프로세스 연계 
    • 웹 서비스 등 인터넷 비즈니스를 위한 기본 토대 확립
    • 지역적으로 분리되어 있는 정보 시스템들 간의 데이터 동기화, 그룹 및 지주 회사 계열사들 간 상호 관련 데이터 동기화 등을 위한 데이터 표준화 기반 제공
일괄(Batch) 통합 비동기식 실시간 통합 동기식 실시간 통합
- 비실시간 데이터 통합
- 대용량 데이터 대상
- 데이터 재처리 허용
- 점대점 데이터 연계
- 근접 실시간 데이터 통합
- 중간 용량 데이터
- 데이터 재처리 허용
- 다수 데이터 원천 및 목표 시스템
- 실시간 데이터 통합
- 목표 시스템 데이터 처리 가능시에만 원천 데이터 획득
- 데이터 재처리 불가
- 단일 또는 다수 데이터 원천

 

  전통적 데이터 처리 기법 빅데이터 처리 기법
추출 운영 DB → ODS → DW 빅데이터 환경 → 빅데이터 환경
변환
로딩
시각화 ×
분석 - OLAP
- 통계와 데이터마이닝 기술
통계와 데이터마이닝 기술
리포팅 비즈니스 인텔리전스 비즈니스 인텔리전스
인프라스트럭처 - SQL
- 전통적 RDBS 인스턴스
NoSQL 등 초대형 분산 데이터 스토리지

 

대용량 로그 데이터 수집

  • 로그 : 비정형 데이터
  • 수집 시스템 : 아파치 Flume-NG, 페이스북 Scribe, 아파치 Chuckwa 등
  • 수집 시스템 특징
    • 초고속 수집 성능과 확장성
    • 데이터 전송 보장 메커니즘
    • 다양한 수집과 저장 플러그인
    • 인터페이스 상속을 통한 애플리케이션 기능 확장

대규모 분산 병렬 처리

하둡

  • MapReduce시스템과 HDFS를 핵심 구성요소로 가지는 플랫폼 기술
  • 비공유 분산 아키텍처 사용
  • 특징
    • 선형적 성능과 용량 확장 : 제한이 없고, 비공유 분산 아키텍처 시스템이라 서버의 대수에 비례해 증가
    • 고장 감내성 : 3중복제, 장애가 발생한 특정 태스크만 다른 서버에서 재실행
    • 핵심 비즈니스 로직에 집중: 맵과 리듀스라는 2개의 함수만 구현하며 동작
    • 하둡 에코 시스템
      • 비정형 데이터 수집 : Chuckwa, Flume, Scribe
      • 정형 데이터 수집 : Sqoop, Hiho
      • 분산 데이터 저장 : HDFS (네임노드, 보조 네임노드, 데이터 노드)
      • 분산 데이터베이스 : HBase
      • 분산 데이터 처리 : 맵리듀스 (맵, 셔플, 리듀스)
      • 리소스 관리
      • 인메모리 처리 : Apache Spark (스트리밍 데이터, 온라인 머신러닝 등 실시간 데이터 처리)
      • 데이터 가공 : Pig (피그 라틴이라는 자체언어), Hive (HiveQL 쿼리제공)
      • 데이터 마이닝 : Mahout (하둡기반 오픈소스)
      • 실시간 SQL 질의 : Impala (HiveQL, HBase), Tajo (ETL로 DW에 적재)
      • 워크플로우 관리 : Oozie (하둡 작업 관리)
      • 분산 코디네이션 : Zookeeper (서비스 분산)

 

Sqoop

  • 데이터 연동 솔루션
  • Import : RDBMS → HDFS
  • Export : HDFS → RDBMS

 

대용량 질의 기술

SQL on 하둡 기술

  • 아파치 드릴 (MapR)
  • 아파치 스팅거 (호튼웍스) 
  • 샤크 
  • 아파치 타조 (고려대 대학원)
  • 임팔라 (클라우데라)
  • 호크 
  • 프레스토 (페이스북)

분산 파일 시스템

구글 파일 시스템(GFS, Google File System)

  • 고정된 크기의 청크(64MB)
  • 서버의 고장이 빈번히 발생할 수 있다고 가정
  • 쓰기 연산은 순차적, 갱신은 드물게
  • 낮은 응답 지연시간보다 높은 처리율이 더 중요
  • 구성요소 : 클라이언트, 마스터, 청크서버

HDFS

  • 하나의 네임노드(GFS의 마스터와 유사), 다수의 데이터노드(GFS의 청크서버)로 구성
  • 한 번 쓰이면 변경되지 않는다고 가정
  • 순차적 스트리밍 방식, 배치 작업에 적합
  • 높은 데이터 처리량에 중점
  • 구성요소 : 네임노드, 데이터노드(슬레이브 노드, 3중복제저장), 보조네임노드

 

러스터

  • 클라이언트에서 메타데이터 변경에 대한 갱신 레코드를 생성

 

데이터베이스 클러스터

  • 성능과 가용성의 향상을 위해 데이터베이스 차원의 파티셔닝 또는 클러스터링을 이용
  • 효과
병령처리 빠른 데이터 검색 및 처리 성능
고가용성 장애가 발생하더라도 중단되지 않음
성능 향상 선형적인 증과 효과

 

  • 무공유 디스크
    • 완전히 분리된 데이터의 서브 집합에 대한 소유권을 가짐
    • Oracle RAC를 제외한 대부분의 데이터베이스 클러스터가 무공유 방식 채택
  • 공유 디스크
    • 각 인스턴스는 모든 데이터에 접근할 수 있음
    • SAN과 같은 네트워크가 있어야 공유 가능
    • 모든 노드가 데이터 수정 가능
    • 클러스터가 커지면 디스크 영역에서 병목현상 발생
    • 특정 노드가 데이터를 '소유' 하는 개념은 없음

CPU 가상화

하이퍼바이저 기반(Full) 컨테이너 기반
가상머신 내에서 완전 독립 호스트 OS 사용
호스트 OS와 완전 독립 호스트와 게스트 동일
높은 격리 수준 낮은 격리 수준
높은 오버헤드 발생
성능 향상을 위해 HW 가상화 기술 병행
오버헤드 거의 없음
HW 자원의 대부분 활용
가상머신 별로 별도 관리 공토오 SW 중앙 집중식 관리
이기종 통합 단일 OS 환경 자원 통합 대규모 호스팅 업체
VMware ESX, MS Virtual Server, Xen Virtuozzo, Sun Solaris Container
공유하기
게시글 관리