안녕하세요. 잇킹 시도르입니다.
Redshift를 활용하면서 몇 가지 기존의 RDB와는 다른 점으로 인해서 문제가 종종 있습니다. 이번에는 제약조건 때문인데요. 바로 PK였습니다.
PK(기본키)는 Unique Key + NOT NULL입니다. 당연히 PK를 지정했으니, Redshift 테이블에서도 이를 보장할 거라고 생각했는데요. 단위 테스트를 진행하다 보니, PK를 만족하지는 중복된 Row들을 발견할 수 있었습니다.
또 PK를 잘못 지정했는지 재확인하고 PK컬럼이 중복이 아닌 건가? 하고 또 확인하고 했었는데요.
결론은 Redshift에서 제약조건은 참고용일 뿐 보장하지 않았습니다.
제약조건은 실행 계획의 힌트로 사용되며, PK를 처리를 위해서는 애플리케이션이나 프로시저에서 처리해야 한다는 거였죠.
Redshift 개발자 안내서에서 제약 조건에 관련된 링크입니다.
docs.aws.amazon.com/ko_kr/redshift/latest/dg/t_Defining_constraints.html
AWS의 DW 제품인 Redshift를 활용하면서 이런저런 상황을 겪고 있네요.ㅎㅎㅎ
이상입니다!!!
'Programming > Cloud' 카테고리의 다른 글
[Redshift]테이블 컬럼 정보 조회(컬럼desc, PK, 컬럼 사이즈 등) (0) | 2020.11.04 |
---|---|
[Redshift][Amazon](500310) Invalid operation : relation already exists; (0) | 2020.11.02 |
[AWS]S3 versioning (0) | 2020.04.27 |
[AWS]EC2 생성하기 (0) | 2020.03.02 |
[AWS]VPC 생성하기(4) - 가용영역과 서브넷 추가(Auto 퍼블릭 IP 할당) (0) | 2020.02.28 |