일반
대화형 분석을 사용하면 스트리밍 데이터를 실시간으로 탐색할 수 있습니다. 임시 쿼리 또는 프로그램을 통해 Amazon MSK 또는 Amazon Kinesis Data Streams의 스트림을 검사하고 이러한 스트림 내의 데이터 형태를 시각화할 수 있습니다. 예를 들어 시간대별 평균을 계산하는 실시간 지표의 동작을 보고 선택한 대상으로 집계 데이터를 전송할 수 있습니다. 대화형 분석은 스트림 처리 애플리케이션의 반복 개발에도 도움이 됩니다. 구축하는 쿼리는 새 데이터가 도착할 때마다 지속적으로 업데이트됩니다. Amazon Managed Service for Apache Flink Studio를 사용하면 이러한 쿼리를 배포하여 Auto Scaling 및 내구성이 우수한 상태 백업이 활성화된 상태로 지속적으로 실행할 수 있습니다.
시작하기
Amazon Managed Service for Apache Flink는 대부분 시나리오에서 소스 스트림의 데이터 처리량과 쿼리의 복잡성을 수용할 수 있도록 애플리케이션을 탄력적으로 확장 및 축소합니다. Apache Flink 애플리케이션의 서비스 한도에 대한 자세한 내용은 Amazon Managed Service for Apache Flink 개발자 안내서의 한도 섹션을 참조하세요.
예. Amazon Managed Service for Apache Flink 애플리케이션에서 Apache Flink DataStream Connectors를 통해 AWS Glue의 서버리스 기능인 AWS Glue 스키마 레지스트리를 사용할 수 있습니다. Apache Kafka, Amazon MSK 및 Amazon Kinesis Data Streams를 싱크 또는 소스로 Amazon Managed Service for Apache Flink 워크로드와 통합할 수 있습니다. 시작하고 자세히 알아보려면 AWS Glue 스키마 레지스트리 개발자 안내서를 참조하세요.
주요 개념
- 입력: 입력은 애플리케이션의 스트리밍 소스입니다. 입력 구성에서 스트리밍 소스를 데이터 스트림에 매핑합니다. 데이터는 데이터 소스에서 데이터 스트림으로 흐릅니다. 애플리케이션 코드를 사용하여 이러한 데이터 스트림에서 데이터를 처리하고, 처리된 데이터를 후속 데이터 스트림 또는 대상으로 전송합니다. Apache Flink 애플리케이션 및 Studio 노트북의 애플리케이션 코드 내에 또는 Amazon Managed Service for Apache Flink 애플리케이션용 API를 통해 입력을 추가합니다.
- 애플리케이션 코드: 애플리케이션 코드는 입력을 처리하고 출력을 생성하는 일련의 Apache Flink 연산자입니다. 가장 단순한 형태로 애플리케이션 코드는 스트리밍 소스와 연결된 데이터 스트림으로부터 읽고 출력과 연결된 다른 데이터 스트림에 쓰는 하나의 Apache Flink 연산자가 될 수 있습니다. Studio 노트북의 경우 이는 노트북 안의 컨텍스트에 결과가 표시되는 단순한 Flink SQL Select 쿼리가 될 수 있습니다. Amazon Managed Service for Apache Flink 애플리케이션 또는 Studio 노트북의 지원되는 언어로 Apache Flink 코드를 작성할 수 있습니다.
- 출력: 그런 다음, 선택 사항으로 데이터를 외부 대상에 유지하도록 애플리케이션 출력을 구성할 수 있습니다. Amazon Managed Service for Apache Flink 애플리케이션 및 Studio 노트북의 애플리케이션 코드 내부에 이러한 출력을 추가합니다.
Q: 지원되는 애플리케이션 코드는 무엇인가요?
애플리케이션 관리
- Amazon Managed Service for Apache Flink 개발자 안내서의 Amazon Managed Service for Apache Flink 모니터링
- Amazon Managed Service for Apache Flink Studio 개발자 안내서의 Amazon Managed Service for Apache Flink 모니터링
Q: Amazon Managed Service for Apache Flink 애플리케이션에 대한 액세스를 관리하고 제어하려면 어떻게 해야 하나요?
- Amazon Managed Service for Apache Flink 개발자 안내서의 권한 부여
- Amazon Managed Service for Apache Flink Studio 개발자 안내서의 권한 부여
Q: Amazon Managed Service for Apache Flink는 애플리케이션 규모를 어떻게 조정하나요?
Amazon Managed Service for Apache Flink는 대부분의 시나리오에서 소스 스트림의 데이터 처리량과 쿼리의 복잡성을 수용할 수 있도록 애플리케이션을 탄력적으로 조정합니다. Amazon Managed Service for Apache Flink는 Amazon KPU의 형태로 용량을 프로비저닝합니다. 1개의 KPU는 1개의 vCPU와 4GB 메모리를 제공합니다.
요금 및 결제
스트리밍 애플리케이션 실행에 사용하는 Amazon KPU의 개수에 따라 시간당 요금이 청구됩니다. 단일 KPU는 하나의 vCPU의 컴퓨팅 및 4GB의 메모리로 구성된 스트림 처리 용량 단위입니다. Amazon Managed Service for Apache Flink는 스트림 처리 애플리케이션의 요구에 따라 KPU의 수를 자동으로 조정합니다. 메모리 및 컴퓨팅 수요가 처리 복잡성과 처리된 스트리밍 데이터의 처리량에 따라 다르기 때문입니다.
Apache Flink 애플리케이션 구축
Apache Flink를 사용하는 애플리케이션의 IDE에 애플리케이션 코드 작성
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 Service for Apache Flink 개발자 안내서의 연산자 섹션에서 더 많은 예를 확인할 수 있습니다. Apache Flink 설명서에서 Apache Flink의 전체 연산자 목록을 확인할 수 있습니다.
- 스트리밍 데이터 소스: 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(파일 싱크 통합을 통함)
Q: Amazon Managed Service for Apache Flink 애플리케이션에서 스트림 및 주제 전체에 데이터를 복제할 수 있나요?
관리형 노트북에 Amazon Managed Service for Apache Flink Studio 애플리케이션 구축
Q: Studio 애플리케이션은 어떻게 개발하나요?
Amazon Managed Service for Apache Flink Studio, Amazon Kinesis Data Streams 또는 Amazon MSK 콘솔에서 시작할 수 있습니다. 단 몇 단계로 서버리스 노트북을 시작하여 즉시 데이터 스트림을 쿼리하고 대화형 데이터 분석을 수행할 수 있습니다.
대화형 데이터 분석: 노트북에서 SQL, Python 또는 Scala로 코드를 작성하여 몇 초의 쿼리 응답 시간으로 스트리밍 데이터와 상호 작용할 수 있습니다. 내장된 시각화를 사용하여 노트북 안에서 데이터를 탐색하고 스트리밍 데이터에 대한 실시간 인사이트를 볼 수 있으며 Apache Flink로 구동되는 스트림 처리 애플리케이션을 개발할 수 있습니다.
코드를 프로덕션 애플리케이션으로 실행할 준비가 되면 한 단계로 서버 없이 초당 수 기가바이트 단위의 데이터를 처리하는 스트림 처리 애플리케이션으로 전환할 수 있습니다.
스트림 처리 애플리케이션: 코드를 프로덕션으로 승격할 준비가 되면 노트북 인터페이스에서 ‘Deploy as stream processing application(스트림 처리 애플리케이션으로 배포)’을 클릭하여 코드를 빌드하거나 CLI에서 단일 명령을 실행할 수 있습니다. Studio는 Amazon Managed Service for Apache Flink 애플리케이션에서처럼 Auto Scaling 및 내구성 있는 상태를 활성화하여 스트림 처리 애플리케이션을 대규모로 실행하는 데 필요한 모든 인프라 관리를 처리합니다.
Q: 내 애플리케이션 코드는 어떤 형태인가요?
Apache Flink의 Table API를 사용하여 노트북에서 선호하는 언어(SQL, Python 또는 Scala)로 코드를 작성할 수 있습니다. Table API는 확장된 SQL 기능을 지원하는 상위 수준의 추상화이자 관계형 API입니다. 선택, 필터링, 조인, 그룹화, 집계 등과 같은 익숙한 작업과 함께 창 작업과 같은 스트림 관련 개념을 제공합니다. %를 사용하여 노트북 섹션에서 사용할 언어를 지정하고 여러 언어를 전환할 수 있습니다. 인터프리터는 노트북의 각 섹션에 대한 언어 또는 데이터 처리 엔진을 지정하는 데 사용되는 Apache Zeppelin 플러그인입니다. 사용자 정의 함수를 구축하고 참조하여 코드 기능을 개선할 수도 있습니다.
Q: 지원되는 SQL 작업은 어떤 것들이 있나요?
다음과 같은 SQL 작업을 수행할 수 있습니다.
- 스캔 및 필터링(SELECT, WHERE)
- 집계(GROUP BY, GROUP BY WINDOW, HAVING)
- 설정(UNION, UNIONALL, INTERSECT, IN, EXISTS)
- 순서 지정(ORDER BY, LIMIT)
- 조인(INNER, OUTER, Timed Window - BETWEEN, AND, 임시 테이블에 조인 – 일정 기간 동안 변경 사항을 추적하는 테이블)
- 상위 N개
- 중복 제거
- 패턴 인식
GROUP BY, OUTER JOIN 및 상위 N개 항목과 같은 일부 쿼리는 스트리밍 데이터의 업데이트 결과입니다. 즉, 스트리밍 데이터가 처리되는 동안 결과가 지속적으로 업데이트됩니다. CREATE, ALTER 및 DROP과 같은 다른 DDL 문도 지원됩니다. 쿼리 및 샘플의 전체 목록은 Apache Flink 쿼리 설명서를 참조하세요.
Q: Python 및 Scala는 어떻게 지원되나요?
Apache Flink의 Table API는 Python 문자열 및 Scala 표현식을 사용하는 언어 통합을 통해 Python 및 Scala를 지원합니다. 지원되는 작업은 선택, 주문, 그룹화, 조인, 필터링 및 창 작업을 비롯하여 지원되는 SQL 작업과 매우 유사합니다. 작업 및 샘플의 전체 목록은 개발자 안내서에 포함되어 있습니다.
Q: 지원되는 Apache Flink 및 Apache Zeppelin 버전은 무엇인가요?
지원되는 Apache Flink 버전에 대한 자세한 내용은 Amazon Managed Service for Apache Flink 릴리스 정보 페이지를 참조하세요. 이 페이지에는 Amazon Managed Service for Apache Flink가 지원하는 Apache Zeppelin, Apache Beam, Java, Scala, Python 및 AWS SDK 버전도 포함되어 있습니다.
Q: Amazon Managed Service for Apache Flink 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)의 단계와 코드 줄을 몇 개 더 사용하여 지원되는 모든 Apache Flink 통합과의 연결을 정의함으로써 추가 통합을 구성할 수 있습니다. 통합 대상으로는 Amazon OpenSearch Service, Amazon ElastiCache for Redis, Amazon Aurora, Amazon Redshift, Amazon DynamoDB, Amazon Keyspaces 등이 있습니다. Amazon Managed Service for Apache Flink Studio 애플리케이션을 생성하거나 구성할 때 이 사용자 지정 커넥터에 대한 실행 파일을 연결할 수 있습니다.
서비스 수준 계약
Q: Amazon Managed Service for Apache Flink SLA에서는 무엇을 보장하나요?
서비스 수준 계약(SLA)은 Amazon Managed Service for Apache Flink에 대해 최소 99.9%의 월간 가동률을 보장합니다.
Q: SLA 서비스 크레딧을 수령할 자격이 있는지 어떻게 알 수 있나요?
같은 AWS 리전 내에서 작업을 실행하고 있는 하나 이상의 가용 영역의 월간 가동률이 월별 청구 주기 동안 99.9%보다 낮은 경우, Amazon Managed Service for Apache Flink SLA에 따라 Amazon Managed Service for Apache Flink의 SLA 서비스 크레딧 지급 대상이 됩니다. SLA 이용 약관과 요청 제출 방법에 대한 자세한 내용은 Amazon Managed Service for Apache Flink SLA 세부 정보 페이지를 참조하세요.