비투엔 기술기고

[기고] 데이터 프로파일링의 이해

알 수 없는 사용자 2017. 11. 17. 14:28





들어가며


데이터 품질 사업을 수행하다 보면 다양한 데이터 오류를 접하게 된다. 한번은 전 국민이 이용하는 서비스에서 생각지도 못한 데이터 오류가 발견되어 데이터를 시급하게 수정해야 하는 웃지 못 할 일도 있었다. 그럴 때마다 고객은 오류를 찾아낸 그 방법을 묻곤 한다.


지금부터 설명할 데이터 프로파일링은 그 방법 중에 하나로, 업무적인 지식이 없는 경우에도 데이터 오류를 의심해 볼 수 있으며, 관심과 노력만 있다면 어렵지 않게 누구든 자신이 관리하는 데이터 오류를 의심해 보는 방법이다. 본문에서는 진단 SQL과 같은 기술적인 부분은 다루지 않고 데이터 프로파일링의 이해를 돕기 위한 간략한 설명만을 담고자 한다.




1.데이터 프로파일링이란

 

1-1. 정의

범죄 수사기법인 프로파일링의 사전적 의미를 검색해 보면 아래와 같이 '자료수집', '분석', '추론'이라는 단어를 자주 볼 수 있다. 데이터 프로파일링도 이와 다를 것이 없다.



공공정보 품질관리 매뉴얼에서는 '데이터 프로파일링'이란 "데이터 현황분석을 위한 자료수집", "데이터의 통계, 패턴 등을 수집하여 잠재적 오류 징후를 발견하는 방법"으로 정의하고 있다. 쉽게 말해, 결국 오류를 찾아내기 위해 자료를 수집하고 분석한다는 것이다.



1-2. 언제 하는가?

데이터의 저장, 연계, 가공, 활용 등 데이터의 변경이 발생하는 모든 영역에서 수시로 프로파일링을 수행함으로 데이터 오류를 사전에 파악하고 예방할 수 있다.


1-3. 분석 단위

데이터 프로파일링 기법은 보통 단일 컬럼과 같은 작은 단위로 시작하여 테이블과 테이블의 관계를 검증하는 복잡한 단계로 상향식 접근하는데, 낮은 레벨에서 좀 더 복잡한 분석으로 구체화시켜 정확성을 높여 나가는 것이 일반적이다.





2. 프로파일링 절차

프로파일링은 아래와 같은 절차로 수행할 수 있으며, 특히 도메인을 정의하고 진단방법을 선정하는 단계에서 많은 시간이 소요된다. 따라서 진단대상의 표준화 수준, 산출물 보유 여부 등 데이터베이스 관리 수준이 높을수록 프로파일링에 소요되는 비용이 줄어들 수 있다.

 프로파일링 절차 예시 



2-1. 기준정보 수집

프로파일링 분석을 하기 위한 기준 정보를 수집한다. 데이터베이스의 관리 수준에 따라 관리되고 있는 산출물의 수준도 다를 것이다. 관리 산출물의 현행화가 수시로 이루어지고 있고 시스템화되어 있다면, 기준정보를 참고하는 프로파일링의 정확도도 높아지게 된다.


 기준 정보가 될 수 있는 관리산출물 예시 - 출처: 공공정보 품질관리 메뉴얼 



2-2. 메타정보 추출 및 도메인 정의
데이터베이스의 사진 정보를 조회하여, 테이블 및 컬럼 정보를 추출한다. 컬럼 레벨로 도메인을 분류하는데, 도메인이 정의되어 있다면 해당 도메인을 참고하여 그룹화 한다. 그룹화한 대상들은 도메인 그룹별로 같은 진단 방법을 사용할 확률이 높아지는데, 예를 들어 XX 일자, XX 년도, XX 일시 등과 같은 날짜 속성은 날짜 검증이라는 동일한 검증방법을 통해 오류를 찾아내게 된다.

 도메인 정의 예시 



2-3. 진단방법 선정

진단대상을 분류한 후, 분류된 도메인과 수집한 기준 정보를 참고하여 진단방법을 결정한다. 그룹화한 도메인은 보통 동일한 진단방법을 가져가게 되며, 진단방법별로 그룹화 함으로써 진단SQL 수정 등과 같은 변경관리가 용이해진다. 오류율 또한 진단방법에 따라 분류 되므로 오류가 발생했을 때 유형별로 쉽게 파악이 가능해진다.


≪ 도메인별 진단방법 매핑 예시 ≫


 

≪ 기준정보를 참고하여 컬럼별 진단방법 확정 예시≫




진단방법 결정 시, 컬럼분석 정보를 활용하면 많은 도움이 되는데, 컬럼분석을 통해 오류뿐만 아니라, 데이터 값의 빈도, 데이터 패턴 등을 미리 파악할 수 있다. 데이터베이스에서 통계정보를 주기적으로 수집한다면 해당 딕셔너리 정보를 활용해도 되며, 수집하지 않는 경우 별도의 스크립트를 작성하여 정보를 수집한다.




2-4. 프로파일링 실시

진단방법이 결정되면 진단방법별로 진단을 수행하고 결과를 리포트 한다. 그리고 리포트 된 사항이 올바른 것인지 관련 업무담당자와 협의하고, 협의된 내용을 토대로 진단스크립트를 보완하여 최종 확정한다. 더 나아가, 확정된 사항이 업무적인 중요 하다면 그 중요도를 고려하여 업무규칙으로 내부 공식화한다.


데이터는 생명주기에 따라 지속적으로 변화한다. 따라서 1회성 진단에 그치지 않고 진단주기에 대한 정책을 수립하여 정기적인 진단을 통해 오류를 식별하고 조치하는 것이 중요하다. 또한 데이터 품질에 대한 내/외부 소통 경로를 마련하여 품질 개선 요청사항을 진단스크립트에 반영한다면, 좀 더 의미 있는 진단이 가능해질 것이다.




마치며 


데이터 품질이 중요하다는 것은 어느 누구도 부정하지 않으면서 당장 가시적인 ROI를 얻을 수 없다고 생각해 주저하는 모습을 자주 보게 된다. 아직 데이터 품질의 중요성이 피부에 와 닿지 않는 것일지도 모른다. 그렇다면 생각지도 못한 데이터 오류를 직접 눈으로 보게 된다면 어떨까?


데이터 프로파일링은 실제 발생하고 있는 데이터를 직접 들여다 볼 수 있는 좋은 기회이다. 당장 품질관리체계를 완벽하게 갖추고 실행해 나가기 어렵다면, 프로파일링을 통해서 데이터를 진단해보자. 품질관리 중요성을 인식하고, 관리체계를 마련하는 발판이 될 수 있을 것이다.


참고자료 

˹데이터진흥원˼ dbguide.net

˹한국정보화진흥원˼ 공공정보 품질관리 매뉴얼