[AWS] Kinsis Firehose 동적 파티셔닝에 대해 알아보자

Joney의 SW 공부 블로그·2023년 7월 18일
0

AWS Kinesis

목록 보기
2/2

Firehose 동적 파티셔닝

  • 동적 파티셔닝을 활성화 하게 되면 데이터 내의 키를 사용하여 Kinesis Firehose에서 스트리밍 데이터를 지속적으로 분할하여 처리 가능
  • 키로 그룹화된 데이터를 해당하는 S3 접두사로 전송 가능하다

파티션 키 사용 방법

  • 동적 파티셔닝을 활성화하게 되면 키를 설정할 수 있는 옵션이 나온다.

  • 동적 파티션 키는 jq 표현식을 사용해서 설정 가능하며, 데이터에 있는 키를 사용해서 설정하게 된다.

  • Lambda를 사용하여 레코드에 파티션 키를 추가해 줄 수도 있다.

    • Lambda가 처리하는데에 사용되는 처리 시간과 quota를 생각하면, 초당 스트림 되는 레코드 수가 굉장히 큰 경우는 적절하지 않다.
  • 설정한 파티션 키는 S3 접두사로 사용된다.

    • 파티션 키는 S3 접두사 설정에 전부 사용되야 한다.

파티션 키를 설정할 때 주의해야할 점

내가 Kinesis를 사용하면서 느낀 점과 경험을 적어보겠다.

  • Kinesis Firehose는 최대 500개의 파티션을 만들 수 있다.
    • 파티션 키를 잘 못 설정하게 되면 파티션 수가 500을 넘어서 Throttling이 발생할 수 있다.
    • 레코드 수가 너무 많을 때는 파티션을 위한 랜덤 숫자(1~20 정도)를 데이터 키로 추가해서 처리하는 방법도 있음
    • 파티션 수가 500이 넘을 정도의 데이터 양이면 Lambda로 파티션 키를 처리하는 거는 권장하지 않음
  • 파티션 키를 전부 S3의 접두사로 사용되어야 하는데, S3 데이터 사용을 최적화 하기 위한 설계가 필요
    • Athena, Glue 등의 분석 툴을 최적하게 사용하기 위해서는 S3 폴더 구조 설계가 절대적으로 필요
    • 로그 분석으로 사용한다면, 접근하기 쉽게 설계 필요
  • 결론적으로 S3의 구조를 최적으로 가져가면서 활성화되는 파티션 수를 최적화 할 수 있는 파티션 키 설정이 필요하다.
profile
SW 지식 노트 블로그

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

소중한 정보 잘 봤습니다!

답글 달기