츄르사려고 코딩하는 코집사입니다.
1. EAI(Enterprise Application Integration)
- 비즈니스 프로세스를 중심으로 기업 내 각종 애플리케이션간의 상호연동이 가능하도록 통합하는 솔루션
- 데이터를 연계함으로 동기화가 되어 동작하도록 하는 것
- 애프리케이션을 프로세스 및 메시지 차원에서 통합 및 관리
- 비즈니스 프로세스를 자동화하고 실시간으로 통합 연계
- 배치 프로세스 중심
- 실시간 혹은 근접 실시간 처리 중심
2. 데이터 연계방식
1) 기존 : Point to Point
- 복잡성이 발생
- 기준 마스터 데이터의 통합과 표준화 불가능
- 복잡한 데이터 연계 경로 발생으로 유지보수성 저하 및 관리 비용 상승
- N개의 연결 대상 노드들이 있으면 연결은 N(N-1) / 2 이다.
2) EAI 연계방식 : Hub and Spoke
- 가운데 지점에 허브를 두어 연결 대상 노드들의 데이터 연계 요구를 중계하여 노드간 연결 개수 및 구조를 단순화
- EAI는 다수 정보 시스템의 데이터를 중앙의 Hub가 연계하고 통합하는 기법
- 각 연결의 대상이 되는 노드들은 Spke에 해당
3. EAI 구성요소
1) 어댑터(Adapter)
- 각 정보 시스템과 EAI 허브 간의 연결성 확보
2) 버스(BUS)
- 어댑터를 매개로 연결된 각 정보 시스템들 간의 데이터 연동 경로
3) 브로커(Broker)
- 데이터 연동 규칙 통제
4) 트랜스포머(Transformer)
- 데이터 형식 변환 담당
4. EAI 구현
1) Mediation(intra-communication)
- EAI 엔진 중개자로 동작
- 특정 정보 시스템 내의 데이터 신규 생성 및 갱신, 신규 트랜잭션 완료 등 이벤트 발생을 식별하여 미리 약속된 정보 시스템에 해당 내용 전달
- Publish / subscribe Model
2) Federation(inter-communication)
- EAI 엔진이 외부 정보 시스템으로부터 데이터 요청들을 일괄적으로 수령해 필요한 데이터 전달
- Request / reply Model
5. EAI 활용 효과
- 정보 시스템 개발 및 유지 보수비용 절감
- 기업 정보 시스템의 지속적 발전 기반 확보
- 상호 협력 프로세스 연계
- 기본 토대 확립
- 데이터 표준화 기반 제공
6. EAI와 ESB
EAI (Enterprise Application Integration) |
ESB (Enterprise Service Bus) |
|
기능 | 허브를 이용하여 비즈니스 로직을 중심으로 어플리케이션 통합 및 연계 | 버스를 이용하여 서비스 중심으로 시스템을 유기적으로 연계 |
통합관점 | 어플리케이션 | 프로세스 |
로직연동 | 개별 어플리케이션에서 수행 | ESB에서 수행 |
아키텍처 | 단일 접점인 허브시스템을 이용한 중앙집중식 연결구조 | 버스 형태의 느슨하고 유연한 연결구조 |
7. 로그(Log)
- 기업에서 발생하는 대표적인 비정형 데이터
- 용량이 방대하여 고성능과 확장성을 가진 시스템 필요
- 아파치 Flume-NG, Scribe, Chukwa 등
8. 대용량 비정형 데이터 수집 시스템 특징
1) 초고속 수집 성능과 확장성
- 쉽게 확장할 수 있는 구조
2) 데이터 전송 보장 메커니즘
3) 다양한 수집과 저장 플러그인
4) 인터페이스 상속을 통한 애플리케이션 기능 확장
9. 하둡
- 맵리듀스 시스템과 분산파일시스템인 HDFS를 핵심 구성요소로 가지는 플랫폼 기술
- 비공유 분산 아키텍처를 사용
- 대규모 분산병렬처리 플랫폼
- 서버의 대수에는 제한이 없고 통상적으로 최소 클러스터 대수는 5대
- 서버를 추가하면 연산 기능과 저장 기능이 비례하여 증가
- HDFS에 저장되는 데이터는 3중복제가 되어 데이터 유실 방지
- 맵리듀스 작업 수행 중 특정 태스크에 장애가 생기면 장애가 발생한 특정 태스크만 다른 서버에서 재실행 할 수 있음
- 맵리듀스는 맵과 리듀스라는 2개의 함수만 구현
10. 스쿱(Sqoop)
- 하둡과 데이터베이스간의 데이터 연동 솔루션
- 오라클, MySQL, PostgreSQL 등 JDBC를 지원하는 관계형 데이터베이스와의 연동 지원
- Hbase와 같은 일부 NoSQL DB와도 연동 가능
- 데이터의 이동을 맵리듀스를 통해 처리하여 장애 허용 능력과 병렬 처리 기능 제공
- Import 명령어를 이용하여 RDBMS의 데이터를 HDFS로 옮긴다. RDBMS -> HDFS
- Export 명령어를 이용하여 HDFS 데이터를 RDBMS로 옮긴다. HDFS -> RDBMS
11. 구글 파일 시스템(Google File System, GFS)
- 구글의 대규모 클러스터 서비스 플랫폼의 기반이 되는 파일 시스템
- 파일을 고정된 크기의 청크들로 나누고, 각 청크에 대해 여러 개의 복제본과 청크서버에 분산 및 저장
- 청크는 마스터에 의해 생성 및 삭제 될 수 있으며, 유일한 식별자에 의해 구별
- 청크 고정크기 64MB
12. 하둡 분산 파일 시스템(HDFS, Hadoop Distributed File System)
- HDFS는 하나의 네임노드와 다수의 데이터노드로 구성
- HDFS에서 블록 단위로 나뉘어 여러 데이터노드에 분산, 복제, 저장
- HDFS에서 파일은 한 번 쓰이면 변경되지 않는다고 가정
- HDFS는 순차적 스트리밍 방식으로 파일 저장 및 조회
- 배치 작업에 적합하도록 설계
- 낮은 데이터 접근 지연 시간보다 높은 데이터 처리량에 중점
- 통신을 위해 TCP/IP에서 RPC를 사용
13. 네임노드(NameNode)
- HDFS 상의 모든 메타데이터를 관리
- 마스터 슬레이브 구조에서 마스터의 역할
- 시스템 전반의 상태를 모니터링
14. 데이터노드(DataNode)
- HDFS의 슬레이브 노드
- 클라이언트로부터의 데이터 입출력 요청 처리
- 데이터의 유실을 방지하기 위해 블록을 3중 복제하여 저장
- 체크섬 정보를 별도로 저장
- 데이터노드의 상태를 나타내는 하트비트와 자신이 관리하는 블록의 목록인 blockreport를 네임노드에게 전송
15. 데이터베이스 클러스터
- 하나의 데이터베이스를 여러 개의 서버상에 구축하는 것
16. 데이터베이스 파티셔닝
- 데이터베이스를 여러 부분으로 분할하는 것을 의미
- 분할된 각 요소는 파티션이라고 함
- 각 파티션은 여러 노드로 분할 배치되어 여러 사용자가 각 노드에서 트랜잭션을 수행
- 데이터를 통합할 때, 성능과 가용성의 향상을 위해 데이터베이스 차원의 파티셔닝 또는 클러스터링을 이용
1) 데이터베이스 파티셔닝 구현의 효과
- 병렬처리 : 파티션 사이의 병렬 처리를 통한 빠른 데이터 검색 및 처리 성능을 얻을 수 있음
- 고가용성 : 특정 파티션에서 장애가 발생하더라도 서비스가 중단되지 않음
- 성능향상 : 성능의 선형적인 증가 효과를 볼 수 있음
17. 데이터베이스 클러스터
1) 무공유디스크
- 노드 확장에 제한이 없음
- 각 노드에 장애가 발생할 경우를 대비해 별도의 폴트톨러런스를 구성해야 한다
2) 공유 디스크
- 높은 수준의 폴트톨러런스를 제공하므로 클러스터를 구성하는 노드 중 하나의 노드만 살아 있어도 서비스 가능
- 클러스터가 커지면 디스크 영역에서 병목현상 발생
18. 데이터베이스 클러스터 종류
1) Oracle RAC 데이터베이스 서버
- 공유 클러스터
- 클러스터의 모든 노드에서 실행되며 데이터는 공유 스토리지에 저장
- 모든 노드는 데이터베이스의 모든 테이블에 동등하게 액세스
- 특정 노드가 데이터를 소유하는 개념이 없음
- 가용성, 확장성, 비용 절감
2) IBM DB2 ICE(Integrated Cluster Environment)
- DB2는 CPU, 메모리, 디스크를 파티션별로 독립적으로 운영하는 무공유 방식의 클러스터링 지원
- 데이터가 어느 파티션에 존재하고 있는지 알 필요 없음
- 데이터를 재분배함으로 시스템의 성능과 용량을 일정하게 유지할 수 있음
19. 페일오버(failover)
- 데이터베이스의 최신 버전을 백업해두어, 1차 시스템에 장애가 발생하였을 경우 대체 시스템을 작동시켜 장애를 극복하는 기능
20. SQL Server
- 연합 데이터베이스 형태로 여러 노드로 확장할 수 있는 기능 제공
- 페일오버에 대해서 별도로 구성해야 함
- 노드의 개수가 작으면 간단하게 구성 가능
- Active-Standby 방법 사용
21. MySQL
- MySQL 클러스터는 비공유형으로 메모리기반 데이터베이스 클러스터링 지원
- 병렬 서버구조로 확장 가능
- 클러스터에 참여하는 노드 수는 255로 제한
- 데이터 노드는 최대 48개만 가능
1) 관리 노드
- 클러스터를 관리하는 노드로 클러스터 시작과 재구성 시에만 관여
2) 데이터 노드
- 클러스터의 데이터를 저장하는 도그
3) MySQL 노드
- 클러스터 데이터에 접근을 지원하는 노드
22. NoSQL
- 빅데이터 분산처리 및 저장기술과 함께 발달된 분산 데이터베이스 기술로 확장성, 가용성, 높은 성능을 제공
- 비관계형 데이터베이스 관리 시스템
- key-value 모델, Document 모델, Graph 모델, Column 모델로 구분
- key-value 형태로 자료를 저장하고, 빠르게 조회할 수 있는 자료 구조를 제공
- 대부분 오픈소스
- 구글 빅테이블, 아파치 Hbase, 아마존 simpleDB 등
23. 구글 빅테이블
- NoSQL 한 종류
- 구글의 대용량의 데이터를 저장하기 위해 개발한 분산 데이터 관리 저장소
- 구글 클라우드 플랫폼에서 데이터 저장소로 사용
- 공유디스크 방식
- 테이블 내의 모든 데이터는 row-key의 사전적 순서로 정렬 및 저장
- row는 n개의 column-family를 가질 수 있음
- column-key에 대해 타임스탬프가 다른 여러 버전의 값이 존재할 수 있음
- 정렬 기준은 rowkey + column-key + timestamp
- 장애가 발생할 경우 tablet을 다른 노드로 재할당
24. HBase
- 하둡 분산 파일 시스템을 기반으로 구현된 칼럼 기반의 분산 데이터베이스
- 관계형 구조가 아니고, SQL을 지원하지 않음
- 구조화된 데이터보다는 비구조화된 데이터에 적합
- 대규모의 데이터에서 실시간 읽기 및 쓰기 작업이 필요할 때 사용
- 수평적으로 확장성이 있어 큰 테이블에 적합
25. 아마존 SimpleDB
1) 도메인
- 관계형 데이터베이스의 테이블과 동일한 개념
2) Item
- 레코드와 동일한 개념
3) Attribute
- 칼럼과 동일한 개념
'자격증 > ADP' 카테고리의 다른 글
[ADP] 필기 오답 (0) | 2021.05.14 |
---|---|
[ADP] 필기 4과목 데이터 분석 개요 요약 - 1 (0) | 2021.05.14 |
[ADP] 필기 2과목 데이터 처리 기술의 이해 요약 - 2 (0) | 2021.05.13 |
[ADP] 필기 2과목 데이터 처리 기술의 이해 요약 - 1 (0) | 2021.05.13 |
[ADP] 필기 1과목 데이터의 이해 요약 - 2 (0) | 2021.05.13 |
[ADP] 필기 1과목 데이터의 이해 요약 - 1 (0) | 2021.05.10 |
최근댓글