KR102507481B1 - 동적 클러스터링 기반의 etl job 분산 처리 시스템 및 방법 - Google Patents

동적 클러스터링 기반의 etl job 분산 처리 시스템 및 방법 Download PDF

Info

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
Application number
KR1020220155678A
Other languages
English (en)
Inventor
이길식
Original Assignee
이길식
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 이길식 filed Critical 이길식
Priority to KR1020220155678A priority Critical patent/KR102507481B1/ko
Application granted granted Critical
Publication of KR102507481B1 publication Critical patent/KR102507481B1/ko
Priority to PCT/KR2023/006701 priority patent/WO2024106644A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2002Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-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 JOB distributed processing system and method based on dynamic clustering}
본 발명은 동적 클러스터링 기반의 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 분산 처리 시스템을 설명하는 구성도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
클라우드란 데이터를 인터넷과 연결된 중앙컴퓨터에 저장해서 인터넷에 접속하기만 하면 언제 어디서든 데이터를 이용할 수 있는 것으로 클라우드 컴퓨팅은 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)을 수행하기 위해 필요한 작업을 의미한다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 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

Claims (5)

  1. 클러스터 리더 노드가 소스 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 분산 처리 방법.
  2. 삭제
  3. 제1항에 있어서,
    클러스터 리더 노드 장애 시 클러스터 리더 노드를 자동으로 재선출하는 방법은,
    클러스터 일반 노드가 Repository DB에 클러스터 리더 IP를 조회하고 Repository DB가 클러스터 일반 노드에 클러스터 리더 IP 조회 결과를 전달하는 단계;
    클러스터 일반 노드가 클러스터 리더 노드에 클러스터 IP ping을 시도하고, 클러스터 리더 노드가 클러스터 일반 노드에 클러스터 IP ping 응답을 전달하는 단계; 및
    클러스터 일반 노드가 수신한 클러스터 리더 IP ping 응답이 오류가 아닌 경우, 클러스터 일반 노드가 클러스터 리더 노드의 정상을 확인하는 단계를 더 포함하는 것을 특징으로 하는 동적 클러스터링 기반의 ETL JOB 분산 처리 방법.
  4. 제3항에 있어서,
    클러스터 일반 노드가 수신한 클러스터 리더 IP ping 응답이 오류인 경우, 클러스터 일반 노드가 Repository DB에 클러스터 일반 노드를 클러스터 리더로 업데이트하고 Repository DB가 클러스터 일반 노드를 클러스터 리더로 업데이트 확인하는 단계;
    클러스터 일반 노드가 Repository DB에 클러스터 리더 노드 IP를 클러스터 일반 노드 IP로 변경하고, Repository DB가 클러스터 리더 노드 IP 변경을 확인하는 단계;
    클러스터 일반 노드가 클러스터 리더 노드의 정상을 확인하는 단계를 더 포함하는 것을 특징으로 하는 동적 클러스터링 기반의 ETL JOB 분산 처리 방법.
  5. 동적 클러스터링 기반의 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 분산 처리 시스템.
KR1020220155678A 2022-11-18 2022-11-18 동적 클러스터링 기반의 etl job 분산 처리 시스템 및 방법 KR102507481B1 (ko)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024106644A1 (ko) * 2022-11-18 2024-05-23 주식회사 아리시스템블루 동적 클러스터링 기반의 etl job 분산 처리 시스템 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 분산 처리 시스템 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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