일반
대화형 분석을 사용하면 스트리밍 데이터를 실시간으로 탐색할 수 있습니다. 임시 쿼리 또는 프로그램을 통해 Amazon MSK 또는 Amazon Kinesis Data Streams의 스트림을 검사하고 이러한 스트림 내의 데이터 형태를 시각화할 수 있습니다. 예를 들어 시간대별 평균을 계산하는 실시간 지표의 동작을 보고 선택한 대상으로 집계 데이터를 전송할 수 있습니다. 대화형 분석은 스트림 처리 애플리케이션의 반복 개발에도 도움이 됩니다. 구축하는 쿼리는 새 데이터가 도착할 때마다 지속적으로 업데이트됩니다. Kinesis Data Analytics Studio를 사용하면 이러한 쿼리를 배포하여 자동 조정 및 내구성이 우수한 상태 백업이 활성화된 상태로 지속적으로 실행할 수 있습니다.
Apache Beam을 사용하여 Kinesis Data Analytics 애플리케이션을 생성하는 작업은 Apache Flink를 시작하는 방법과 매우 비슷합니다. 위 질문의 지침을 따르세요. 개발자 안내서의 지침에 따라 Apache Beam에서 애플리케이션을 실행하는 데 필요한 구성 요소를 설치해야 합니다. Apache Beam에서 실행하는 경우에만 Kinesis Data Analytics는 Java SDK를 지원합니다.
Amazon Kinesis Data Analytics 콘솔에서 시작하고 새로운 Studio 노트북을 생성할 수 있습니다. 노트북을 시작한 후 Apache Zeppelin에서 노트북을 열어 SQL, Python 또는 Scala로 즉시 코드를 작성할 수 있습니다. 내장된 통합과 사용자 지정 커넥터를 통한 기타 다양한 소스로 Amazon Kinesis Data Streams, Amazon MSK 및 Amazon S3의 노트북 인스턴스를 사용하여 대화형으로 애플리케이션을 개발할 수 있습니다. Apache Flink가 Flink SQL 및 Table API에서 지원하는 모든 연산자를 사용하여 데이터 스트림의 임시 쿼리를 수행하고 스트림 처리 애플리케이션을 개발할 수 있습니다. 준비가 되면 클릭 몇 번으로 노트북에서 자동 조정 및 내구성 있는 상태를 통해 지속적으로 실행 중인 스트림 처리 애플리케이션으로 코드를 손쉽게 승격할 수 있습니다.
예. Amazon Kinesis Data Analytics for Apache Flink 애플리케이션에서 Apache Flink DataStream Connectors를 통해 AWS Glue의 서버리스 기능인 AWS Glue 스키마 레지스트리를 사용할 수 있습니다. Apache Kafka/Amazon MSK 및 Amazon Kinesis Data Streams를 싱크 또는 소스로 Amazon Kinesis Data Analytics for Apache Flink 워크로드와 통합할 수 있습니다. 스키마 레지스트리 사용 설명서를 참조하여 시작하고 자세히 알아보세요.
주요 개념
애플리케이션 관리
- Amazon Kinesis Data Analytics for Apache Flink 개발자 안내서의 Kinesis Data Analytics 모니터링.
- Amazon Kinesis Data Analytics for Studio 개발자 안내서의 Kinesis Data Analytics 모니터링.
- Amazon Kinesis Data Analytics for SQL 개발자 안내서의 Kinesis Data Analytics 모니터링.
- Amazon Kinesis Data Analytics for Apache Flink 개발자 안내서의 권한 부여.
- Amazon Kinesis Data Analytics Studio 개발자 안내서의 권한 부여.
- Amazon Kinesis Data Analytics for SQL 개발자 안내서의 권한 부여.
요금 및 결제
스트리밍 애플리케이션 실행에 사용하는 Amazon Kinesis 처리 단위(또는 KPU)의 개수에 따라 시간당 요금이 청구됩니다. 단일 KPU는 하나의 vCPU의 컴퓨팅 및 4GB의 메모리로 구성된 스트림 처리 용량 단위입니다. Amazon Kinesis Data Analytics는 스트림 처리 애플리케이션의 요구에 따라 KPU의 수를 자동으로 조정합니다. 메모리 및 컴퓨팅 수요가 처리 복잡성과 처리된 스트리밍 데이터의 처리량에 따라 다르기 때문입니다.
Apache Flink 및 Apache Beam 애플리케이션의 경우 애플리케이션 오케스트레이션에 대해 애플리케이션당 단일 추가 KPU 요금이 청구됩니다. 또한 Apache Flink 및 Apache Beam 애플리케이션의 경우 실행 중인 애플리케이션 스토리지 및 내구성 있는 애플리케이션 백업에 대해 요금이 청구됩니다. 실행 중인 애플리케이션 스토리지는 Amazon Kinesis Data Analytics의 상태 저장 처리 기능에 사용되며, 월별 GB당 요금이 청구됩니다. 내구력이 뛰어난 애플리케이션 백업은 선택 사항으로, 월별 GB당 요금이 청구되고 애플리케이션에 대한 특정 시점 복구를 제공합니다.
Amazon Kinesis Data Analytics Studio의 경우 개발 또는 대화형 모드에서 애플리케이션 오케스트레이션에 대한 추가 KPU 1개와 대화형 개발에 대한 KPU 1개에 대한 요금이 부과됩니다. 애플리케이션 스토리지 실행 요금도 부과됩니다. 내구성이 뛰어난 애플리케이션 백업에는 요금이 부과되지 않습니다.
Apache Flink 애플리케이션 구축
Apache Flink를 사용하는 애플리케이션에 대한 애플리케이션 코드 작성
DataStream <GameEvent> rawEvents = env.addSource(
New KinesisStreamSource(“input_events”));
DataStream <UserPerLevel> gameStream =
rawEvents.map(event - > new UserPerLevel(event.gameMetadata.gameId,
event.gameMetadata.levelId,event.userId));
gameStream.keyBy(event -> event.gameId)
.keyBy(1)
.window(TumblingProcessingTimeWindows.of(Time.minutes(1)))
.apply(...) - > {...};
gameStream.addSink(new KinesisStreamSink("myGameStateStream"));
- 스트리밍 데이터 원본: Amazon Managed Streaming for Apache Kafka(Amazon MSK), Amazon Kinesis Data Streams Destinations, 또는 싱크: Amazon Kinesis Data Streams
- Amazon Kinesis Data Firehose, Amazon DynamoDB, Amazon Elasticsearch Service 및 Amazon S3(파일 싱크 통합을 통함)
Apache Flink에는 Apache Kafka, Apache Casssandra, Elasticsearch 등을 비롯한 다른 커넥터도 포함되어 있습니다.
예. Kinesis Data Analytics for Apache Flink 애플리케이션을 사용하여 Amazon Kinesis Data Streams, Amazon MSK 및 기타 시스템 간에 데이터를 복제할 수 있습니다. 설명서에 제공된 예에서 하나의 Amazon MSK 주제를 읽고 다른 주제에 쓰는 방법을 확인할 수 있습니다.
Amazon Kinesis Data Analytics Studio 애플리케이션 구축
Q: Studio 애플리케이션은 어떻게 개발하나요?
Amazon Kinesis Data Analytics Studio, Amazon Kinesis Data Streams 또는 Amazon MSK 콘솔에서 시작할 수 있습니다. 클릭 몇 번으로 서버리스 노트북을 시작하여 즉시 데이터 스트림을 쿼리하고 대화형 데이터 분석을 수행할 수 있습니다.
대화형 데이터 분석: 노트북에서 SQL, Python 또는 Scala로 코드를 작성하여 몇 초의 쿼리 응답 시간으로 스트리밍 데이터와 상호 작용할 수 있습니다. 내장된 시각화를 사용하여 노트북 안에서 데이터를 탐색하고 스트리밍 데이터에 대한 실시간 인사이트를 볼 수 있으며 Apache Flink로 구동되는 스트림 처리 애플리케이션을 손쉽게 개발할 수 있습니다.
코드를 프로덕션 애플리케이션으로 실행할 준비가 되면 클릭 한 번으로 서버 없이 초당 GB 단위의 데이터를 처리하는 스트림 처리 애플리케이션으로 전환할 수 있습니다.
스트림 처리 애플리케이션: 코드를 프로덕션으로 승격할 준비가 되면 클릭하여 코드를 구축할 수 있습니다. 노트북 인터페이스에서 스트림 처리 애플리케이션으로 배포(Deploy as stream processing application)를 클릭하거나 CLI에서 단일 명령을 실행하면 Studio가 Amazon Kinesis Data Analytics for Apache Flink 애플리케이션에서와 마찬가지로 자동 조정 및 내구성이 우수한 상태가 활성화된 상태로 스트림 처리 애플리케이션을 대규모로 실행하는 데 필요한 모든 인프라 관리를 처리합니다.
Q: 내 애플리케이션 코드는 어떤 형태인가요?
Apache Flink의 Table API를 사용하여 노트북에서 선호하는 언어(SQL, Python 또는 Scala)로 코드를 작성할 수 있습니다. Table API는 확장된 SQL 기능을 지원하는 상위 수준의 추상화이자 관계형 API입니다. 선택, 필터링, 조인, 그룹화, 집계 등과 같은 익숙한 작업과 함께 윈도우 작업과 같은 스트림 관련 개념을 제공합니다. %<interpreter>를 사용하여 노트북 섹션에서 사용할 언어를 지정하고 여러 언어를 손쉽게 전환할 수 있습니다. 인터프리터는 개발자가 노트북의 각 섹션에 대한 언어 또는 데이터 처리 엔진을 지정하는 데 사용되는 Apache Zeppelin 플러그인입니다. 사용자 정의 함수를 구축하고 참조하여 코드 기능을 개선할 수도 있습니다.
Q: 지원되는 SQL 작업은 무엇입니까?
스캔 및 필터링(SELECT, WHERE), 집계(GROUP BY, GROUP BY WINDOW,HAVING), 설정(UNION, UNIONALL, INTERSECT, IN, EXISTS), 주문(ORDER BY, LIMIT), 조인(INNER, OUTER, 시간 한정 윈도우 –BETWEEN, AND, 임시 테이블 조인 – 시간대별 변경을 추적하는 테이블), 상위 N개 항목, 중복 제거 및 패턴 인식과 같은 SQL 작업을 수행할 수 있습니다. GROUP BY, OUTER JOIN 및 상위 N개 항목과 같은 일부 쿼리는 스트리밍 데이터의 ‘업데이트 결과’입니다. 즉, 스트리밍 데이터가 처리되는 동안 결과가 지속적으로 업데이트됩니다. CREATE, ALTER 및 DROP과 같은 다른 DDL 문도 지원됩니다. 쿼리 및 샘플의 전체 목록은 https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/sql/queries.html을 참조하세요.
Q: Python 및 Scala는 어떻게 지원되나요?
Apache Flink의 Table API는 Python 문자열 및 Scala 표현식을 사용하는 언어 통합을 통해 Python 및 Scala를 지원합니다. 지원되는 작업은 선택, 주문, 그룹화, 조인, 필터링 및 윈도우 작업을 비롯하여 지원되는 SQL 작업과 매우 유사합니다. 작업 및 샘플의 전체 목록은 설명서에 포함되어 있습니다.
Q: 지원되는 Apache Flink 및 Apache Zeppelin 버전은 무엇인가요?
지원되는 Apache Flink 버전에 대한 자세한 내용은 Amazon Kinesis Data Analytics 릴리스 정보 페이지를 참조하세요. 이 페이지에는 Kinesis Data Analytics가 지원하는 Apache Zeppelin, Apache Beam, Java, Python 및 AWS SDK 버전도 포함되어 있습니다.
Q: Kinesis Data Analytics Studio 애플리케이션에서 기본적으로 통합되는 지원은 무엇인가요?
- 데이터 소스: Amazon Managed Streaming for Apache Kafka(Amazon MSK), Amazon Kinesis Data Streams, Amazon S3
- 대상 또는 싱크: Amazon MSK, Amazon Kinesis Data Streams 및 Amazon S3
Q: 사용자 지정 통합이 지원되나요?
몇 가지 추가 단계를 수행하고 Apache Flink 코드(Python, Scala 또는 Java)를 추가하여 Amazon OpenSearch Service, Amazon ElastiCache for Redis, Amazon Aurora, Amazon Redshift, Amazon DynamoDB, Amazon Keyspaces와 같은 대상을 포함하는 모든 Apache Flink 지원 통합에 대한 연결을 정의하는 방법으로 추가 통합을 구성할 수 있습니다. Studio 애플리케이션을 생성하거나 구성할 때 이 사용자 지정 커넥터에 대한 실행 파일을 연결할 수 있습니다.
Q: Kinesis Data Analytics Studio로 개발해야 합니까? 아니면 Kinesis Data Analytics SQL로 개발해야 합니까?
시작할 때는 Kinesis Data Analytics Studio를 사용하는 것이 좋습니다. 정확히 한 번 처리하는 보다 포괄적인 스트림 처리 경험을 제공하기 때문입니다. Kinesis Data Analytics Studio는 선택한 언어(SQL, Python 및 Scala)로 스트림 처리 애플리케이션을 개발할 수 있고, GB/s 처리로 확장되며, 몇 시간, 심지어 며칠에 걸쳐 장기 실행되는 계산을 지원하고, 몇 초 안에 코드 업데이트를 수행하며, 여러 입력 스트림을 처리하고, Amazon Kinesis Data Streams 및 Amazon MSK를 포함한 다양한 입력 스트림과 연동됩니다.
Kinesis Data Analytics SQL 애플리케이션 구축
새로운 프로젝트의 경우 Kinesis Data Analytics for SQL Applications 대신 최신 Kinesis Data Analytics Studio를 사용하는 것이 좋습니다. Kinesis Data Analytics Studio에서는 고급 분석 기능을 손쉽게 사용하여 정교한 스트림 처리 애플리케이션을 몇 분 안에 구축할 수 있습니다.
SQL 애플리케이션에 대한 입력 구성
SQL 애플리케이션에 대한 애플리케이션 코드 작성
- SELECT 문은 언제나 INSERT 문의 컨텍스트에서 사용합니다. 행을 선택할 때 결과를 다른 인애플리케이션 스트림에 삽입합니다.
- INSERT 문은 펌프 컨텍스트에서 사용합니다.
- 펌프를 사용하여 INSERT 문이 지속되도록 하고 인애플리케이션 스트림에 작성합니다.
CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" (
ticker_symbol VARCHAR(4),
change DOUBLE,
price DOUBLE);
CREATE OR REPLACE PUMP "STREAM_PUMP" AS
INSERT INTO "DESTINATION_SQL_STREAM"
SELECT STREAM ticker_symbol, change, price
FROM "SOURCE_SQL_STREAM_001";
SQL 애플리케이션의 대상 구성
다른 스트림 처리 솔루션과 비교
서비스 수준 계약
Q: Amazon Kinesis Data Analytics SLA는 무엇을 보장합니까?
Amazon Kinesis Data Analytics SLA는 Amazon Kinesis Data Analytics의 월간 가동률을 최소 99.9% 보장합니다.
Q: SLA 서비스 크레딧을 수령할 자격이 있는지 어떻게 알 수 있나요?
같은 리전 내에서 작업을 실행하고 있는 하나 이상의 가용 영역의 월간 가동률이 월별 청구 주기 동안 99.9%보다 낮은 경우, Amazon Kinesis Data Analytics SLA에 따라 Amazon Kinesis Data Analytics의 SLA 크레딧 지급 대상이 됩니다. SLA 이용 약관과 요청 제출 방법에 대한 자세한 내용은 Amazon Kinesis SLA 세부 정보 페이지를 참조하세요.