Skip to main content
전체 노트북 코드: 10_job_scheduling.py
목적: 운영/개발 환경별 MLOps 파이프라인을 Databricks Workflows로 스케줄링합니다. 사용 Databricks 기능: Databricks Workflows, Multi-task Jobs, Serverless Compute, 이메일/Slack 알림

Lakeflow Jobs란?

Lakeflow Jobs 는 여러 개의 작업(Task)을 정해진 순서와 스케줄에 따라 자동으로 실행하는 작업 오케스트레이터(Orchestrator, 지휘자) 입니다. 제조 현장의 MES(제조실행시스템)와 같은 역할을 합니다.

Cron 표현식 이해하기

Job의 실행 시간을 지정할 때 Cron 표현식 이라는 형식을 사용합니다. 다음 표는 이 PoC에서 사용하는 Cron 표현식입니다.

왜 Job 스케줄링이 MLOps에 중요한가?

MLOps의 핵심 원칙 중 하나는 CT(Continuous Training, 지속적 학습) 입니다. 공장에서 설비를 한 번 설치하면 끝이 아니라 정기 점검과 유지보수 가 필수인 것처럼, AI 모델도 정기적으로 새 데이터로 재학습 해야 합니다. Job 스케줄링은 이 “정기적 재학습”을 사람이 매번 수동으로 실행하지 않아도 되도록 자동화합니다.

개발 환경 vs 운영 환경: 왜 분리하나?


워크플로우 아키텍처

스케줄 요약

Job 생성 방법: 두 가지 방식

Databricks에서 Job을 만드는 방법은 크게 두 가지입니다.

Databricks UI에서 Job 만드는 방법 (참고)

  1. 좌측 메뉴Workflows 클릭
  2. Create Job 버튼 클릭
  3. Task 추가: “Add task” → 노트북 경로 지정 → 의존성(depends_on) 설정
  4. 스케줄 설정: “Add trigger” → “Scheduled” → Cron 표현식 또는 캘린더에서 선택
  5. 클러스터 설정: “Compute” → Serverless 또는 클러스터 유형 선택
  6. 알림 설정: “Notifications” → 이메일/Slack 알림 추가
  7. Create 버튼으로 Job 생성 완료

Databricks SDK로 Job 생성

Multi-task Job을 프로그래밍 방식으로 정의합니다. 태스크 간 의존성을 depends_on으로 지정합니다.

비정형 모델 (비전 이상탐지) Job 설정

비전 이상탐지(07번 노트북)는 GPU 클러스터가 필요하므로 별도 Job으로 분리합니다. g5.2xlarge (NVIDIA A10G GPU)를 사용하며, 주 1회 재학습 + 일 1회 배치 추론으로 설정합니다.
주의 GPU 클러스터(g5.2xlarge)는 CPU 클러스터 대비 약 10배 비쌉니다. 주 1회 15분 실행 기준 월 약 8 DBU로, 전체 파이프라인 비용의 약 30%를 차지합니다. 비용 최적화를 위해 Spot Instance 활용과 Auto-termination 5분 설정을 권장합니다.

비용 최적화 가이드

클라우드 환경에서 ML 워크로드를 실행할 때, 적절한 컴퓨팅 리소스 선택 이 비용에 큰 영향을 미칩니다. 제조업에서 공정별로 적합한 설비를 선택하는 것과 같습니다.

Serverless vs Dedicated 클러스터

작업 유형별 추천 리소스

성공 Databricks Serverless Compute 를 사용하면 클러스터 관리 없이 자동으로 리소스가 할당됩니다. 정형 데이터 처리에는 Serverless를 권장합니다. 비정형(GPU) 작업만 전용 클러스터를 사용하세요. 개발 환경에서는 Spot Instance(최대 90% 저렴)를 활용하면 비용을 크게 줄일 수 있습니다.

전체 데모에서 다룬 Databricks MLOps 기능


Level 2 MLOps Pipeline Job

전체 노트북 코드: 10_job_scheduling.py (Level 2 섹션)
기존 Level 1 파이프라인(6개 태스크)에 드리프트 기반 자동 재학습 이 추가된 것이 Level 2의 핵심입니다.

7-Task 자동 재학습 파이프라인 구성

Databricks SDK로 Job 생성

참고 Level 1 vs Level 2 차이: Level 1 Job은 6개 태스크(02→03→04→05→06→08)로 모니터링까지만 수행합니다. Level 2 Job은 7번째 태스크(03d)가 추가되어, 드리프트 감지 시 자동 재학습 까지 수행합니다.

Job 확인 방법

  1. 좌측 사이드바 → Workflows 클릭
  2. LGIT_MLOps_Level2_AutoRetrain_Pipeline 검색
  3. Tasks 탭에서 DAG(의존성 그래프) 확인 — 7개 태스크가 순차 연결
  4. Schedule 탭에서 스케줄 확인 (현재 PAUSED)
  5. Run now 버튼으로 즉시 실행 테스트 가능