KR102507481B1 - 동적 클러스터링 기반의 etl job 분산 처리 시스템 및 방법 - Google Patents
동적 클러스터링 기반의 etl job 분산 처리 시스템 및 방법 Download PDFInfo
- Publication number
- KR102507481B1 KR102507481B1 KR1020220155678A KR20220155678A KR102507481B1 KR 102507481 B1 KR102507481 B1 KR 102507481B1 KR 1020220155678 A KR1020220155678 A KR 1020220155678A KR 20220155678 A KR20220155678 A KR 20220155678A KR 102507481 B1 KR102507481 B1 KR 102507481B1
- Authority
- KR
- South Korea
- Prior art keywords
- cluster
- node
- leader node
- clustering
- cluster leader
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 23
- 238000000034 method Methods 0.000 title claims description 22
- 239000000284 extract Substances 0.000 claims abstract description 11
- 238000003672 processing method Methods 0.000 claims abstract description 6
- 230000004044 response Effects 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 3
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Environmental & Geological Engineering (AREA)
- Hardware Redundancy (AREA)
Abstract
본 발명의 실시예에 따른 동적 클러스터링 기반의 ETL JOB 분산 처리 방법은 클러스터 리더 노드가 소스 DB에서 데이터를 추출하는 단계와, 클러스터 리더 노드가 추출한 데이터를 바탕으로 ETL(Extract, Transform, Load) 작업을 수행하는 ETL JOB을 다수개의 클러스터 일반 노드들에 분배하는 단계와, 다수개의 클러스터 일반 노드들이 클러스터 리더 노드의 호출에 의해 ETL JOB을 처리하는 단계 및 클러스터 리더 노드와 다수개의 클러스터 일반 노드들이 처리한 ETL JOB을 타겟 DB에 적재하는 단계를 포함하는 것을 특징으로 하는 동적 클러스터링 기반의 ETL JOB 분산 처리 방법.
Description
본 발명은 동적 클러스터링 기반의 ETL JOB 분산 처리 시스템 및 방법에 관한 것으로, 특히 다중화 ETL 시스템을 구성하여 가용 리소스를 100% 사용하고, 다중화 ETL 시스템 구성에도 동적으로 고가용성 클러스터 지원으로 H/A(High availability cluster) 구성은 물론 확장성까지 보장할 수 있는 동적 클러스터링 기반의 ETL JOB 분산 처리 시스템 및 방법에 관한 것이다.
ETL(Extract, Transform, Load)은 데이터가 추출, 변환, 로드되는 3단계 프로세스로서, ETL 소프트웨어는 전체 프로세스를 자동화하며 수동으로 실행하거나 반복되는 일정에 따라 일괄 작업으로 처리 할 수 있다.
일반적으로 ETL 시스템은 단독으로 운영되거나, Active-Standby 이중화 방식으로 H/A(High availability cluster) 서비스를 지원한다. 이 때 한 대는 실제 ETL을 처리하기 위한 Active 상태, 나머지 한 대는 Standby 상태로 구성되며, Active 서버 장애 시 고가용성 소프트웨어(이중화 솔루션)에 의해 Standby 서버가 Active 모드로 가동되어 ETL을 처리한다.
이러한 Active-Standby 이중화 방식은 구성 특성상 가용 리소스가 50%로 제한되는 한계를 가지고 있다.
선행기술로는 국내등록특허 제10-1806497호(ETL 잡 프로세스를 분산 수행하기 위한 미들웨어 장치 및 그 방법)가 있으나, ETL JOB 분산 수행을 위한 별도의 서버(ETL JOB 분산 관리 서버)를 구성하고, 해당 서버를 이용하여 다수의 ETL 서버에 JOB을 배부하는 형태의 시스템 구성을 지원하지만, 이는 H/A 구성이 아니라 JOB 분산 처리 기능에 초점을 맞춘 변형된 구조일 뿐이다. 만일 'ETL JOB 분산 관리 서버' 장애가 발생한다면 JOB을 배분하지 못하여 ETL 기능을 수행할 수 없다.
특히 2대 이상의 Active/Active 다중화 ETL 시스템 구성을 위해서는 소프트웨어 설계 단계에서부터 다중 시스템 구성, 데이터 공유 및 통신, 노드 관리, 디버깅 및 모니터링 등 기능 요구 사항이 충족되도록 아키텍처 디자인 시 고려되어야 한다.
본 발명이 해결하고자 하는 과제는 특히 다중화 ETL 시스템 구성 환경에서 동적으로 고가용성 클러스터 지원 H/A(High availability cluster) 은 물론 가용 리소스를 100% 사용 가능하도록 확장성까지 보장할 수 있는 동적 클러스터링 기반의 ETL JOB 분산 처리 시스템 및 방법을 제공하는 데 있다.
본 발명의 실시예에 따른 동적 클러스터링 기반의 ETL JOB 분산 처리 방법은 클러스터 리더 노드가 소스 DB에서 데이터를 추출하는 단계와, 클러스터 리더 노드가 추출한 데이터를 바탕으로 ETL(Extract, Transform, Load) 작업을 수행하는 ETL JOB을 다수개의 클러스터 일반 노드들에 분배하는 단계와, 다수개의 클러스터 일반 노드들이 클러스터 리더 노드의 호출에 의해 ETL JOB을 처리하는 단계 및 클러스터 리더 노드와 다수개의 클러스터 일반 노드들이 처리한 ETL JOB을 타겟 DB에 적재하는 단계를 포함한다.
본 발명의 실시예에 따른 동적 클러스터링 기반의 ETL JOB 분산 처리 시스템은, 소스 DB에서 추출한 데이터를 수신하여 다수개의 클러스터 일반 노드들에 ETL(Extract, Transform, Load) 작업을 수행하는 ETL JOB을 분배하는 클러스터 리더 노드와, 클러스터 리더 노드의 호출에 의해 ETL JOB을 처리하는 다수개의 클러스터 일반 노드들 및 클러스터 리더 노드와 다수개의 클러스터 일반 노드들이 처리한 ETL JOB을 저장하는 Repository DB를 포함한다.
본 발명에 의하면 다중화 ETL 시스템을 구성하여 가용 리소스를 100% 사용할 수 있다.
또한, 다중화 ETL 시스템 구성에도 동적으로 고가용성 클러스터 지원으로 H/A(High availability cluster) 구성은 물론 확장성까지 보장할 수 있다,
도 1은 본 발명의 실시예에 따른 동적 클러스터링 기반의 ETL JOB 분산 처리 방법을 설명하는 흐름도이다.
도 2는 본 발명의 실시예에 따른 클러스터 리더 노드 장애 시 클러스터 리더 노드 자동 재선출 방법을 설명하는 흐름도이다.
도 3은 본 발명의 실시예에 따른 동적 클러스터링 기반의 ETL JOB 분산 처리 시스템의 모식도이다.
도 4는 본발명의 실시예에 따른 동적 클러스터링 기반의 ETL JOB 분산 처리 시스템을 설명하는 구성도이다.
도 2는 본 발명의 실시예에 따른 클러스터 리더 노드 장애 시 클러스터 리더 노드 자동 재선출 방법을 설명하는 흐름도이다.
도 3은 본 발명의 실시예에 따른 동적 클러스터링 기반의 ETL JOB 분산 처리 시스템의 모식도이다.
도 4는 본발명의 실시예에 따른 동적 클러스터링 기반의 ETL JOB 분산 처리 시스템을 설명하는 구성도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
클라우드란 데이터를 인터넷과 연결된 중앙컴퓨터에 저장해서 인터넷에 접속하기만 하면 언제 어디서든 데이터를 이용할 수 있는 것으로 클라우드 컴퓨팅은 IT 리소스를 인터넷을 통해 온디맨드로 제공하고 사용한 만큼만 비용을 지불하는 것을 말하며, 클라우드 서비스 종류에는 크게 Iaas(인프라), Pass(플랫폼), Saas(소프트웨어)가 있다.
가용성(Availability)이란 서버와 네트워크, 프로그램 등의 정보 시스템이 정상적으로 사용가능한 정도를 말한다. 가용성을 수식으로 표현할 경우 가용성이란 정상적인 사용시간(Uptime)을 전체 사용시간 (Uptime + Downtime)으로 나눈 값을 말한다. 가용성이 높은 것을 고 가용성 (HA, High Availability)라 한다.
확장성(Scalability)는 IT시스템에서 대규모적인 재설계 및 재설치가 필요없이 확장이 얼마나 쉽고 가능한지에 대한 용이성을 뜻한다. 서비스 시스템에서는 고가용성과 확장성에 대한 검토가 필요하며, 특히 고객의 요구에 따라 오류를 허용하고 확장할 수 있도록 서비스를 제공해야 하는 클라우드 환경에서의 서비스 시스템은 고가용성과 확장성은 필수적인 조건이다.
일반적인 클러스터링 방법은 각 노드에 클러스터링을 구성하는 노드의 정보를 각 노드가 가지고 있는 것으로, 정적 클러스터링 구성이라고 한다. 반면에 노드를 동적으로 추가해야 할 경우가 있다. 즉, 별개로 설정된 노드가 동작 중인 클러스터에 추가될 수 있으며, 이를 위해서는 동적으로 추가하고 싶은 노드에만 클러스터링에 포함되는 노드의 정보를 모두 설정하고 실행시키면 각 노드에 동적으로 기동된 노드가 연결을 시도한다. 이를 동적 클러스터링이라고 하며, 본 발명은 동적 클러스터링 기반의 ETL JOB 분산 처리 시스템 및 방법에 대한 것이다.
ETL은 Extract, Transform, Load의 약어로, ETL JOB은 ETL(Extract, Transform, Load)을 수행하기 위해 필요한 작업을 의미한다.
ETL은 Extract, Transform, Load의 약어로, ETL JOB은 ETL(Extract, Transform, Load)을 수행하기 위해 필요한 작업을 의미한다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 동적 클러스터링 기반의 ETL JOB 분산 처리 방법을 설명하는 흐름도이다.
도 1을 참조하면, 클러스터 리더 노드(100)가 소스 DB(400)에서 데이터를 추출한다(S101). 클러스터 리더 노드(100)는 클러스터링을 위해 데이터 통신을 관리할 수 있으며, 소스 DB(400)에서 ETL(Extract, Transform, Load) 작업을 수행하는 ETL JOB을 분배할 데이터를 추출할 수 있다. 클러스터 리더 노드(100)가 추출한 데이터를 바탕으로 ETL JOB을 다수개의 클러스터 일반 노드(200)들에 분배한다(S103). 클러스터 리더 노드(100)는 작업 분배 정책 설정에 따라 ETL JOB을 다수개의 클러스터 일반 노드(200)들에 분배할 수 있으며, 사전 정의된 조건에 따라 클러스터 리더 노드(100)를 포함한 다수의 클러스터 일반 노드(200)들 중 하나를 호출하여 ETL JOB을 분배할 수 있다.
다수개의 클러스터 일반 노드(200)들이 클러스터 리더 노드(100)의 호출에 의해 ETL JOB을 처리한다(S105). 클러스터 리더 노드(100)와 다수개의 클러스터 일반 노드(200)들이 처리한 ETL JOB을 타겟 DB(500)에 적재한다(S107).
도 2는 본 발명의 실시예에 따른 클러스터 리더 노드 장애 시 클러스터 리더 노드 자동 재선출 방법을 설명하는 흐름도이다.
도 2를 참조하면, 클러스터 일반 노드(200)가 Repository DB(300)에 클러스터 리더 IP를 조회하고(S201), Repository DB(300)이 클러스터 일반 노드(200)에 클러스터 리더 IP 조회 결과를 전달한다(S203). 클러스터 일반 노드(200)가 클러스터 리더 노드(100)에 수신한 클러스터 리더 IP로 ping을 시도하고(S205), 클러스터 리더 노드(100)가 클러스터 일반 노드(200)에 클러스터 리더 IP ping 응답을 전달한다(S207). 클러스터 일반 노드(200)가 클러스터 리더 노드(100)에 클러스터 리더 IP ping을 시도할 때 3번의 재시도를 할 수 있으며, 3번의 재시도 결과 응답이 없으면 클러스터 일반 노드(200)에 '클러스터 리더 IP ping 응답 오류'라고 전달할 수 있다. 클러스터 일반 노드(200)가 클러스터 리더 노드(100)에 클러스터 리더 IP ping을 시도할 때 3번의 재시도 결과 중 응답이 있으면 클러스터 일반 노드(200)에 '클러스터 리더 IP ping 응답 오류 아님'이라고 전달할 수 있다. 상기 기재된 3번의 재시도 횟수는 일 실시예이며, 반드시 이에 한정되는 것은 아니다.
클러스터 일반 노드(200)가 수신한 클러스터 리더 IP ping 응답이 '클러스터 리더 IP ping 응답 오류'이면, 클러스터 일반 노드(200)는 Repository DB(300)에 클러스터 일반 노드(100)를 클러스터 리더 노드(100)로의 업데이트를 요청한다(S211). Repository DB(300)는 클러스터 일반 노드(200)에 클러스터 리더로 업데이트 확인한다(S213). 클러스터 일반 노드(200)는 Repository DB(300)에 클러스터 리더 노드 IP를 클러스터 일반 노드 IP로 변경 요청하고(S215), Repository DB(300)은 클러스터 일반 노드(200)에 클러스터 리더 노드 IP 변경을 확인한다(S217).
클러스터 일반 노드(200)가 클러스터 리더 노드(100)로부터 수신한 클러스터 리더 IP ping 응답이 '클러스터 리더 IP ping 응답 오류 아님'이면, 클러스터 일반 노드(200)는 클러스터 리더 노드(100)로 변경되고 클러스터 리더 노드(100)의 정상이 확인된다(S219).
도 3은 본 발명의 실시예에 따른 동적 클러스터링 기반의 ETL JOB 분산 처리 시스템의 모식도이고, 도 4는 본발명의 실시예에 따른 동적 클러스터링 기반의 ETL JOB 분산 처리 시스템을 설명하는 구성도이다.
도 3과 도 4를 참조하면, 동적 클러스터링 기반의 ETL JOB 분산 처리 시스템(10)은 클러스터 리더 노드(100), 다수개의 클러스터 일반 노드들(200a, 200b, 200N), Repository DB(300), 소스 DB(400), 타겟 DB(500)로 구성된다.
클러스터 리더 노드(100)는 클러스터링 DSM(110)과 노드 정보부(120)로 구성되며, 클러스터링 DSM(110)은 클러스터(111), 스케줄러(112), 로그 매니저(113), JOB 모니터(114), Work Bench 디자이너(115), 버전 매니저(116), 데이터 처리 엔진(117), 프레임 빌더(118), NTAS(119)로 구성된다. 이 때 DSM은 Data Sync Manager의 약어이다.
상기 클러스터(111)는 클러스터링을 위한 데이터 통신 관리, 노드 관리, 리더 선출, 분배 관리, 동기화 관리 중 적어도 하나의 기능을 할 수 있다. 클러스터(110)는 메시지 전달 및 통신 기능을 통해 데이터 통신을 관리할 수 있다. 이를 통해 L4 스위치(Layer 4 Switch)가 없는 네트워크 환경에서 전체 노드에 대한 세션 통합 관리가 가능하다. 또한 클러스터(111)는 클러스터링 노드 정보를 관리하는 기능을 통해 클러스터 일반 노드(200)의 추가, 삭제 및 장애 발생 시의 관리를 포함한 노드 관리가 가능하다. 또한 클러스터(111)는 클러스터 리더 노드(100)에 장애 발생 시 다수의 클러스터 일반 노드(200)들 중에서 리더 노드를 자동으로 재선출하는 기능을 통해 클러스터 리더 노드(100)를 선출할 수 있다.
또한 클러스터(111)는 작업 분배 정책 설정에 따라 ETL JOB을 분배할 수 있다. 이 때 클러스터(111)는 사전 정의된 조건에 따라 클러스터 리더 노드(100)를 포함한 다수의 클러스터 일반 노드(200)들 중 하나를 호출하여 ETL JOB을 분배할 수 있다. 또한 클러스터(111)는 순환 분배, 노드 평가, 서버 장애 빈도 등 단독 또는 혼합 운영 지원 기능을 수행할 수 있다. 이 때 클러스터(111)가 노드를 평가할 때 사용되는 평가 요소는 CPU 수, Memory 용량, 동시 실행 JOB 설정 개수 중 적어도 하나일 수 있으나, 반드시 이에 한정되는 것은 아니다. 또한 클러스터(111)는 클러스터 전체 노드(클러스터 리더 노드(100)와 다수의 클러스터 일반 노드(200)들)의 동기화를 통해 데이터 불일치를 방지하는 동기화 관리 기능을 수행할 수 있다.
상기 스케줄러(112)는 배치 스케줄러 기능으로, 초 단위의 상세 스케줄링 제어가 가능하다. 스케줄러(112)는 클러스터 리더 노드(100)와 다수의 클러스터 일반 노드(200)들 중 클러스터 리더 노드(100)에서만 사전 설정된 스케줄이 실행되도록 할 수 있다. 또한 스케줄러(112)는 다수의 클러스터 일반 노드(200)들에 분배된 ETL JOB에 해당하는 스케줄을 호출하여 관리할 수 있다.
상기 로그 매니저(113)는 ETL JOB 실행 시 실행 결과로써 처리건수, 성공, 실패, 경고 등의 내용을 포함한 포괄적인 로그 정보를 관리할 수 있다. 로그 매니저(113)는 각 서버에서 로그 정보를 관리할 때 발생하는 로그 순번 오류의 순번 뿐만 아니라, 오류가 발생한 노드의 로그 위치를 확인하기 위해 클러스터 리더 노드(100)와 다수의 클러스터 일반 노드(200)들의 JOB 처리 결과를 공통 Repository DB(300)에서 통합 관리할 수 있도록 로그 정보를 관리할 수 있다. 또한 로그 매니저(113)는 클러스터(110)가 클러스터 일반 노드(200)에 ETL JOB을 분배하여 스케줄을 호출하는 클러스터링 로그도 통합 관리할 수 있다. 일 실시예로, 로그 매니저(113)는 JOB이 실행되는 노드의 이름과 IP 중 적어도 하나의 식별자를 로그에 저장할 수 있다.
상기 JOB 모니터(114)는 현재 클러스터 리드 노드(100)와 클러스터 다수의 일반 노드(200)들이 수행중인 ETL JOB과 task를 모니터링하고 제어할 수 있다. JOB 모니터(114)는 전체 클러스터 노드(클러스터 리더 노드(100)와 다수의 클러스터 일반 노드(200)들)에서 실행 중인 ETL JOB에 대한 실시간 조회가 가능하며, 실제 수행중인 노드의 정보도 함께 관리할 수 있다.
상기 Work Bench 디자이너(115)는 데이터 흐름(Data Flow) 및 일 흐름(Work Flow)를 시각적으로 디자인할 수 있는 작업을 지원할 수 있다.
상기 버전 매니저(116)는 버전 관리 및 협업을 지원하는 기능을 할 수 있다.
상기 데이터 처리 엔진(117, Data Processing Engine)은 데이터 처리를 함으로써 DB, File, Sorter, LDAP, BigData등의 각종 task 등을 지원하는 핵심 엔진일 수 있다.
상기 프레임 빌더(118, Frame Builder)는 사용자 인터페이스 프레임워크일 수 있다.
상기 NTAS(119, network Transaction Application Server)는 서버 미들웨어일 수 있다.
상기 노드 정보부(120)는 Repository DB(300)에 저장된 전체 클러스터 노드들의 테이블 리스트 정보 중 클러스터 리더 노드에 해당하는 정보일 수 있으나 반드시 이에 한정되는 것은 아니다.
클러스터 일반 노드(200)는 클러스터링 DSM(210)과 노드 정보부(220)로 구성된다.
상기 클러스터링 DSM(210)은 클러스터 리더 노드(100)를 구성하는 클러스터링 DSM(110)과 동일한 구성으로 이루어져, 클러스터 리더 노드(100)에 장애가 발생한 경우 클러스터 리더 노드(100) 선출 방법에 따라 다수의 클러스터 일반 노드(200)들 중 클러스터 리더 노드(100)로 선출되어 클러스터 리더 노드(100)의 역할을 수행할 수 있다. 다수의 클러스터 일반 노드(200)들의 클러스터링 DSM(210)은 클러스터 리더 노드(100)를 구성하는 클러스터링 DSM(110)과 동일한 구성으로 이루어지기 때문에 전체 클러스터 노드들은 클러스터 리더 노드와 클러스터 일반 노드의 역할을 모두 할 수 있어 동적 클러스터링 구조를 띈다.
상기 노드 정보부(220)는 Repository DB(300)에 저장된 전체 클러스터 노드들의 테이블 리스트 정보 중 클러스터 일반 노드에 해당하는 정보일 수 있으나 반드시 이에 한정되는 것은 아니다.
Repository DB(300)는 메타 저장소 DB로서, 클러스터링에 참여하는 전체 클러스터 노드(클러스터 리더 노드(100), 다수의 클러스터 일반 노드(200))들의 정보를 전부 저장하는 데이터베이스일 수 있다. Repository DB(300)는 클러스터링 DSM(110, 210)의 스케줄 정보 등을 포함한 솔루션 메타 정보를 저장할 수 있다. Repository DB(300)는 클러스터링 DSM(110, 220)의 클러스터(111)에 관련된 메타 정보를 저장할 수 있다. 전체 클러스터 노드들은 Repository DB(300)를 조회하여 노드를 확인할 수 있다.
소스 DB(400)는 ETL JOB을 실시할 원천 데이터가 저장되어 있는 데이터베이스를 의미할 수 있고, 타겟 DB(500)는 ETL JOB이 완료되어 변환이 완료된 데이터가 적재되는 데이터베이스를 의미할 수 있다.
발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10; 동적 클러스터링 기반의 ETL JOB 분산 처리 시스템
100; 클러스터 리더 노드 110; 클러스터링 DSM
111; 클러스터 112; 스케줄러
113; 로그 매니저 114; JOB 모니터
115; Work Bench 디자이너 116; 버전 매니저
117; 데이터 처리 엔진 118; 프레임 빌더
119; NTAS 120; 노드 정보부
200; 클러스터 일반 노드 210; 클러스터링 DSM
220; 노드 정보부 300; Repository DB
400; 소스 DB 500; 타겟 DB
100; 클러스터 리더 노드 110; 클러스터링 DSM
111; 클러스터 112; 스케줄러
113; 로그 매니저 114; JOB 모니터
115; Work Bench 디자이너 116; 버전 매니저
117; 데이터 처리 엔진 118; 프레임 빌더
119; NTAS 120; 노드 정보부
200; 클러스터 일반 노드 210; 클러스터링 DSM
220; 노드 정보부 300; Repository DB
400; 소스 DB 500; 타겟 DB
Claims (5)
- 클러스터 리더 노드가 소스 DB에서 데이터를 추출하는 단계;
클러스터 리더 노드가 추출한 데이터를 바탕으로 ETL(Extract, Transform, Load) 작업을 수행하는 ETL JOB을 다수개의 클러스터 일반 노드들에 분배하는 단계;
다수개의 클러스터 일반 노드들이 클러스터 리더 노드의 호출에 의해 ETL JOB을 처리하는 단계; 및
클러스터 리더 노드와 다수개의 클러스터 일반 노드들이 처리한 ETL JOB을 타겟 DB에 적재하는 단계를 포함하고,
상기 클러스터 리더 노드는 클러스터링 DSM(Data Sync Manager)을 포함하고,
상기 클러스터링 DSM은 클러스터링을 위한 데이터 통신을 관리하고, 노드들을 관리하고, 클러스터 리더 노드 장애 시 리더 노드를 자동으로 재선출하고, ETL JOB 분배관리, 동기화 관리를 수행하는 클러스터를 포함하고,
상기 다수개의 클러스터 일반 노드들은 클러스터링 DSM을 포함하고,
상기 클러스터링 DSM은 클러스터 리더 노드를 구성하는 클러스터링 DSM과 동일한 구성으로 이루어져 클러스터 리더 노드에 장애가 발생한 경우 클러스터 리더 노드 선출 방법에 따라 다수개의 클러스터 일반 노드들 중 클러스터 리더 노드로 선출되어 클러스터 리더 노드의 역할을 수행하는 것을 특징으로 하고,
상기 클러스터링 DSM은 로그 매니저와 JOB 모니터를 더 포함하고,
상기 로그 매니저는 ETL JOB 실행 시 실행 결과 내용을 포함한 포괄적인 로그 정보를 관리하고,
상기 JOB 모니터는 클러스터 리더 노드와 다수의 클러스터 일반 노드들에서 실행 중인 ETL JOB에 대한 실시간 조회가 가능하며, 실제 수행중인 노드의 정보도 함께 관리하는 것을 특징으로 하는 동적 클러스터링 기반의 ETL JOB 분산 처리 방법.
- 삭제
- 제1항에 있어서,
클러스터 리더 노드 장애 시 클러스터 리더 노드를 자동으로 재선출하는 방법은,
클러스터 일반 노드가 Repository DB에 클러스터 리더 IP를 조회하고 Repository DB가 클러스터 일반 노드에 클러스터 리더 IP 조회 결과를 전달하는 단계;
클러스터 일반 노드가 클러스터 리더 노드에 클러스터 IP ping을 시도하고, 클러스터 리더 노드가 클러스터 일반 노드에 클러스터 IP ping 응답을 전달하는 단계; 및
클러스터 일반 노드가 수신한 클러스터 리더 IP ping 응답이 오류가 아닌 경우, 클러스터 일반 노드가 클러스터 리더 노드의 정상을 확인하는 단계를 더 포함하는 것을 특징으로 하는 동적 클러스터링 기반의 ETL JOB 분산 처리 방법.
- 제3항에 있어서,
클러스터 일반 노드가 수신한 클러스터 리더 IP ping 응답이 오류인 경우, 클러스터 일반 노드가 Repository DB에 클러스터 일반 노드를 클러스터 리더로 업데이트하고 Repository DB가 클러스터 일반 노드를 클러스터 리더로 업데이트 확인하는 단계;
클러스터 일반 노드가 Repository DB에 클러스터 리더 노드 IP를 클러스터 일반 노드 IP로 변경하고, Repository DB가 클러스터 리더 노드 IP 변경을 확인하는 단계;
클러스터 일반 노드가 클러스터 리더 노드의 정상을 확인하는 단계를 더 포함하는 것을 특징으로 하는 동적 클러스터링 기반의 ETL JOB 분산 처리 방법.
- 동적 클러스터링 기반의 ETL JOB 분산 처리 시스템에 있어서,
소스 DB에서 추출한 데이터를 수신하여 다수개의 클러스터 일반 노드들에 ETL(Extract, Transform, Load) 작업을 수행하는 ETL JOB을 분배하는 클러스터 리더 노드;
클러스터 리더 노드의 호출에 의해 ETL JOB을 처리하는 다수개의 클러스터 일반 노드들; 및
클러스터 리더 노드와 다수개의 클러스터 일반 노드들이 처리한 ETL JOB을 저장하는 Repository DB를 포함하고,
상기 클러스터 리더 노드는 클러스터링 DSM(Data Sync Manager)을 포함하고,
상기 클러스터링 DSM은 클러스터링을 위한 데이터 통신을 관리하고, 노드들을 관리하고, 클러스터 리더 노드 장애 시 리더 노드를 자동으로 재선출하고, ETL JOB 분배관리, 동기화 관리를 수행하는 클러스터를 포함하고,
상기 다수개의 클러스터 일반 노드들은 클러스터링 DSM을 포함하고,
상기 클러스터링 DSM은 클러스터 리더 노드를 구성하는 클러스터링 DSM과 동일한 구성으로 이루어져 클러스터 리더 노드에 장애가 발생한 경우 클러스터 리더 노드 선출 방법에 따라 다수개의 클러스터 일반 노드들 중 클러스터 리더 노드로 선출되어 클러스터 리더 노드의 역할을 수행하는 것을 특징으로 하고,
상기 클러스터링 DSM은 로그 매니저와 JOB 모니터를 더 포함하고,
상기 로그 매니저는 ETL JOB 실행 시 실행 결과 내용을 포함한 포괄적인 로그 정보를 관리하고,
상기 JOB 모니터는 클러스터 리더 노드와 다수의 클러스터 일반 노드들에서 실행 중인 ETL JOB에 대한 실시간 조회가 가능하며, 실제 수행중인 노드의 정보도 함께 관리하는 것을 특징으로 하는 동적 클러스터링 기반의 ETL JOB 분산 처리 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220155678A KR102507481B1 (ko) | 2022-11-18 | 2022-11-18 | 동적 클러스터링 기반의 etl job 분산 처리 시스템 및 방법 |
PCT/KR2023/006701 WO2024106644A1 (ko) | 2022-11-18 | 2023-05-17 | 동적 클러스터링 기반의 etl job 분산 처리 시스템 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220155678A KR102507481B1 (ko) | 2022-11-18 | 2022-11-18 | 동적 클러스터링 기반의 etl job 분산 처리 시스템 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102507481B1 true KR102507481B1 (ko) | 2023-03-08 |
Family
ID=85508425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220155678A KR102507481B1 (ko) | 2022-11-18 | 2022-11-18 | 동적 클러스터링 기반의 etl job 분산 처리 시스템 및 방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102507481B1 (ko) |
WO (1) | WO2024106644A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024106644A1 (ko) * | 2022-11-18 | 2024-05-23 | 주식회사 아리시스템블루 | 동적 클러스터링 기반의 etl job 분산 처리 시스템 및 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004519024A (ja) * | 2000-09-08 | 2004-06-24 | ゴー アヘッド ソフトウェア インコーポレイテッド | 多数のノードを含むクラスタを管理するためのシステム及び方法 |
KR20050064766A (ko) * | 2003-12-24 | 2005-06-29 | (주) 비티엘글로벌 | 단일 또는 복수 데이터베이스간의 자료의 추출, 변환, 적재 시스템 및 그 방법 |
KR101090890B1 (ko) * | 2009-09-07 | 2011-12-08 | (주)유앤비테크 | 분산 서버 기반의 그리드 시스템 및 동작 방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120074528A (ko) * | 2010-12-28 | 2012-07-06 | 엘지에릭슨 주식회사 | 클러스터 노드 제어 방법 및 그를 위한 전화 시스템 |
KR102038527B1 (ko) * | 2018-03-28 | 2019-11-26 | 주식회사 리얼타임테크 | 분산 클러스터 관리 시스템 및 그 방법 |
KR102507481B1 (ko) * | 2022-11-18 | 2023-03-08 | 이길식 | 동적 클러스터링 기반의 etl job 분산 처리 시스템 및 방법 |
-
2022
- 2022-11-18 KR KR1020220155678A patent/KR102507481B1/ko active IP Right Grant
-
2023
- 2023-05-17 WO PCT/KR2023/006701 patent/WO2024106644A1/ko unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004519024A (ja) * | 2000-09-08 | 2004-06-24 | ゴー アヘッド ソフトウェア インコーポレイテッド | 多数のノードを含むクラスタを管理するためのシステム及び方法 |
KR20050064766A (ko) * | 2003-12-24 | 2005-06-29 | (주) 비티엘글로벌 | 단일 또는 복수 데이터베이스간의 자료의 추출, 변환, 적재 시스템 및 그 방법 |
KR101090890B1 (ko) * | 2009-09-07 | 2011-12-08 | (주)유앤비테크 | 분산 서버 기반의 그리드 시스템 및 동작 방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024106644A1 (ko) * | 2022-11-18 | 2024-05-23 | 주식회사 아리시스템블루 | 동적 클러스터링 기반의 etl job 분산 처리 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
WO2024106644A1 (ko) | 2024-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112099918B (zh) | 容器化环境中的集群的实时迁移 | |
US11385939B2 (en) | Method and system for modeling and analyzing computing resource requirements of software applications in a shared and distributed computing environment | |
US7130897B2 (en) | Dynamic cluster versioning for a group | |
JP4637842B2 (ja) | クラスタ化されたコンピューティングシステムにおける高速なアプリケーション通知 | |
US8296267B2 (en) | Upgrade of highly available farm server groups | |
JP4307673B2 (ja) | マルチクラスタ化コンピュータ・システムを構成及び管理する方法及び装置 | |
US11507479B2 (en) | High availability for a relational database management system as a service in a cloud platform | |
US7774639B2 (en) | Subscription-based management and distribution of member-specific state data in a distributed computing system | |
US20150317187A1 (en) | Placing objects on hosts using hard and soft constraints | |
US7590683B2 (en) | Restarting processes in distributed applications on blade servers | |
US20070083861A1 (en) | Managing a computer system with blades | |
US20090007135A1 (en) | Apparatus and method for server network management to provide zero planned retrofit downtime | |
JP2024079760A (ja) | クロス・クラウド・オペレーションのためのクラウド・サービス | |
WO2012054185A1 (en) | Dynamically splitting multi-tenant databases | |
JP2005524147A (ja) | 分散形アプリケーションサーバおよび分散された機能を実施するための方法 | |
US7516181B1 (en) | Technique for project partitioning in a cluster of servers | |
EP2140349A2 (en) | Upgrading services associated with high availability systems | |
KR102507481B1 (ko) | 동적 클러스터링 기반의 etl job 분산 처리 시스템 및 방법 | |
WO2020123693A1 (en) | Control token and hierarchical dynamic control | |
US20150186181A1 (en) | System and method for supporting flow control in a distributed data grid | |
CN109697078B (zh) | 非高可用性组件的修复方法、大数据集群和容器服务平台 | |
US20040210888A1 (en) | Upgrading software on blade servers | |
CN111459639A (zh) | 一种支持全球多机房部署的分布式任务管理平台及方法 | |
US20150324222A1 (en) | System and method for adaptively integrating a database state notification service with a distributed transactional middleware machine | |
US20040210887A1 (en) | Testing software on blade servers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |