ADP 2과목 - 데이터 처리 기술 이해

DMIS·2023년 2월 16일
0

ADP 필기

목록 보기
2/13
post-thumbnail

✐ 요약

✔︎ ETL → 테이블 모델링 기법

구분스타 스키마스노우 플레이크 스키마
특징- 조인 스키마(Join schema)라고도 하며,테이블 웨어하우스의 스키마 중 가장 단순한 스키마이다.
- 사실 테이블(Fact Table)은 제3정규형으로 모델링하며, 차원테이블(Dimensional Table)들은 제2정규형으로 모델링한다.
- 스타 스키마의 차원 테이블을 제3정규형으로 정규화한 형태의 스키마이다.
장점- 복잡도가 낮아서 이해하기 쉽고, 쿼리 작성이 용이하며 조인 테이블 개수가 적다.- 데이터의 중복이 제거돼 데이터 적재 시 시간이 단축된다.
단점- 데이터 중복으로 인해 데이터를 적재할 때 상대적으로 많은 시간이 소요된다.- 복잡성이 증가하므로 조인 테이블의 개수가 증가하고 쿼리작성의 난이도가 높아진다.

✔︎ 분산 데이터 저장 기술 → 데이터베이스 클러스터

  1. 개념
  • 하나의 데이터베이스를 여러 개의 서버(또는 가상 서버) 상에 구축하는 것을 의미한다.
  • 데이터를 통합할 때 성능과 가용성의 향상을 위해 데이터베이스 차원의 파티셔닝 또는 클러스터링을 이용한다.
  1. 데이터베이스 파티셔닝 구현의 효과
  • 병령처리, 고가용성(특정 파티션에서 장애가 발생하도 서비스가 중단되지 않음), 성능 향상
  1. 데이터베이스 클러스터의 구분
구분무공유 디스크공유 디스크
특징- 각 인스턴스나 노드는 완전히 분리된 데이터의 서브 집합에 대한 소유권을 가지고 있으며, 각 데이터는 소유권을 갖는 인스턴스가 처리한다.- 모든 데이터베이스 인스턴스 노드들은 데이터 파일을 논리적으로 공유하며, 각 인스턴스는 모든 데이터에 접근할 수 있다.
* Oracle RAC(Real Application Cluster)는 대표적인 공유 디스크 방식이다.
장점- 노드 확장에 제한이 없다.- 높은 수준의 폴트톨러런스(fault-tolerance)를 제공한다.
단점- 장애 발생을 대비해 별도의 폴트톨러런스(fault-tolerance)를 구성해야 한다.- 클러스터가 커지면 디스크 영역에서 병목 현상이 발생한다.

✔︎ 클라우드 인프라 기술 → 메모리 가상화 : VMware 기법

  1. 특징
  • VMware 하이퍼바이저의 핵심 모듈은 VMkernel이며, VMkernel은 Service Console, 디바이스 드라이버들의 메모리 영역을 제외한 나머지 전체 메모리 영역을 모두 관리하면서 가상머신에 메모리를 할당한다.
  • VMware는 하이퍼바이저 내에 Shadow Page Table을 별도로 두어 가상 메모리 주소와 물리 메모리 주소의 중간 변환 과정을 가로챈다.
  1. 메모리 할당 문제의 해결 방법
구분내용
Memory ballooning- 예약된 메모리보다 더 많은 메모리를 사용하는 가상 머신의 메모리 영역을 빈값으로 강제로 채워 가상머신 운영체제가 자체적으로 swapping하도록 한다.
Transparent page sharing* 각 가상머신에 할당된 메모리 중 동일한 내용을 담고 있는 페이지는 물리적인 메모리 영역에 하나만 존재시키고 모든 가상머신이 공유하도록 한다.
Memory Overcommitment* 2GB 메모리를 가진 물리적 장비에 512MB를 Minimum reserverd를 가질 수 있는 가상 머신 5개를 수행할 수 있으나, 성능저하를 유발할 수 있으므로 권장하지 않는다.

