또한 실시간으로 데이터를 수집하기 원하며 데이터를 변형하고 변형된 데이터를 SQL을 통해 요청하며 이러한 쿼리를 사용해 생성된 보고서가 S3에 저장되도록 함
이후 데이터를 데이터 웨어하우스에 등재해 대시보드를 생성하고자 함
대체로 수집이나 회수, 변형, 혹은 쿼리 및 분석 과정에서 흔히 발생하는 빅 데이터 문제를 어떻게 처리할까
IoT Core는 장치에서 실시간으로 전송받은 데이터를 Kinesis Data Steam으로 직접 전달 즉, 데이터 생산자가 IoT 장치일 때, 이를 위해 IoT 장치의 관리를 돕는 IoT Core 기능
Kinesis의 데이터 스트림은 빅 데이터가 실시간으로 Kinesis 서비스에 전송되도록 허용
Kinesis Data Firehose는 Kinesis와 통신해서 1분마다 S3 버킷에 데이터를 입력하고 오프로드하며 이를 수집 버킷이라고 함 이를 이용해 아래처럼 여러 장치에서 많은 데이터를 실시간으로 얻을 수 있는 파이프라인 마련
람다 함수를 이용해 S3 버킷에 데이터를 매분 입력해줄 뿐만 아니라 빠른 속도로 데이터를 정리하거나 변형하도록 함 람다 함수는 Kinesis Data Firehose와 직접 연결된 상태
데이터 수집 버킷은 SQS 대기열을 작동할 수 있으며 SQS 대기열은 람다 함수를 실행하고 람다는 SQL 쿼리를 실행해 Ahtena 쿼리는 수집 버킷에서 데이터를 가져와 SQL 쿼리를 생성하고 출력값은 보고 버킷으로 이동 이 때 보고 버킷은 수집 버킷이 아닌 S3에 있는 다른 버킷 이 과정을 통해 데이터를 보고하고 정리, 분석 가능
이 후 QuickSight를 통해 직접 시각화하거나
RedShift 같은 데이터 웨어하우스에 데이터를 입력해 분석할 수 있음 RedShift 데이터 웨어하우스는 QuickSight의 엔드 포인트로 작용
Big Data Ingestion Pipeline discussion
IoT Core는 여러 IoT 장치에서 데이터 수집을 허용
Kinesis는 실시간 데이터 수집에 적합
Firehose는 실시간에 가깝게 S3로 데이터를 운반 (선택 가능한 최적 간격은 1분)
Lambda는 Firehose를 도와 데이터를 변형
S3는 SQS, SNS에 트리거 알림을 실행
Lambda는 SQS를 구독할 수 있으며 S3를 Lambda에 연결하기도 함
Athena는 서버리스 SQL 서비스로 Athena의 결과는 S3에 직접 저장됨
보고 버킷은 분석된 데이터를 보관
추가로 분석이 필요하면 시각화에 쓰이는 QuickSight 혹은 RedShift 등의 보고 도구를 사용