샤드 목록 - Amazon Kinesis Data Streams

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

샤드 목록

한 데이터 스트림에는 하나 이상의 샤드가 있을 수 있습니다. 데이터 스트림에서 샤드를 나열하거나 검색하는 데 권장되는 방법은 를 사용하는 것입니다. ListShardsAPI 다음 예제에서는 데이터 스트림에서 샤드 목록을 가져오는 방법을 보여줍니다. 이 예제에 사용된 기본 작업 및 작업에 설정할 수 있는 모든 파라미터에 대한 전체 설명은 을 참조하십시오. ListShards

import software.amazon.awssdk.services.kinesis.KinesisAsyncClient; import software.amazon.awssdk.services.kinesis.model.ListShardsRequest; import software.amazon.awssdk.services.kinesis.model.ListShardsResponse; import java.util.concurrent.TimeUnit; public class ShardSample { public static void main(String[] args) { KinesisAsyncClient client = KinesisAsyncClient.builder().build(); ListShardsRequest request = ListShardsRequest .builder().streamName("myFirstStream") .build(); try { ListShardsResponse response = client.listShards(request).get(5000, TimeUnit.MILLISECONDS); System.out.println(response.toString()); } catch (Exception e) { System.out.println(e.getMessage()); } } }

이전 코드 예제를 실행하려면 다음과 같은 POM 파일을 사용할 수 있습니다.

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>kinesis.data.streams.samples</groupId> <artifactId>shards</artifactId> <version>1.0-SNAPSHOT</version> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>8</source> <target>8</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>kinesis</artifactId> <version>2.0.0</version> </dependency> </dependencies> </project>

ListShards API 사용하면 ShardFilter매개 변수를 사용하여 의 응답을 필터링할 수 API 있습니다. 한 번에 하나의 필터만 지정할 수 있습니다.

를 호출할 때 ShardFilter 매개 변수를 사용하는 경우 Type 는 필수 속성이므로 반드시 지정해야 합니다. ListShards API AT_TRIM_HORIZON, FROM_TRIM_HORIZON 또는 AT_LATEST 유형을 지정하는 경우 ShardId 또는 Timestamp 선택적 속성을 지정할 필요가 없습니다.

AFTER_SHARD_ID 유형을 지정하는 경우 선택적 ShardId 속성의 값도 제공해야 합니다. ShardId속성은 의 ExclusiveStartShardId 매개 변수와 기능면에서 동일합니다. ListShards API ShardId 속성이 지정되면 제공된 ShardId 바로 뒤에 ID가 있는 샤드로 시작하는 샤드가 응답에 포함됩니다.

AT_TIMESTAMP 또는 FROM_TIMESTAMP_ID 유형을 지정하면 선택적 Timestamp 속성의 값도 제공해야 합니다. AT_TIMESTAMP 유형을 지정하면 제공된 타임스탬프에 열려 있던 모든 샤드가 반환됩니다. FROM_TIMESTAMP유형을 지정하면 제공된 타임스탬프부터 시작하여 모든 샤드가 TIP 반환됩니다.

중요

DescribeStreamSummary또한 데이터 스트림에 대한 정보를 검색할 수 있는 보다 확장 가능한 방법을 ListShard APIs 제공합니다. 좀 더 구체적으로 설명하자면, 할당량이 너무 많으면 병목 현상이 발생할 DescribeStream API 수 있습니다. 자세한 내용은 할당량 및 제한 단원을 참조하십시오. 또한 DescribeStream 할당량은 계정의 모든 데이터 스트림과 상호 작용하는 모든 애플리케이션에서 공유된다는 점에 유의하세요. AWS 반면 에 대한 할당량은 단일 데이터 스트림에만 적용됩니다. ListShards API 따라서 데이터 스트림을 더 많이 만들수록 작업 규모가 TPS 커질 뿐만 아니라 더 많은 데이터 스트림을 만들수록 작업 규모가 더 커집니다. ListShards API

대신 와 를 호출하는 생산자와 소비자를 모두 DescribeStream API 마이그레이션하는 것이 좋습니다. DescribeStreamSummary ListShard APIs 이러한 생산자와 소비자를 식별하려면 Athena를 사용하여 CloudTrail 로그를 분석하여 호출에 대한 KPL 사용자 에이전트로 사용하는 것이 좋습니다. KCL API

SELECT useridentity.sessioncontext.sessionissuer.username, useridentity.arn,eventname,useragent, count(*) FROM cloudtrail_logs WHERE Eventname IN ('DescribeStream') AND eventtime BETWEEN '' AND '' GROUP BY useridentity.sessioncontext.sessionissuer.username,useridentity.arn,eventname,useragent ORDER BY count(*) DESC LIMIT 100

또한 를 호출하는 Kinesis Data Streams와의 AWS Lambda 및 Amazon Firehose의 통합을 재구성하여 통합에서 대신 및 를 DescribeStream API 호출하도록 하는 것이 좋습니다. DescribeStreamSummary ListShards 특히 AWS Lambda의 경우 이벤트 소스 매핑을 업데이트해야 합니다. Amazon Firehose의 경우 권한이 포함되도록 해당 IAM 권한을 업데이트해야 합니다. ListShards IAM