2017-05-10 1 views
0

센서에서 Kinesis로 메시지를 수신하고 있습니다. 람다를 사용하여 처리하고 Kinesis Firehose를 사용하여 Redshift에로드합니다. 모든 메시지는 구문 분석되어 하나의 대형 스테이징 테이블에 삽입됩니다. 우리는 센서 데이터의 집계/분석을 수행해야합니다. 센서 데이터 옆에는 저장하지만 현재 사용하지 않는 헤더에 많은 정보가 있습니다.정규화 대 압축

이 스테이징 테이블의 데이터를 표준화 된 스타 스키마로로드하거나 열에 압축을 사용하고 대신 거대한 하나의 비정규 화 테이블을 사용하는 것이 합리적입니까? Redshift가 비정규 화 된 데이터와 얼마나 잘 작동합니까? 두 옵션의 장단점

+0

"정규화 된 스타 스키마"가 무엇을 의미하는지 확실하지 않습니다 - 별표 스키마는 * 비정규 *로 정의되어 있습니다. – Nathan

+0

당신의 가설을 시험 해보지 그래? 스타 스키마에 tge 데이터를로드하고 자주 사용하는 쿼리 및 테이블 크기를 벤치 마크하십시오. 그리고 하나의 큰 테이블에 데이터를로드하고 동일한 작업을 수행하십시오. 당신은 당신의 대답을 얻을 것입니다. 그것은 실제로 테이블과 데이터 크기의 유스 케이스에 달려있다. 이것에 대해서는 "올바른 길"이 없습니다. – Satyadev

+0

@ Nathan 맞습니다. 표준화 된 크기의 눈송이와 같은 의미입니다. – szu

답변

1

필자의 경험에 비추어 볼 때 열이 많은 거대한 테이블은 느린 쿼리를 유발합니다. 넓은 테이블 대신 좁은 테이블을 만들면 성능이 향상 될 수 있습니다. 수행 할 작업을 결정하기 전에 분석에 대한 쿼리와 집계 테이블 생성에 대한 쿼리는 물론 데이터의 희소성을 고려해야합니다. 반면 조인은 전반적으로 비싸다. 그리고 '조인'이 많은 구조가 필요하다면 정렬 키와 dist 키를 적절하게 조정해야합니다. 여기에 문서가 있습니다 https://aws.amazon.com/blogs/big-data/optimizing-for-star-schemas-and-interleaved-sorting-on-amazon-redshift/