✔︎ 분산 컴퓨팅 기술 → SQL on 하둡

  1. 개념
  • 하둡에 저장된 대용량 데이터를 대화 형식의 SQL 질의롤 통해서 처리하고 분석하는 기술이다.
  • 실시간 처리라는 측면에서 하둡의 제약사항을 극복하기 위한 시도이다.
    • 실시간 처리가 가능하다.
  1. SQL on 하둡 기술
  • 아파치 드릴(Drill)
    • 하둡 전문 회사인 맵알(MapR)이 주축인 프로젝트로 드레멜의 아키텍처와 기능을 동일하게 구현한 오픈 소스 버전의 드레멜
  • 아파치 스팅거(Stinger)
    • 하둡 전문 회사인 호튼웍스에서 개발을 주도하고 있으며 기존의 하이브 코드를 최대한 이용하여 성능을 개선하는 식으로 개발이 진행되고 있음
  • 샤크(Shark)
    • 인메모리 기반의 대용량 데이터 웨어하우스 시스템이며, 하이브와 호환되기 때문에 하이브 SQL 질이와 사용자 정의 함수를 사용할 수 있음
  • 아파치 타조(Tajo)
    • 고려대 대학원에서 시작된 프로젝트로 국내 빅데이터 전문회사인 그루터(Gruter)가 합류하여 개발을 진행하고 있고, 아파치 인큐베이션 프로젝트로 등록되어 있음
  • 임팔라(Impala)
    • 하둡 전문 회사인 클라우데라에서 개발을 주도하고 있음
    • SQL on 하둡 기술 중 먼저 대중에게 공개된 기술로, 분석과 트랜잭션 처리를 모두 지원하는 것을 목표로 만들어진 SQL 질의 엔진이다.
    • C++언어를 사용하였으며 맵리듀스를 사용하지 않고 실행 중에 최적화된 코드를 생성해 데이터를 처리한다.
    • 임팔라의 구성요소 : 클라이언트, 메타스토어, 임팔라 데몬, 스테이트 스토어, 스토리지
  • 프레스토
    • 페이스북에서 자체적으로 개발하여 사용하고 있는 하둡 기반의 데이터웨어 하우징 엔진이며, 아파치 라이선스로 공개됨

✔︎ NoSQL(Not only SQL) 솔루션 → HBase

  • 하둡 분산 파일 시스템(HDFS)를 기반으로 구현된 칼럼 기반의 분산 데이터베이스로 파워셋(Powerset)회사에서 구글의 빅테이블을 모델로 하여 만들었다.
  • HBase는 관계형 구조가 아니며, SQL을 지원하지 않는다.
  • 구조화된 데이터보다는 비구조화된 데이터에 더 적합하며, 대규모의 데이터에서 실시간 읽기/쓰기 작업이 필요할 때 사용할 수 있다.
  • 노드만 추가하면 선형으로 확장이 가능한 구조를 가지고 있으며, 클러스터를 통한 데이터의 복제 기능을 제공한다.
  • 관계형 데이터베이스(RDBMS)와는 달리 수평적으로 확장성이 있어 큰 테이블에 적합하며, 단일행의 트랜잭션을 보장한다.
  • 로우키에 대한 인덱싱만을 지원하며, Zookeeper를 이용한 고가용성을 보장한다.

✔︎ 분산 컴퓨팅 기술 → MapReduce

  1. 개념 및 특징
  • 구글에서 분산 병령 컴픁팅을 이용하여 대용량 데이터를 처리하기 위한 목적으로 제작한 소프트웨어 프레임워크이다.
  • 분할정복 방식으로 대용량 데이터를 병렬로 처리할 수 있는 프로그래밍 모델이다.
  1. 구글 MapReduce
  • Map과 Reduce라는 2개의 단계로 구분된다.
  • 구글에서 대용량 처리에 대한 복잡성을 추상화 시켜서 오직 핵심 기능 구현에만 집중하도록 하기 위해 제작했다.
  1. Hadoop MapReduce
  • 아파치 오픈소스 프로젝트로 구글의 논문을 바탕으로 하여 자바(Java) 언어로 구현된 시스템이다.
  • MapReduce는 다음과 같은 순서로 실행된다.
    • 스플릿(Split) → 맵(Map) → 컴바인 (Combine) → 셔플(Shuffle) → 정렬(Sort) → 리듀스(Reduce)

