DIGDAG

Changwhan Yi·2021년 6월 4일
0
  1. 소개 이유?
  • 정보공유
  • 알쓸신잡
  • 가장 쉽게 설치/사용, 모니터링기능

digdag?

  • Workflow Management Tool
  • 워크 플로를 코드로 작성하고 스케줄링한 뒤 모니터링하는 플랫폼

다른 Workflow Management Tool?

  • Airflow, Luigi, Oozie, Azkaban 등

정말 쉬운가? 맛보기

  • 설치 및 환경 설정
[macos]
$ curl -o ~/bin/digdag --create-dirs -L "https://dl.digdag.io/digdag-latest"
$ chmod +x ~/bin/digdag
$ echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
$ source ~/.bashrc

[window (cmd, powershell)]
PowerShell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::TLS12; mkdir -Force $env:USERPROFILE\bin; Invoke-WebRequest http://dl.digdag.io/digdag-latest.jar -OutFile $env:USERPROFILE\bin\digdag.bat}
cd C:\Users\YOUR_NAME\bin 
setx PATH "%PATH%;%USERPROFILE%\bin"
  • 프로젝트 생성/실행
$ digdag init sample
$ cd smaple
$ digdag run sample.dig

생성

실행

sample.dig 파일 내부

timezone: UTC

+setup:
  echo>: start ${session_time}

+disp_current_date:
  echo>: ${moment(session_time).utc().format('YYYY-MM-DD HH:mm:ss Z')}

+repeat:
  for_each>:
    order: [first, second, third]
    animal: [dog, cat]
  _do:
    echo>: ${order} ${animal}
  _parallel: true

+teardown:
  echo>: finish ${session_time}
코드를 입력하세요

UI 기능이 있다고 했었다는데..? digdag 서버 실행

$ digdag scheduler
or
$ digdag server --database ./sample_db
$ cd ./sample
$ digdag push [프로젝트명] -r [버전]

접속 url : 127.0.0.1:65432

기본 개념

  • 워크플로 : 작업 및 작업의 순서를 정의한 것, 혹은 작업의 그룹, 혹은 하나의 작업
  • 세션 : 워크플로를 실행하기 위한계획, 실행시 세션id 생성
  • 시도 : 실세 세션의 실행
    -> 하나의 세션에 여러 시도가 있을수 있다. ( 성공이 목표이기에 )
  • 스케줄러 : 워크플로의 스케줄
  • export : 상위 작업에서 내 보낸 매개 변수
  • store : 이전 작업에서 저장 한 매개 변수
  • local : 작업에 직접 설정된 매개 변수

우리말고 다른 사용중인 기업?

-GAMEVIL COM2US의 Hive 애널리틱스 서비스에서 분석
( 레거시 시스템에서 발생한 JSON 파일들을 10분 단위로 BigQuery에 올리기 위한 스케줄을 Digdag로 관리 )

마치며 아쉬운점...

  • 다른 플랫폼을 사용해본적이 없어 비교불가
  • digdag 검색 결과 총 11페이지
profile
어쩌다보니...

0개의 댓글