

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Daftar pecahan
<a name="kinesis-using-sdk-java-list-shards"></a>

Aliran data dapat memiliki satu atau lebih pecahan. Metode yang disarankan untuk membuat daftar atau mengambil pecahan dari aliran data adalah dengan menggunakan API. [ListShards](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListShards.html) 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](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListShards.html).

```
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.

```
<?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](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ShardFilter.html)parameter untuk memfilter respons API. Anda hanya dapat menentukan satu filter pada satu waktu. 

Jika Anda menggunakan `ShardFilter` parameter saat menjalankan ListShards API, `Type` adalah properti wajib dan harus ditentukan. Jika Anda menentukan`AT_TRIM_HORIZON`,`FROM_TRIM_HORIZON`, atau `AT_LATEST` jenis, Anda tidak perlu menentukan properti `ShardId` atau `Timestamp` opsional.

Jika Anda menentukan `AFTER_SHARD_ID` jenisnya, Anda juga harus memberikan nilai untuk `ShardId` properti opsional. `ShardId`Properti identik dalam fungsionalitas dengan `ExclusiveStartShardId` parameter ListShards API. Ketika `ShardId` properti ditentukan, responsnya mencakup pecahan yang dimulai dengan pecahan yang ID-nya segera mengikuti `ShardId` yang Anda berikan.

Jika Anda menentukan `AT_TIMESTAMP` atau `FROM_TIMESTAMP_ID` jenis, Anda juga harus memberikan nilai untuk `Timestamp` properti opsional. Jika Anda menentukan `AT_TIMESTAMP` jenisnya, maka semua pecahan yang terbuka pada stempel waktu yang disediakan dikembalikan. Jika Anda menentukan `FROM_TIMESTAMP` jenisnya, maka semua pecahan mulai dari stempel waktu yang disediakan hingga TIP dikembalikan. 

**penting**  
`DescribeStreamSummary`dan `ListShard` APIs 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](service-sizes-and-limits.md). Perhatikan juga bahwa `DescribeStream` kuota dibagikan di semua aplikasi yang berinteraksi dengan semua aliran data di akun Anda AWS . Kuota untuk ListShards API, di sisi lain, khusus untuk satu aliran data. Jadi, Anda tidak hanya mendapatkan TPS yang lebih tinggi dengan ListShards API, tetapi skala tindakannya lebih baik saat Anda membuat lebih banyak aliran data.  
Kami menyarankan Anda memigrasikan semua produsen dan konsumen Anda yang memanggil DescribeStream API untuk memanggil DescribeStreamSummary dan. ListShard APIs Untuk mengidentifikasi produsen dan konsumen ini, sebaiknya gunakan 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 bahwa integrasi AWS Lambda dan Amazon Firehose dengan Kinesis Data Streams yang memanggil API dikonfigurasi ulang sehingga integrasi sebagai gantinya dipanggil `DescribeStream` 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 IAM. `ListShards` 