✔︎ ETL → ODS → 데이터 스테이징 단계

  • 작업 일정에 통제되는 프로세스들에 의해 데이터 원천들로부터 트랜잭션 데이터들이 추출되어 하나 또는 그 이상의 스테이징 테이블들에 저장되는 단계이다.
  • 이 테이블들은 정규화가 배제되며, 테이블의 스키마는 데이터 원천의 구조에 의존적이다.
  • 데이터 원천과 스테이징 테이블과의 데이터 매핑은 일대일 또는 일대다로 구성될 수 있다.
  • 데이터가 스테이징 테이블에 적재되는 시점에 적재 타임스탬프, 데이터 값에 대한 체크 섬 등의 통제(Control) 정보들이 추가된다.
  • 관계형 DB, 스프레드시트, 웹, 서비스, XML 문서, 트랜잭션 데이터 저장소와 같은 다양한 이기종 데이터 원천으로부터 데이터를 획득해 스테이징 테이블에 적재하며, 이때 일괄(Batch) 작업 형태인 정기적인 ETL과 실시간 ETL을 혼용할 수 있다.

✔︎ 분산 데이터 저장 기술 → 하둡 분산 파일 시스텝(HDFS)

개념 및 특징

  • 아파치 너치(Apache Nutch) 웹 검색 엔진의 파일 시스템으로 개발되었으며, 구글 파일 시스템의 아키텍처와 사상을 그대로 구현한 클로닝(Cloning) 프로젝트이다.
  • HDFS는 GFS의 마스터와 유사한 하나의 네임노드(NameNode), GFS의 청크서버와 유사한 다수의 데이터노드(DataNode)로 구성된다.
    • 파일 단위로 저장하는 시스템이 아니다.
  • HDFS에서 파일 데이터는 블록(또는 청크) 단위로 나뉘어 있어 여러 데이터노드에 분산, 복제, 저장된다.
  • HDFS에서 기본적으로 파일은 한 번 쓰이면 변경되지 않는다고 가정한다.
    • 2.0 알파버전부터는 저장된 파일에 append가 가능하게 되었다.
  • HDFS는 순차적 스트리밍 방식으로 파일을 저장하거나 저장된 파일을 조회하며, 배치 작업에 적합하도록 설계되어 있다.
  • 낮은 데이터 접근 지연 시간보다 높은 데이터 처리량에 중점을 두고 있다.
  • 클라이언트, 네임노드, 데이터노드 간의 통신을 위하여 TCP/IP 네트워크 상에서 RPC(Remote Procedure Call)를 사용한다.

✔︎ 클라우드 인프라 기술 → 클라우드 컴퓨팅 → 클라우드 컴퓨팅의 개념 및 특징

  • 클라우드 컴퓨팅은 동적으로 확장할 수 있는 가상화 자원들을 인터넷으로 서비스하는 기술을 의미한다.
  • 이러한 클라우드 서비스들은 크게 다음과 같은 세 가지 유형으로 나뉜다.
    • IaaS : Infrastructure as a Service)
      • 네트워크 장비, 서버와 스토리지 등과 같은 IT 인프라 자원을 빌려주는 클라우드 서비스
    • SaaS : Software as a Service
      • 서비스로서의 소프트웨어를 의미하며, 소프트웨어를 웹에서 사용할 수 있게 해주는 서비스
    • PaaS : Platform as a Service
      • 서비스로서의 플랫폼을 의미하며, 어플리케이션이나 소프트웨어 개발 및 구현 시 필요한 플랫폼을 제공하는 서비스
  • VMware, Xen, KVM 등과 같은 서버 가상화 기술은 데이터센터나 기업들에게 인프라스트럭처를 위한 클라우드 서비스의 가능성을 보여주며, IaaS에 주로 활용된다.
  • 아마존은 S3(Simple Storage Service)와 EC2(Elastic Cloud Computing) 환경을 제공함으로써 플랫폼을 위한 클라우드 서비스(PaaS)를 최초로 실현했다.
    • 특히 AWS(Amazon Web Service)의 EMR(Elastic MapReduce)은 하둡을 온디맨드(On-Demand : 이용자의 요구에 따라 서비스가 제공되는 것)로 이용할 수 있는 클라우드 서비스다.
  • 구글은 AppEngine, Apps, Gears, Gadgets 등을 제공함으로써 웹 기반의 다양한 소프트웨어들이 클라우드 서비스로서 어떻게 구체화될 수 있는지를 보여주었다.

✔︎ EAI → EAI와 ESB의 비교

구분EAI
(Enterprise Application Integration)
ESB
(Enterprise Serviece Bus)
기능미들웨어(Hub)를 이용하여 비즈니스 로직을 중심으로 Application을 통합, 연계미들웨어(Bus)를 이용하여 서비스 중심으로 시스템을 유기적으로 연계
통합관점ApplicationProcess
로직연동개별 Application에서 수행ESB에서 수행
아키텍처단일 접점인 허브 시스템을 이용한 중앙집중식 연결구조버스(Bus) 형태의 느슨하고 유연한 연결구조

