워크플로우

개요

워크플로우는 파일이나 DBMS에 있는 데이터를 조회하고, 원하는 형태로 가공하여 필요한 곳에 적재하는 일련의 작업 흐름을 자동화하는 기능입니다.

워크플로우는 쿼리 > 워크플로우에서 사용할 수 있습니다.

워크플로우 메뉴

워크플로우의 실행 방식

워크플로우는 파일이 변경되었을 때, 혹은 예약된 시각에 자동으로 실행되거나, 사용자가 워크플로우를 직접 실행하는 방식으로 동작합니다.

직접 실행

사용자가 직접 워크플로우를 실행하는 경우에만 실행됩니다. 다음 그림은 워크플로우 생성 화면에서 시작 방식직접 실행으로 지정한 예입니다.

사용자가 직접 실행하는 워크플로우의 속성

워크플로우를 생성하면 쿼리 > 워크플로우에 등록되고, 워크플로우 행에 실행 버튼이 나타납니다. 이 버튼을 눌러서 워크플로우를 실행할 수 있습니다.

워크플로우 실행 버튼의 위치

Note
실행 방식이 '파일 변경', '예약 일정'이거나, 비활성화된 워크플로우도 사용자가 직접 실행할 수 있습니다.
파일 변경

워크플로우 실행 방식이 파일 변경일 때, 특정한 파일이 변경되면 워크플로우를 실행합니다. 파일 경로점검 주기를 설정하면, 지정한 주기마다 파일의 수정 일자를 확인하고 파일이 변경이 확인되면 워크플로우를 실행합니다. 다음 그림은 워크플로우 생성 화면에서 시작 방식파일 변경으로 지정한 예입니다.

파일 변경 시 실행하는 워크플로우의 속성

Note
"파일 변경"은 로그프레소 플랫폼을 실행하는 로컬 호스트의 파일 시스템에 있는 파일을 대상으로 합니다. 원격 파일 시스템에서 데이터를 가져오려면 원격 디렉터리를 로컬 파일 시스템에 마운트한 후에 워크플로우를 구성하거나, "쿼리 > 수집"을 이용하십시오. 환경 구성에 따라 센트리를 설치해서 수집할 수 있습니다.
예약 일정

지정한 일정에 따라 워크플로우를 실행합니다. 예약 일정 속성을 누르면 일정 마법사가 실행되고, 매월/매일/매시/매분과 요일에 따라, 또는 간격, 시점, 범위, 표현식(cron 표현식)을 지정하는 방식으로 일정을 지정할 수 있습니다.

예약 일정에 따라 실행하는 워크플로우의 속성

매월/매일/매시/매분
매월/매일/매시/매분에 태스크를 실행합니다. 월, 일, 시, 분 단위로 다른 일정 형식으로 변경할 수 있습니다.
간격
지정한 주기로 태스크를 실행합니다(예: 2개월마다, 이틀마다, 두 시간마다, 2분마다).
시점
지정한 시점에 태스크를 실행니다(예: 2 월, 2 일, 2 시, 2 분)
범위
지정한 기간에 태스크를 실행합니다(예: 1 ~ 12 월, 1 ~ 31 일, 0 ~ 23 시, 0 ~ 59 분)
표현식
유닉스 계열 운영체제의 cron에서 사용하는 시간 표현식을 이용해 태스크를 실행할 일정을 입력합니다.
태스크: 워크플로우의 기본 단위

태스크는 워크플로우를 구성하는 기본 작업 단위입니다. 하나의 워크플로우에 여러 개의 태스크를 할당할 수 있습니다. 태스크에 선후 관계를 부여하여 일련의 작업을 처리하게 하거나, 태스크의 실행 결과에 따라 다음에 실행할 태스크를 분기하는 방법으로 처리하도록 구성할 수 있습니다.

  • 태스크
태스크 의존성

태스크는 다른 태스크에 의존성을 가질 수 있습니다. 의존하고 있는 태스크가 원하는 조건에 도달해야 다음 태스크가 실행됩니다. 여러 태스크에 의존하고 있을 경우 모든 태스크가 원하는 조건에 도달해야 실행됩니다.

워크플로우의 의존성 예시

  • 태스크 1은 실행 조건(사용자의 직접 실행, 예약된 일정, 파일 변경 중 하나)이 발생하면 실행됩니다.
  • 태스크 2-1, 태스크 2-2는 태스크 1이 완료되어야 실행됩니다.
  • 태스크 4-1은 태스크 2-1과 태스크 3이 완료되어야 실행됩니다(2개 태스크에 의존성이 있는 경우).
  • 태스크 4-2, 태스크 4-3은 태스크 3이 완료되어야 실행됩니다(여러 개의 태스크가 1개의 태스크에 의존성이 있는 경우)

태스크 의존성은 워크플로우를 구성하는 과정에서 태스크를 추가, 또는 수정할 때 지정할 수 있습니다.

입력/출력 매개변수

워크플로우 내 태스크들은 매개변수를 입력받아서 작업을 진행할 수 있습니다. 워크플로우 안에서 매개변수들은 태스크들 간에 공유되는 변수로, 서로 다른 태스크들이 같은 매개변수를 사용할 수 있습니다.

워크플로우 실행 도중 매개변수의 값을 바꾸고 싶으면, 쿼리 실행 태스크에서 evalc 명령이나나 쿼리 변수 할당 스니펫을 사용합니다.

워크플로우를 직접 실행할 때 입력 매개변수를 받는 쿼리가 있으면 실행 시점에 모든 입력 매개변수의 값을 입력받습니다. 예를 들어, 입력 매개변수 arg1이 정의된 태스크가 있고, 다른 태스크에 arg2란 입력 매개변수가 정의되어 있으면 워크플로우 실행 시 arg1, arg2 매개변수 값을 모두 입력해야 합니다.

자세한 내용은 태스크 관리를 참고하십시오.