데일리 미션/Article

Article : 신뢰할 수 있는 데이터를 확보하기 위한 3가지 체크 리스트

pipiiiiii 2024. 1. 11. 18:22

https://yozm.wishket.com/magazine/detail/2171/

 

신뢰할 수 있는 데이터를 확보하기 위한 3가지 체크리스트 | 요즘IT

데이터는 흐릅니다. 다시 말해 그 흐름 중 어느 한 곳이라도 품질이 제대로 관리되지 않으면 다운스트림에서 문제가 생길 수 있다는 이야기입니다. 그래서 요즘에는 ‘데이터가 없는 것보다 잘

yozm.wishket.com

 

 

 

 

<아티클 내용 요약>

- 데이터는 흐른다. 다시 말해 그 흐름 중 어느 한 곳이라도 품질이 제대로 관리되지 않으면 다운스트림에서 문제가 생길 수 있다는 이야기다. 

- 요즘에는 '데이터가 없는 것보다 잘못된 데이터에 기반한 의사 결정이 더 무섭다'는 말도 자주 보인다. 

- '데이터 다운타임'이란 데이터가 수집되지 않아 누락되거나 부정확하게 측정되는 것과 같이 데이터 손실로 인해 가동이 중지되는 상황을 의미한다. 

- 저품질 데이터, 불량 데이터의 발생을 완전히 틀어막기는 거의 불가능하다. 그러면 우리가 할 수 있는 일은 한 가지, 문제가 발생했을 때 적절하게 대처하는 것이다. 

- 대처의 첫걸음은 '무엇을 체크하면 되는지 인식'하는 일이다. 

 

 

1. 데이터 품질 문제의 원인을 찾는 체크 리스트

- 데이터 파이프라인은 데이터 변경, 코드 변경, 운영 환경 변경 이렇게 3가지 이유 때문에 가동이 중지되기 쉽다. 

  1. 기록된 데이터가 전부 잘못됐나요 아니면 일부만 잘못됐나요
  2. 특정 기간의 데이터가 잘못됐나요
  3. 특정 하위 집합 또는 세그먼트의 데이터가 잘못됐나요
  4. 아직 설명하지 못하는 데이터의 새로운 세그먼트 또는 코드에 의존적인 세그먼트가 누락됐나요
  5. 최근에 스키마가 변경됐나요
  6. 숫자 단위가 변경됐나요
    예를 들어 화폐 단위라면 달러에서 센트로 변경됐나요, 시간이라면 PST와 EST 중 어떤 기준을 사용하고 있나요
  7. 데이터를 변환하는 로직 변경이 있었나요(ETL, SLQ, Spark 작업 등)
    테이블을 작업한 로직 또는 사건에 영향을 미친 특정 필드를 보면 무엇이 잘못됐는지 가설을 세우는 데 도움이 될 것입니다. 

- 여기서 두 번째 체크리스트가 도출된다.

- 체크리스트 중 7번을 따로 떼어 더 봐야 하기 때문이다. 

 

 

2. 로직 변경 관련 체크리스트

  1. 가장 최근에 테이블을 업데이트한 코드와 시기를 파악해 보세요
  2. 관련 필드에는 어떤 계산이 들어갔나요
    해당 로직이 주어졌을 때 문제가 되는 데이터가 어떻게 나올 수 있었을까요
  3. 테이블을 임시로 쓴 적은 없나요
  4. 런타임 오류, 권한 문제, 인프라 오류 등과 같은 운영 문제도 데이터의 구조, 형식 및 버전 관리에 영향을 줄 수 있습니다.

 

 

3. ETL 로그 확인 시 활용할만한 체크 리스트 

- 데이터 다운타임은 ETL 작업을 실행하는 운영 환경의 직접적인 결과물이다.

- ETL 엔진의 로그를 살펴보고 오류를 추적하다 보면 데이터 문제를 해결할 실마리를 얻게 될 가능성이 높다. 

 

  1. 관련 작업에 오류가 있었나요
  2. 작업을 시작할 때 정상적이지 않은 레이턴시가 있었나요
  3. 쿼리가 오래됐거나 성능이 낮은 작업 때문에 레이턴시가 발생했나요
  4. 실행에 영향을 미치는 권한, 네트워킹, 인프라 문제가 있었나요
    최근에 변경된 사항이 있나요
  5. 실수로 작업을 삭제했거나 종속 트리에 잘못 배치해서 작업 일정이 변경된 사례가 있었나요

 

- 3가지 체크리스트는 데이터 파이프라인이 손상된 근본 원인을 분석하는 첫 단계에서 유용하다. 

 

 

 

 

<알게 된 개념>

- 데이터도 신뢰의 문제가 생긴다는 것을 처음 알았다. 모든 데이터는 사용하는 데이터라고 생각했는데 데이터에도 품질이 있다는 점이 새로웠다.

 

Article을 보면 데이터의 품질 좋다는 것은 결국은 오류가 나지 않는 것인데 가장 어려운 일이라고 생각했다. 

하다 보면 어느 부분에서 오류가 생길지 알기 힘들지 않을까? 물론 오류가 나지 않게 하기 위해서 최대한 노력해야 하지만 과연 내가 그런 사람이 될 수 있을지 감이 오지 않는다.

 

그럼에도 나중에 일을 시작하면 데이터를 정리해도 오류가 없는 사람이 되고 싶다. 

아니 있어도 해결할 수 있는 사람이 되고싶다.