[SI] 프로젝트 12주차

소복치·2025년 2월 13일

이번주는

  1. 계속 들어오는 새로운 데이터들은 검증하는것
  2. PK 작업
  3. 코드 매핑 작업

진행할 예정이다.

1. 데이터 검증

데이터 검증은 계속적으로 진행하고 있던 업무이기 때문에 설명 PASS

2. PK 작업

이번주 최대 이슈..
PK로 지정했던 컬럼에 중복 데이터들이 들어오는 것이다.

그래서 이 문제를 해결하기위해

지금은 PK의 중요도가 높지 않으므로 삭제 vs 중복 데이터를 찾아 규칙을 만들어 다시 적재

이 두가지의 의견으로 갈리고 있다.

여기서 의문점.. 나는 테이블의 PK는 무조건 있어야한다고 알고 있기에
PK의 중요도가 높지 않다는건 무슨 의미인지 이해가 되지않아 찾아보기로했다.

PK는 필수 인가?

결론적으론 레코드를 각각 식별할 필요없는 데이터(ex.분석을 위해 수집한 수많은 데이터..) 는 굳이 PK를 둘 필요가 없다.
하지만 PK를 설정하지 않으면 RDB의 이점을 제대로 사용하지 못한다고 할 수 있다.

결국 PK를 지정하기 위해 PK의 조건을 가질만한 코드성 데이터를 쿼리로 날려서 확인하였다.

SELECT 코드_컬럼1, 코드_컬럼2, COUNT(*) AS 중복_개수
FROM 테이블명
GROUP BY 코드_컬럼1, 코드_컬럼2
HAVING COUNT(*) > 1;

위 코드로 찾은 결과 나는 PK를 생성하기위해 규칙을 정했다.

  1. 코드를 관리하고 있지않은 계열사들은 빈값이 아닌 '--' 를 넣기
  2. 완전하게 똑같은 데이터는 이중처리가 됐는지 문의 후 삭제
  3. 시퀀스 부여

이와 같은 규칙을 이용해 중복 데이터 때문에 잡히지 않았던 PK들을
잡을 수 있었다.

3. 코드매핑 작업

이 작업은 결국 삭제가 되었다.
(이유 : 계열사별로 사용하고 있는 의미들이 가지각색으로 달라 의미를 모르는 내가 함부로 매핑작업을 진행할 수 없어, 고객사에서 처리하기로 하여 업무가 없어졌다.)

profile
오늘 터져도내일 다시극복

0개의 댓글