kinesis3 Kinesis Firehose - Lambda를 이용한 Dynamic Partitioning구현 Lambda 생성 원하는 언어를 선택해서 Lambda를 생성한다. 여기서 Lamda 실행 IAM Role은 default로 생성되는 기본 role을 사용해도 되고, Lambda 함수 timeout은 1분 이상으로 설정한다. (링크에서 Firehose의 데이터를 변환하는 Python, Go 예제 코드를 확인 가능) 아래는 source record를 파싱해서 partition key를 지정하는 Python 예제 코드이다. from __future__ import print_function import base64 import json import datetime # Signature for all Lambda functions that user must implement def lambda_handler(f.. 2023. 8. 27. Fluentd -> Kinesis Data Stream -> S3 1. Kinesis data stream 생성 aws kinesis create-stream --stream-name test-stream 생성 확인 → 상태가 Active이면 사용 가능 aws kinesis describe-stream-summary --stream-name test-stream 스트림 리스트 확인 aws kinesis list-streams 2. fluentd에서 output에 kinesis 설정 → fluentd container에 aws credentials가 환경변수로서 등록되어 있어, 여기서 따로 추가하지 않음 @type kinesis_streams region ap-northeast-2 stream_name test-stream 3. Kinesis Data Streams 에서.. 2023. 2. 12. Kinesis Firehose Dynamic partitioning 설정 Kinesis Data Streams를 이용하면서, 다른 AWS 서비스에 DataStreams에 write된 데이터를 전달하는 경우에 Kinesis Firehose (Delivery Stream)을 사용한다. 내 경우에는 AWS S3로 데이터를 전달하는 용도로 사용하는데, Firehose는 UTC의 타임존을 기준으로 S3 경로를 설정하기 때문에 실제 데이터에 기록되는 KST기준의 시간과 디렉토리의 경로 명이 맞지 않는 문제가 발생했다. 그래서 방법을 찾아본 결과, Firehose의 타임존을 설정으로 변경할 수는 없다. 하지만, Dynamic partitioning을 사용해서 S3 Prefix를 커스터마이징 할 수 있다. 타임존을 변경하는것 외에도 시간이 아닌 다른 key를 설정 할 수도 있고, 데이터를 .. 2022. 12. 4. 이전 1 다음