안녕하세요 먼지입니다.
오늘은 BI 프로젝트를 진행하면서 어쩔 수 없이 자체적으로 ERP DB를 파악했던 경험을 간단하게 적어보려 합니다.
문제 상황.
고객사에 ERP 구축 프로젝트를 D업체가 들어간 상황이었고, 제가 속한 팀이 BI 프로젝트를 맡게 되었습니다.
BI 리포트를 만들기 위해선 ERP에서 구축한 DB에 어떤 데이터가 있는 지 알아야 하는 상황이었지만, 그다지 호의적이지 않았습니다. 바쁘다고 짜증을 내더군요;
이게 팀에서 파악할 수 있는 상황이면 알아서 했겠지만, ERP DB 테이블이 1000개 정도 됩니다.
심지어 아직 ERP구축이 완료된 상황도 아니라 일부 데이터만 들어온 상황이었습니다.
또한 경험해보신 분들은 알겠지만, 칼럼명이 친절하지 않습니다. PA_001 이런식의 칼럼명도 있기 때문에 파악하기 어려운 상황이었던 것 같습니다.
어려운 상황이었지만 팀원들과 일일이 하나씩 테이블을 찾아본 결과 ERP DB를 파악할 수 있는 대략적인 방법을 적어볼까 합니다.(아래 사용하는 테이블 명 및 칼럼명은 정확하지 않습니다)
1. 마스터(mst), 디테일(dtl) 테이블
보다보면 AAAA_mst, AAAA_dtl 테이블이 있었습니다. 마스터 테이블이란 총 요약 테이블, 가장 기본이 되는 테이블입니다. 그렇기에 가장 먼저 파악해야 하는 테이블이고, 마스터 테이블에 대한 상세 설명이 디테일 테이블에 있습니다.
예를 들어, 급여관련 테이블에선 직원정보 + 총급여액이 pay_mst 테이블에 담겨져 있었습니다.(ex. 300만원)
pay_dtl 테이블엔 각 급여 항목(기본급, 연장수당..) 등이 한줄 한줄 row단위로 들어가 있었습니다.(기본급 250만원, 연장수당 20만원...)
따라서 _mst, _dtl 개념만 알아도 조금 수월해집니다.
2. 테이블 설명 테이블 찾기
잘 찾다보면 table_mst, table_dtl 라는 테이블이 있었습니다.
이 테이블의 경우 테이블의 설명을 적어놓은 것으로, 테이블의 이름, 한글이름, 칼럼명, 한글칼럼명, key 여부 등이 상세히 나와있습니다. 이 테이블의 칼럼들을 보고나니 어려운 영어 칼럼명들을 파악하기 한결 수월해졌고 필요한 데이터를 찾을 수 있었습니다.
3. 코드(cd) 관계 파악
이건 솔직히 ERP팀에서 알려주지 않으면 알기 어렵습니다.
마찬가지로 cd_mst 라는 테이블이 있을 것이고, 어떤 menu인지에 따라 cd가 달라졌습니다.
예를 들어, 매출이라는 항목에 대한 코드의 경우 menu_cd = 10, 판매 관련 코드의 경우 menu_cd = 11에 맵핑이 되고 각 menu_cd에 대한 또 다른 코드가 존재합니다.
한마디로 menu_cd = 10 일때 base_cd = 1, 2, 3, 4, ... 이런식으로 구조를 가집니다.
솔직히, ERP DB를 자체적으로 다 파악하긴 어려운 것 같습니다. 팀에서도 모든 테이블 정보를 엑셀에 정리해보았지만 아무래도 한계가 있더라고요. 최대한 도움을 받는 편이 맞지만, DB구조를 조금이라도 알고 나면 요청하기도, 데이터 찾기 조금 수월하지 않을까 싶습니다.
감사합니다.
'데이터분석' 카테고리의 다른 글
[pandas] if 문으로 빈 데이터프레임 거르기 (0) | 2023.03.16 |
---|---|
[pandas] 데이터프레임 날짜 인덱스 늘리기(reindex) (0) | 2023.03.16 |
[Pandas] 데이터 음수값 없애기 (0) | 2023.03.14 |