본문 바로가기
Database

[Postgresql, Redshift] 데이터 현황 확인하기

by 데브겸 2023. 6. 27.

데이터 웨어하우스의 경우 PK Uniqueness를 보장하지 않는 경우가 많다. PK Uniqueness를 보장하기 위해선 레코드 하나하나 다 검사하면서 처리해야 하는데, 그렇게 되면 메모리를 너무 많이 잡아먹기 때문. 데이터 웨어하우스에는 수만건의 데이터를 적재해야 하는 경우가 많은데, 그렇게 할 경우 너무 많은 시간과 비용을 차지하게 된다.

 

최소한의 방법으로 PK Uniqueness를 확인하는 방법을 정리한다. 여기에선 아주 간단한 버전만 알아보고, 다음 포스팅에서 조금 더 심화된 내용을 다룰 예정

+ 그 외 데이터 엔지니어링 시작 전 확인해보면 좋을 것들을 함께 정리!

 

 

중복 데이터 있는지 확인하기 (PK에 대해서 실행하면 특히 좋음)

-- 아래 두 쿼리의 결과를 비교하기
SELECT COUNT(1) FROM test_channel;

SELECT COUNT(1) FROM (
  SELECT DISTINCT * FROM test_channel
);

 

-- channelname이 PK인 경우
SELECT channelname, COUNT(1) 
FROM test_channel
GROUP BY 1
ORDER BY 2 DESC;

 

 

데이터 생성 시점들 확인해보기 

간혹 데이터 파이프라인 에러 등으로 데이터가 안 들어온 경우 체크할 수 있음

SELECT LEFT(ts, 7), COUNT(1)
FROM raw_data.session_timestamp
GROUP BY 1;

 

 

값에 NULL 있는지 체크

주의할 점은 null이나 boolean에 대해서는 !=, == 가 아니라 IS, IS NOT 사용해야 한다는 점

SELECT COUNT(1)
FROM test_channel
WHERE value IS NOT NULL;