Apache Flink를 사용한 스트림 처리 애플리케이션
오픈 소스
Amazon Kinesis Data Analytics에는 Apache Flink, Apache Beam, Apache Zeppelin, AWS SDK 및 AWS 서비스 통합과 같은 오픈 소스 라이브러리가 포함되어 있습니다. Apache Flink는 가용성 및 정확성이 탁월한 스트리밍 애플리케이션을 구축할 수 있는 오픈 소스 프레임워크 및 엔진입니다. Apache Beam은 여러 실행 엔진에서 실행되는 스트리밍 및 배치 데이터 처리 애플리케이션을 정의하기 위해 통합된 오픈 소스 모델입니다. AWS 소프트웨어 개발 키트(SDK)는 원하는 언어의 애플리케이션 프로그램 인터페이스(API)를 제공하여 복잡한 코드 작업 없이 다수의 AWS 서비스를 활용할 수 있도록 지원하며 AWS 라이브러리, 코드 샘플 및 설명서가 포함되어 있습니다.
유연한 API
Kinesis Data Analytics는 상태 유지 이벤트 처리, 스트리밍 ETL 및 실시간 분석을 포함한 다양한 사용 사례에 특화된 Java, Scala, Python 및 SQL 기반의 유연한 API를 제공합니다. 사전 구축된 연산자 및 분석 기능을 사용하여 몇 개월이 걸리던 Apache Flink 스트리밍 애플리케이션 구축을 몇 시간 내에 마칠 수 있습니다. Kinesis Data Analytics 라이브러리는 확장 가능하므로 다양한 사용 사례에 대해 실시간 처리를 수행할 수 있습니다.
AWS 서비스 통합
최소한의 코드로 데이터 원본 또는 대상을 설정하고 통합할 수 있습니다. Amazon Kinesis Data Analytics 라이브러리를 사용하면 Amazon Simple Storage Service(S3), Amazon Managed Streaming for Apache Kafka(Amazon MSK), Amazon OpenSearch Service, Amazon DynamoDB, Amazon Kinesis Data Streams, Amazon Kinesis Data Firehose, Amazon CloudWatch 및 AWS Glue 스키마 레지스트리와 통합할 수 있습니다.
고급 통합 기능
AWS 통합 외에도, Kinesis Data Analytics 라이브러리에는 10개가 넘는 Apache Flink 커넥터가 포함되어 있으며 사용자 지정 통합을 구축할 수도 있습니다. 고급 기능을 사용하여 코드 몇 줄만 추가하면 각 통합의 작동 방식을 수정할 수 있습니다. 또한, 파일, 디렉터리, 소켓 또는 인터넷을 통해 액세스 가능한 기타 소스를 읽고 쓸 수 있는 Apache Flink의 기본 기능 세트를 사용하여 사용자 지정 통합을 구축할 수도 있습니다.
AWS Glue 스키마 레지스트리와 호환
Kinesis Data Analytics for Apache Flink는 AWS Glue 스키마 레지스트리와 호환됩니다. 이 서비리스 AWS Glue 기능을 통해 추가 요금 없이 등록된 Apache Avro 스키마를 사용하여 스트리밍 데이터의 변화를 검증하고 제어할 수 있습니다. 스키마 레지스트리는 Apache Kafka, Amazon Managed Streaming for Apache Kafka(MSK) 또는 Amazon Kinesis Data Streams에 소스 또는 싱크로 연결하는 Kinesis Data Analytics for Apache Flink 워크로드의 스키마를 관리하는 데 도움이 됩니다. 데이터 스트리밍 애플리케이션을 스키마 레지스트리와 통합하면 스키마 변화를 관리하는 호환성 확인을 사용하여 데이터 품질을 개선하고 예기치 않은 변경으로부터 보호할 수 있습니다.
정확히 한 번 처리
Kinesis Data Analytics의 Apache Flink를 사용하여 처리된 레코드가 정확히 한 번만 결과에 영향을 미치는 애플리케이션(Exactly Once Processing)을 구축할 수 있습니다. 내부 서비스 유지 관리 또는 사용자가 시작한 애플리케이션 업데이트로 인해 애플리케이션 중단이 발생하는 경우 이 서비스는 모든 데이터가 중복 데이터 없이 처리될 수 있습니다.
상태 유지 처리
이 서비스는 이전 및 진행 중인 계산 또는 상태를 실행 중인 애플리케이션 스토리지에 저장합니다. 애플리케이션 중단 시 실시간 결과 및 이전 결과를 모든 기간에 걸쳐 비교하고 빠르게 복구할 수 있습니다. 상태는 항상 암호화되며 실행 중인 애플리케이션 스토리지에 증분 저장됩니다.
내구성이 뛰어난 애플리케이션 백업
단순한 API 호출을 통해 내구성이 뛰어난 애플리케이션 백업을 생성하고 삭제할 수 있습니다. 중단 후 최신 백업에서 즉시 애플리케이션을 복원하거나 애플리케이션을 이전 버전으로 복원할 수 있습니다.
Amazon Kinesis Data Analytics Studio
스트림 검사 및 시각화
Kinesis Data Analytics Studio는 내장형 시각화를 통해 1초 미만의 쿼리를 지원합니다. 임시 쿼리를 수행하여 데이터 스트림을 빠르게 검사하고 결과를 몇 초 안에 볼 수 있습니다.
단순한 구축 및 실행 환경
Studio 노트북은 스트림 처리 애플리케이션의 개발, 코드 디버깅 및 실행을 위한 단일 인터페이스 개발 경험을 제공합니다.
SQL, Python 또는 Scala를 사용한 처리
Kinesis Data Analytics Studio는 SQL, Python 및 Scala를 동일한 개발 환경에서 지원합니다. 기본적으로 지원되는 특정 Apache Flink 기능을 통해 노트북 안에서 데이터와 상호 작용할 때 구문 강조 표시, 검증 및 상황에 맞는 제안을 통해 가이드를 제공합니다.
빠른 서버리스 스트림 처리 애플리케이션 개발
프로비저닝하거나 관리하거나 크기를 조정할 서버가 없습니다. 코드를 작성하고 애플리케이션에서 이용하는 리소스에 대한 비용만 지불하면 됩니다. 노트북에서 자동 조정 및 내구성 있는 상태를 통해 지속적으로 실행 중인 스트림 처리 애플리케이션에 코드를 손쉽게 배포할 수 있습니다.
오픈 소스
Kinesis Data Analytics Studio는 지속적으로 실행되면서 프로덕션에 사용되는 Apache Flink 애플리케이션을 생성하며, Apache Zeppelin 노트북은 선택한 언어로 스트리밍 애플리케이션을 작성할 수 있는 익숙하고 편리한 경험을 제공합니다.
AWS Glue Data Catalog 통합
AWS Glue Data Catalog는 테이블 정의가 포함된 중앙 리포지토리 역할을 하는 영구 메타데이터 스토어입니다. AWS Glue Data Catalog를 사용하면 여러 AWS 데이터 집합 전체에서 신속하게 데이터를 검색할 수 있습니다. Kinesis Data Analytics Studio는 소스 및 대상 테이블의 스키마를 정의할 수 있는 AWS Glue Data Catalog와 호환됩니다.
Kinesis Data Analytics SQL 애플리케이션
새로운 프로젝트의 경우 Kinesis Data Analytics for SQL Applications 대신, 최신 Kinesis Data Analytics Studio를 사용하는 것이 좋습니다. Kinesis Data Analytics Studio에서는 고급 분석 기능을 손쉽게 사용하여 정교한 스트림 처리 애플리케이션을 몇 분 안에 구축할 수 있습니다.
표준 SQL 지원
Kinesis Data Analytics는 표준 ANSI SQL을 지원하므로 SQL만 다룰 줄 알면 사용할 수 있습니다.
통합된 입력 및 출력
Kinesis Data Analytics는 Amazon Kinesis Data Streams 및 Amazon Kinesis Data Firehose와 통합되므로 즉시 스트리밍 데이터를 수집할 수 있습니다. Kinesis Data Analytics에 입력 스트림을 지정하기만 하면 자동으로 데이터를 읽고 구문 분석하며 처리 가능한 상태로 제공합니다. Kinesis Data Firehose를 통해 처리된 결과를 Amazon S3, Amazon Redshift, Amazon OpenSearch Service 등 다른 AWS 서비스로 내보낼 수 있습니다. 또한, 출력 데이터를 Amazon Kinesis Data Streams로 전송하여 고급 스트림 처리 파이프라인을 구축할 수 있습니다.
콘솔 기반 SQL 편집기
콘솔 기반 편집기를 통해 슬라이딩 시간대 평균과 같은 스트리밍 데이터 작업을 사용하여 SQL 쿼리를 구축할 수 있습니다. 또한, 실시간 데이터를 사용하여 스트리밍 결과와 오류를 보고 대화식으로 스크립트를 디버깅하거나 추가로 조정할 수 있습니다.
사용이 간편한 스키마 편집기
Kinesis Data Analytics에서는 사용이 간편한 스키마 편집기를 사용하여 입력 데이터의 구조를 검색하고 편집할 수 있습니다. 이 마법사는 JSON 및 CSV 같은 표준 데이터 형식을 자동으로 인식하고, 입력 데이터의 구조를 추론하여 기본 스키마를 생성합니다. 스키마 편집기에서 이 기본 스키마를 추가로 구체화할 수 있습니다.
사전 구축된 SQL 템플릿
대화식 SQL 편집기는 SQL 템플릿 모음과 번들로 제공됩니다. 이 템플릿 모음은 집계, 이벤트별 변환, 필터링과 같은 가장 일반적인 유형의 작업에 대한 기본 SQL 코드를 제공합니다. 분석 작업에 적합한 템플릿을 선택하고 SQL 편집기를 사용하여 제공된 코드를 편집하여 특정 사용 사례에 맞게 사용자 지정하면 됩니다.
고급 스트림 처리 함수
Kinesis Data Analytics에서는 스트림 처리에 최적화된 함수를 제공하므로, 스트리밍 데이터에 대해 이상 탐지, 상위 K 분석 등과 같은 고급 분석을 손쉽게 수행할 수 있습니다.