✐ 오답노트

⚑ 문제1

다음 중 EAI(Enterprise Application Integration)의 활용 효과로 옳지 않은 것은?
① 향후 정보 시스템 개발 유지 및 보수비용 절감 도모
② 다양한 조건에 의한 CDC 매커니즘 구현 가능
③ 협력사, 파트너, 고객과의 상호 협력 프로세스 연계 발전 기반 확보
④ 그룹 및 지주 회사 계열들 간 상호 관련 데이터 동기화 등을 위한 데이터 표준화 기반 확보

정답
해설
EAI의 활용 효과

  • 정보 시스템 개발 및 유지 보수비용 절감
  • 기업 정보 시스템의 지속적 발전 기반 확보
  • 협력사, 파트너, 고객과의 상호 협력 프로세스 연계
  • 웹 서비스 등 인터넷 비즈니스를 위한 기본 토대 확립
  • 지역적으로 분리되어 있는 정보 시스템들 간의 데이터 동기화
  • 그룹 및 지주 회사 계열들 간 상호 관련 데이터 동기화 등을 위한 데이터 표준화 기반 확보

⚑ 문제2

CDC(Change Data Capture) 구현 방식에 대한 설명으로 옳지 않은 것은?
① Status on Rows는 타임스탬프 및 버전 넘버 기법에 대한 보완 용도로 활용될 수는 없다.
② Event Programming은 어어플리케이션 개발 부담과 복잡도를 증가시키나, 다양한 조건에 의한 CDC 매커니즘을 구현할 수 있는 기법이다.
③ Log Scanner on Database 기법을 이용하면 트랜잭션 무결성에 대한 영향도를 최사ㅗ화할 수 있다.
④ Version Numbers on Rows를 활용하면 일반적으로 레코드들의 최신 버전을 기록, 관리하는 참조 테이블을 함께 운영한다.

정답
해설
Status on Rows는 ~시간에 ~상태였다는 것을 Row마다 기록하는 것이므로 타임스탬프 및 버전 넘버 기법에 대한 보완 용도로 활용될 수 있다.

⚑ 문제3

다음 중 비정형 데이터 처리 기술에 대한 설명으로 부적절한 것은?
① 데이터 연동에 있어서 관계형 DB에서 하둡으로 데이터를 옮기는 것은 가능하지만 하둡에서 관계형 DB로 데이터를 옮기는 것은 불가능하다.
② YARN은 맵리듀스의 단점을 극복하기 위해 시작되었고, 분산 어플리케이션을 구현하기 위한 차원 관리 프레임워크를 지원한다.
③ 워크플로우 관리에는 Oozie, Azkaban 등의 기술이 사용된다.
④ Flume-NG, Kafka 등은 대표적인 비정형 데이터 수집 기술이다.

정답
해설
데이터 연동(Sqoop)에 있어서 관계형 DB에서 하둡으로 데이터를 옮기는 것(Import)도 가능하고, 하둡에서 관계형 DB로 데이터를 옮기는 것(Export)도 가능하다.

⚑ 문제4

CDC(Change Data Capture)의 구현 기법 중 Log Scanner on Database 방식의 특징 중 옳지 않은 것은?
① 데이터베이스에 대한 영향도 최소화
② 변경 식별 지연시간 최소화
③ 시스템 관리 복잡도를 증가
④ 데이터베이스 스키마 변경 불필요

정답
해설
Log Scanner on Database 방식의 특징(장점)

  • 데이터베이스와 사용 어플리케이션에 대한 영향도 최소화
  • 변경 식별 지연시간 최소화
  • 트랜잭션 무결성에 대한 영향도 최소화
  • 데이터베이스 스키마 변경 불필요

⚑ 문제5

다음 중 하둡 에코시스템의 구성요소와 그에 해당하는 설명을 짝지은 것으로 옳지 않은 것은?
① Oozie는 하둡 작업을 관리하는 워크플로우 및 코디네이터 시스템이다.
② Hive는 하둡 기반의 데이터 웨어하우스이며, 테이블 단위의 데이터 저장과 SQL 쿼리를 지원한다.
③ Chukwa는 분산 환영에서 생성되는 데이터를 HDFS에 안정적으로 저장시키는 플랫폼이다.
④ Scribe는 Sqoop과 같은 대용량 데이터 전송 솔루션으로 하둡에서 데이터를 가져오기 위한 SQL을 지정할 수 있다.

