Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Daftar pecahan
Aliran data dapat memiliki satu atau lebih pecahan. Metode yang disarankan untuk mencantumkan atau mengambil pecahan dari aliran data adalah dengan menggunakan API. ListShards Contoh berikut menunjukkan bagaimana Anda bisa mendapatkan daftar pecahan dalam aliran data. Untuk deskripsi lengkap tentang operasi utama yang digunakan dalam contoh ini dan semua parameter yang dapat Anda atur untuk operasi, lihat 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()); } } }
Untuk menjalankan contoh kode sebelumnya Anda dapat menggunakan file POM seperti yang berikut ini.
<?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>
Dengan ListShards API, Anda dapat menggunakan ShardFilter parameter untuk menyaring respons API. Anda hanya dapat menentukan satu filter pada satu waktu.
Jika Anda menggunakan ShardFilter parameter saat memanggil ListShards API, itu Type adalah properti yang diperlukan dan harus ditentukan. Jika Anda menentukan AT_LATEST jenis AT_TRIM_HORIZONFROM_TRIM_HORIZON,, atau, Anda tidak perlu menentukan properti ShardId atau op Timestamp sional.
Jika Anda menentukan jen AFTER_SHARD_ID isnya, Anda juga harus memberikan nilai untuk ShardId properti opsional. Pro ShardId perti identik fungsinya ExclusiveStartShardId dengan parameter ListShards API. Ketika ShardId properti ditentukan, respons menyertakan pecahan yang dimulai dengan pecahan yang ID-nya segera mengikuti ShardId yang Anda berikan.
Jika Anda menentukan FROM_TIMESTAMP_ID jenis AT_TIMESTAMP atau, Anda juga harus memberikan nilai untuk Timestamp properti opsional. Jika Anda menentukan jen AT_TIMESTAMP isnya, maka semua pecahan yang terbuka pada stempel waktu yang disediakan dikembalikan. Jika Anda menentukan jen FROM_TIMESTAMP isnya, maka semua pecahan mulai dari stempel waktu yang disediakan untuk TIP dikembalikan.
penting
DescribeStreamSummarydan ListShard API menyediakan cara yang lebih skalabel untuk mengambil informasi tentang aliran data Anda. Lebih khusus lagi, kuota untuk DescribeStream API dapat menyebabkan pelambatan. Untuk informasi selengkapnya, lihat Kuota dan batas. Perhatikan juga bahwa DescribeStream kuota dibagikan di semua aplikasi yang berinteraksi dengan semua aliran data di AWS akun Anda. Kuota untuk ListShards API, di sisi lain, khusus untuk aliran data tunggal. Jadi Anda tidak hanya mendapatkan TPS yang lebih tinggi dengan ListShards API, tetapi skala tindakan lebih baik saat Anda membuat lebih banyak aliran data.
Kami menyarankan Anda memigrasikan semua produsen dan konsumen yang memanggil DescribeStream API untuk memanggil API DescribeStreamSummary dan sebagai gantinya ListShard . Untuk mengidentifikasi produsen dan konsumen ini, kami sarankan menggunakan Athena untuk mengurai CloudTrail log karena agen pengguna untuk KPL dan KCL ditangkap dalam panggilan 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
Kami juga merekomendasikan agar integrasi AWS Lambda dan Amazon Firehose dengan Kinesis Data Streams yang memanggil DescribeStream API dikonfigurasi ulang sehingga integrasi malah memanggil dan. DescribeStreamSummary ListShards Khususnya, untuk AWS Lambda, Anda harus memperbarui pemetaan sumber acara Anda. Untuk Amazon Firehose, izin IAM yang sesuai harus diperbarui sehingga menyertakan izin ListShards IAM.