1장
1절. ETL
- ETL(Extraction Transformation Load)
- 단계: Staging - Profiling - Cleansing - Integration - De-Normalizing
- ODS(Operational Date Store)
- 정의: 실시간 또는 실시간 근접
- 데이터 웨어하우스
- 정의: ODS를 통해 정제 및 통합된 데이터가 분석과 보고서 생성을 위해 적재되는 데이터 저장소
- 특징: 주제 중심성, 비휘발성, 통합성, 시계열성
- 테이블 모델링 기법
- 스타 스키마
- 정의: 조인 스키마라고도 하며 데이터 웨어하우스 중 가장 단순함
- 장점: 이해하기 쉬움
- 단점: 데이터 중복
- 스노우 플레이크 스키마
- 정의: 스타 스키마 차원 테이블을 제 3정규형으로 정규화
- 장점: 중복 제거
- 단점: 조인 테이블 개수 증가
- 스타 스키마
2절. CDC
- CDC(Change Data Capture)
- 정의: 데이터 변경을 식별해 후속 처리를 자동화하는 기법
- 구현기법
- Time Stamp on Rows: 테이블 내 마지막 변경 시점 기록
- Version Numbers on Rows: 테이블 해당 레코드의 버전 기록
- Status on Rows: 타임스탬프 및 버전 넘버를 보완하며, 변경여부를 불린값으로 저장하여 기록
- Time/Version/Status on Rows: 세 가지 모두 활용
- Triggers on Tables: 데이터베이스 트리거를 활용
- Event Programming: 데이터 변경 식별 기능을 구현
- Log Scanner on Database: 트랜잭션 로그에 대한 스캐닝
- 구현방식
- PUSH: 원천에서 변경을 식별하고 대상 시스템에 변경 데이터를 적재해 주는 방식
- PULL: 시스템에서 원천을 정기적으로 살펴보고 필요시 데이터를 다운로드하는 방식
3절. EAI
- EAI(Enterprise Application Integration)
- 정의: 기업 정보 시스템을 통합
- 특징: 실시간 혹은 근접 실시간 처리 중심
- 데이터 연계 방식: Hub and Spoke
- 데이터 연계방식
- Point to Point: 기존의 방식
- Hub and Spoke: 가운데 지점에 허브 역할을 하는 브로커를 둔 중앙집중식 연결구조
4절. 대용량 비정형 데이터 처리
- 로그
- 정의: 기업에서 발생하는 대표적인 비정형 데이터
- 시스템 예시: 아파치 Flume-NG, 페이스북 Scribe, 아파치 Chukwa
- 하둡(Hadoop)
- 정의: 대규모 병렬 처리의 업계 표준인 맵리듀스 시스템과 분산 파일시스템인 HDFS를 핵심 구성요소로 가지는 플랫폼 기술
- 특징
- 비공유 분산 아키텍처
- 서버를 추가하면 연산 기능과 저장 기능이 서버의 대수에 비례하여 증가
- 3중 복제되어 데이터 유실 방지
- 맵과 리듀스라는 2개의 함수만 구현
- 풍부한 에코시스템 형성
- 스쿱(Sqoop)
- 정의: 하둡 분산 파일시스템(HDFS)과 데이터베이스 간의 데이터 연동 솔루션
- 특징: Import로 RDBMS에서 HDFS로, Export로 HDFS에서 RDBMS로 이동
- 대용량 질의기술
- 하이브: 복잡한 코딩이 필요한 하둡의 한계를 보완한 SQL 질의 기술
- SQL on 하둡기술
- 아피치 스틸거
- 아피치 타조
- 아피치 드릴
- 샤크
- 프레스토
- 호크
- 임팔라
2장
1절. 분산 데이터 저장
- 분산 파일 시스템
- 구글 파일시스템(GFS; Google File System)
- 특징
- 구글의 대규모 클러스터 서비스의 기반이 되는 파일 시스템
- 파일을 고정된 크기의 청크(chunk)로 나누고, 각 청크에 대한 복제본과 청크를 청크서버에 분산저장
- 트리 구조가 아닌 해시 테이블 구조를 사용하여 효율적인 메타데이터 처리
- 청크는 마스터에 의해 생성 및 삭제 가능
- 가정
- 서버의 고장이 빈번히 발생할 수 있음
- 대부분의 파일은 대용량이라고 가정
- 파일에 대한 쓰기 연산은 주로 순차적으로 이뤄지며, 파일에 대한 갱신은 드물게 일어남
- 낮은 응답 지연 시간보다 높은 처리율이 더 중요
- 특징
- 하둡 분산 파일시스템(HDFS; Hadoop Distributed File System)
- 네임노드: 메타데이터 관리
- 데이터노드: 슬레이브 노드로 데이터 입출력 처리, 유실 방지를 위해 3중 복제하여 저장
- 보조네임노드: 모니터링 보조
- 러스터(Lustre)
- 정의: 클러스터 파일 시스템에서 개발한 객체 기반의 클러스터 파일 시스템
- 구성요소
- 클라이언트 파일 시스템
- 메타데이터 서버
- 객체 저장 서버
- 구글 파일시스템(GFS; Google File System)
- 데이터베이스 클러스터
- 정의: 하나의 데이터베이스 차원의 파티셔닝 또는 클러스터링
- 파티셔닝: 병렬처리, 고가용성(특정 파티션에서 장애가 발생해도 다른 서비스가 중단되지 않음), 성능향상
- 구분
- 무공유 디스크
- 완전히 분리된 데이터의 서브 집합에 대한 소유권 가짐
- 로컬 디스크에 저장하여 노드 간 공유하지 않음
- Oracle RAC 제외 대부분의 데이터베이스 채택방식
- 공유 디스크
- 각 인스턴스는 모든 데이터에 접근 가능
- 높은 수준의 폴트톨러런스(fault-tolerance)를 제공
- 클러스터 구성노드 중 하나만 살아있어도 서비스 가능
- 클러스터 커지면 병목현상 발생
- 무공유 디스크
- NoSQL
- 정의: 분산 데이터베이스 기술로 비관계형 데이터베이스 관리 시스템
- 특징: Not only SQL로 SQL계열 쿼리 언어 사용 가능
- 구조: key-value 모델, Document 모델, Graph 모델, Column 모델
- 종류
- 구글 빅테이블: 공유 디스크 방식
- HBase: 하둡 분산 파일시스템(HDFS) 기반으로 구현된 수평적인 칼럼 기반 분산 데이터베이스
- 아마존 SimpleDB: 아마존의 데이터 서비스 플랫폼으로 실시간 처리 지원하며, Domain, Item, Attribute, Value로 구성
- 마이크로소프트 SSDS: 마이크로소프트 데이터 서비스로 고가용성 보장하며, 컨테이너와 엔티티로 구성
2절. 분산 컴퓨팅 기술
- MapReduce
- 정의: 구글에서 분산 병렬 컴퓨팅을 이용하여 대용량 데이터를 처리하기 위함
- 특징: Map Task 하나가 1개의 블록을 대상으로 연산 수행
- Hadoop MapReduce
- 아키텍쳐
- 네임노드: 네임 스페이스를 관리하는 마스터 역할
- 데이터노드: 데이터 입출력에 대한 처리 수행
- 잡트래커: job이라는 작업을 관리하는 마스터에 해당
- 태스크트래커: 작업을 수행하는 워커 데몬
- 실행절차: 스플릿(Split) - 맵(Map) - 컴바인(Combine) - 셔플(Shuffle) - 정렬(Sort) - 리듀스(Reduce)
- 아키텍쳐
- 병렬 쿼리 시스템
- 정의: 직접 코딩해야하는 구글 및 하둡 MapReduce의 한계를 쿼리 인터페이스로 보완하여 추상화된 병렬 처리함
- 종류
- 구글 Sawzall: 최초의 스크립트 형태 병렬 쿼리 언어
- 아파치 Pig: 야후에서 개발한 오픈소스, 하둡 MapReduce 하에서 동작
- 아파치 Hive: 페이스북에서 개발한 데이터 웨어하우징 인프라로 맵리듀스의 모든 기능 지원
- SQL on 하둡
- 정의: 하둡에 저장된 대용량 데이터를 대화 형식의 실시간 SQL 질의를 통해 처리
- 특징: 하둡의 한계를 보완하기 위한 실시간 처리
- 임팔라
- 분석과 트랜잭션 처리 모두 지원
- C++ 언어 사용
- MapReduce 사용하지 않음
- 구성요소: 클라이언트, 메타스토어, 임팔라 데몬, 스테이트 스토어, 스토리지
3절. 클라우드 인프라 기술
- 클라우드 컴퓨팅
- 정의: 동적으로 확장할 수 있는 가상화 자원들을 인터넷으로 서비스
- 서버 가상화
- 정의: 물리적인 자원은 숨기고 논리적인 자원만 보여주는 기술
- 효과
- 가상머신 사이의 데이터 보호
- 예측하지 못한 장애로부터 보호
- 공유 자원에 대한 강제 사용의 거부
- 서버 통합
- 자원 할당에 대한 증가된 유연성
- 테스팅
- 정확하고 안전한 서버 사이징
- 시스템 관리
- CPU 가상화
- 하이퍼바이저: 가상머신으로 호스트 컴퓨터에서 다수의 운영 체제를 동시에 실행하도록 하기 위한 논리적인 플랫폼
- 가상화 방식
- 완전 가상화: 하이퍼바이저보다 우선순위가 낮은 가상머신에서 실행되지 않는 명령어에 대해 trap을 발생시켜 하이퍼바이저에서 실헹하는 방식
- 하드웨어 지원 완전 가상화: 명령을 내릴 수 있는 반가상화 수준의 성능을 발휘하도록 개선
- 반가상화: 명령어를 게스트 운영체제에서 하이퍼바이저에 전달
- Monolithic 및 Microkernel: 하드웨어에 대한 드라이버가 어느 계층에 있는지에 따라 구분
- 호스트 기반 가상화: 완전한 운영체제가 설치되고 가상화를 담당하는 하이퍼바이저가 호스트 운영체제 위에 탑재
- 컨테이너 기반 가상화: 운영체제만을 가상화한 방식으로, 가상화 지원 계층을 가상 운영환경이라 함
- 메모리 가상화
- Vmware 기법: 하이퍼바이저 내 Shadow Page Table을 별도로 두어 가상 메모리 주소와 물리 메모리 주소의 중간 변환 과정을 가로챔
- I/O 가상화
- 가상 이더넷: 물리적으로 존재하지 않는 자원을 만들어 내는 emulation 기능 사용
- 공유 이더넷 어댑터: 여러 개의 가상머신이 물리적인 네트워크 카드 공유
- 가상 디스크 어댑터: 가상머신이 디스크 자원을 획득
'ADP' 카테고리의 다른 글
ADP 서술형 (0) | 2022.11.09 |
---|---|
ADP 4과목 (0) | 2022.11.09 |
ADP 3과목 (0) | 2022.11.09 |
ADP 모의고사 1회 오답 (0) | 2022.11.09 |
ADP 5과목 (0) | 2022.11.09 |