본문으로 건너뛰기
데이터 엔지니어 코스

디버깅 · 모니터링 · 분석가에 인계

운영 중 실패한 파이프라인의 원인을 로그 · 노드 상태 · 데이터 미리보기 세 면으로 좁히고, 같은 표면에서 데이터셋 권한을 정리해 분석가에게 인계하기까지를 한 사이클로 닫습니다.

9

지금까지 만든 파이프라인이 매일 새벽에 알아서 돌고 있다고 합시다. 어느 날 알림이 옵니다 — "어제 새벽 실행이 실패했습니다." 이번 레슨은 그 실패의 원인을 어디서부터 보는지, 무엇을 다시 돌리는지, 마지막에 자기 데이터셋을 분석가에게 어떻게 깔끔히 인계하는지까지 한 번에 다루며 코스를 닫습니다.

실패의 세 면 — 로그 · 노드 상태 · 데이터 미리보기

포털의 실행 결과 화면은 세 면을 한 화면에 보여 줍니다.

  1. 실행 로그 — 시간순 텍스트 스트림. 보통 마지막 줄이 가장 중요합니다.
  2. 노드 상태 — 캔버스 위 각 노드가 녹색(성공)·빨강(실패)·회색(미실행)으로 표시됩니다.
  3. 데이터 미리보기 — 성공한 노드에 한해 출력 샘플 행을 우측 패널에서 볼 수 있습니다.

세 면을 같이 봐야 원인이 빨리 좁혀집니다.

디버깅 첫 5분 — 어디서 멈췄는가

다음 순서가 가장 짧은 길입니다.

  1. 실패 알림에서 실행 상세 링크를 누른다.
  2. 캔버스에서 빨간 노드 하나를 찾는다. 보통 하나. 그 앞 노드는 녹색, 뒤 노드는 회색.
  3. 빨간 노드를 클릭해 우측 패널의 로그 탭을 연다. 마지막 줄이 어떤 컬럼의 어떤 값에서 멈췄는지 자주 적시합니다.
  4. 같은 패널의 데이터 미리보기 탭에서 직전 녹색 노드의 출력을 본다. 보통 여기서 입력 데이터의 모양이 어제와 달라졌다는 사실이 한눈에 들어옵니다.

이 네 단계로 80% 이상의 실패는 입력 스키마 변경 또는 외부 시스템 일시 장애 두 갈래로 좁혀집니다.

흔한 실패 카테고리와 다음 행동

카테고리신호다음 행동
입력 스키마 변경직전 녹색 노드 출력에 새 컬럼 또는 없어진 컬럼02 레슨의 커넥터 매핑을 다시 펴서 명시적 컬럼 선택으로 잠그기
타입 불일치로그에 could not cast '...' to int64 같은 메시지04 레슨의 코드 노드에 try/except 후 행 격리 추가
외부 시스템 일시 장애로그가 timeout 또는 5xx로 끝남본문 변경 없이 재실행 한 번. 분 단위로 정상화되면 그대로 종료
권한 회수로그가 401/403 또는 permission denied시크릿 저장소에서 자격증명 갱신, 또는 운영팀에 권한 회복 요청
데이터 품질 임계치 미달데이터 품질 체크 노드가 빨강임계치 자체가 너무 빡빡한지, 입력에서 실제로 빠진 게 있는지 결정

판단이 끝나면 둘 중 하나입니다 — 재실행 또는 코드·매핑 변경 후 재실행.

부분 재실행 — 같은 파이프라인의 일부만 다시 돌리기

전체를 처음부터 다시 도는 비용이 클 때 포털은 빨간 노드부터 재실행 옵션을 제공합니다.

  • 캔버스 우상단 재실행 버튼의 작은 화살표를 누르면 처음부터 / 실패 노드부터 둘이 뜹니다.
  • 실패 노드부터를 고르면 직전 녹색 노드의 출력이 캐시처럼 다시 입력으로 들어가고, 빨간 노드와 그 뒤만 다시 돕니다.

source 단계가 외부 시스템에 대량 read를 거는 형태라면 이 옵션이 운영 부담을 크게 줄여 줍니다.

운영 중에 항상 보는 두 신호

실패가 알려질 때까지 기다리지 않으려면 다음 두 신호를 대시보드 하나에 둡니다.

  • 파이프라인 실행 이력 — 최근 N일 실행 결과를 시각화로 보여 주는 위젯. 같은 시각에 늘 녹색이 찍히고 있는지 한눈에.
  • 각 마트 데이터셋의 행 수 추세 — 어제와 오늘의 행 수가 ±N% 이상 변하면 색이 바뀌는 위젯. 실행은 성공했지만 데이터가 비어 들어오는 silent failure를 잡습니다.

둘 다 분석가 코스 04·05 레슨의 기본 위젯으로 만들 수 있습니다. 권한·감사 측면의 조직 수준 모니터링(누가 무엇을 실행했는지, 자격증명이 언제 갱신됐는지)은 별도 관리자 코스가 다룹니다.

분석가에게 인계 — 데이터셋 권한 두 줄

운영이 안정되면 마지막 한 단계는 본인이 만든 마트 데이터셋을 분석가에게 인계하는 일입니다. 인계는 짧습니다.

  1. 마트 데이터셋이 떨어지는 컬렉션을 분석가용 컬렉션으로 분리 (02 레슨에서 원본은 엔지니어 컬렉션으로 격리한 것의 짝).
  2. 그 컬렉션에 분석가 그룹의 Reader 권한 부여.
  3. 데이터셋 페이지의 설명 한 줄에 어떤 시점, 어떤 단위, 어떤 빈도를 적기 (예: "매일 03:07 갱신 · 어제까지의 누적 주문 · 통화 KRW").
  4. 데이터셋 페이지의 소유자를 본인으로. 위젯이 깨졌을 때 분석가가 누구에게 핑할지 알게 됩니다.

이 네 줄이면 분석가의 컬렉션 탐색기에 내가 만든 마트 데이터셋이 떠 있고, 그 위로 위젯이 쌓이기 시작합니다. 엔지니어의 출력 = 분석가의 입력이 한 포털 안에서 닫히는 구조의 마지막 매듭.

코스 완료 — 다음에 무엇을 할까

여기까지 왔다면 외부 시스템에서 출발해 분석가의 위젯 입력까지 도달하는 한 사이클을 직접 만든 것입니다. 다음 학습 후보.

  • 워크숍: 리테일 재고 인텔리전스 — 이 코스의 모든 표면이 시나리오 한 건 안에서 한 번에 엮입니다. 분석가 시점과 엔지니어 시점이 같은 컬렉션 안에서 만나는 흐름이라, 직전 레슨의 인계 단계가 실제로 어떻게 도는지 확인할 수 있습니다.
  • 튜토리얼: 시나리오 빠른 importdhub2-examples의 한 시나리오를 자기 환경에 1줄로 적재. 워크숍 1단계와 같은 도구를 미리 만져 봅니다.
  • 분석가 코스 — 자기가 만든 데이터셋이 분석가의 컬렉션 트리에 어떻게 보이는지 직접 확인. 인계의 받는 쪽 시점을 한 번 거치면 다음 마트 작업이 한층 짧아집니다.

모든 레슨 옆 체크박스를 채우면 코스가 완료로 기록됩니다. 이후 학습은 홈의 "이어서 학습하기" 패널에 추천 흐름으로 떠 있습니다.

수고하셨습니다.