정답
해설
④는 Hiho에 관한 설명이다. Scribe는 페이스북에서 개발된 데이터 수집 플랫폼으로 Chukwa와 달리 중앙집중 서버로 데이터를 전송한다.

⚑ 문제6

다음 중 기업 정보 시 스템들의 데이터를 연계, 통합하는 소프트웨어 및 정보 시스템 아키텍처 프레임워크인 EAI에 대한 설명으로 옳지 않은 것은?
① EAI는 미들웨어(Bus)를 이용하여 서비스 중심으로 시스템을 유기적으로 연계한다.
② EAI를 도입하면 글로벌 경영 환경에 적합한 데이터 표준화 기반을 정립할 수 있다.
③ Meditation 구현은 Publish/subscribe Model에 해당한다.
④ 다양한 형태로 산재되어 있는 어플리케이션을 프로세스 및 메시지 차원에서 통합/관리한다.

정답
해설
EAI vs ESB

  • EAI는 미들웨어(Hub)를 이용하여 비즈니스 로직을 중심으로 시스템을 유기적으로 연계한다.
  • ESB는 미들웨어(Bus)를 이용하여 서비스 중심으로 시스템을 유기적으로 연계한다.

⚑ 문제7

다음 중 하둡 에코시스템을 구성하는 다양한 기술과 그에 해당하는 설명으로 적절하지 않은 것은?
① 스쿱(Sqoop)은 하둡과 데이터베이스 간의 데이터 연동 솔루션으로 오픈소스이다.
② Pig는 Pig Latin 언어를 제공하지만 복잡한 MapReduce 프로그래밍을 대체하지는 못한다.
③ Flume은 소스서버에 에이전트가 설치되고, 에이전트로부터 데이터를 전달받는 콜렉터로 구성된다.
④ Mahout는 하둡 기반으로 데이터 마이닝 알고리즘을 구현한 오픈 소스 라이버르리에 해당한다.

정답
해설
Pig는 Pig Latin 언어를 제공하여 복잡한 MapReduce 프로그래밍을 대체한다.

  • Pig Latin을 이용하면기존 100줄의 코드를 10~20줄로 대체할 수 있다.

⚑ 문제8

SQL on Hadoop 기술에 대한 설명 중 옳지 않은 것은?
① 하둡에 저장된 대용량 데이터를 대화형식의 SQL 질의를 통해서 처리하고 분석하는 기술이다.
② 임팔라는 하둡과 Hbase에 저장된 데이터를 대상으로 SQL 질의를 할 수 있다.
③ 호튼웍스에서 개발한 아파치 스팅거(Stinger)는 하이브 코드를 최대한 이용하여 성능을 개선하는 방식으로 개발되었다.
④ SQL on Hadoop 원조 기술은 구글에서 개발한 빅테이블이다.

정답
해설

  • SQL on Hadoop 원조 기술은 임팔라이다.
  • 구글에서 개발한 빅테이블은 NoSQL 기술이다.

⚑ 문제9

클라우드 컴퓨팅의 기반이 되는 인프라 기술인 가상화에 대한 설명 중 옳지 않은 것은?
① 최근에는 CPU 제조업체에서도 하드웨어 가상화 기술을 지원하는 등 새로운 가상화 방법이 계속 나오고 있기 때문에 서버 가상화 기술을 정확하게 분류하기는 힘들다.
② 컨테이너 기반 가상화 방식에서 가상화를 지원하는 계층을 하이퍼바이저라고 한다.
③ 서버 가상화는 물리적인 서버와 운영체제 사이에 적절한 계층을 추가해 서버를 사용하는 사용자에게 물리적인 자원은 숨기고 논리적인 자원만을 보여주는 기술이다.
④ 완전가상화는 어떠한 운영체제라도 수정하지 않은 채 설치가 가능하다.

정답
해설

  • 컨테이너 기반 가상화 방식에서 가상화를 지원하는 계층은 가상 운영환경이라고 부른다.
  • 하이퍼바이저
    • 호스트 컴퓨터엑서 다수의 운영체제를 동시에 실행하도록 하기 위한 논리적인 플랫폼을 의미한다.
    • 물리적 서버 위에 존재하는 가상활 레이어를 통해 운영체제를 수행하는데 필요한 하드웨어 환경을 가상으로 만들어준다.
profile
Data + Math

0개의 댓글