반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


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개의 함수만 구현

https://blrunner.tistory.com/99

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

- 칼럼과 동일한 개념

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기