Table Store は、ストリーム用の ListStream 操作と DescribeStream 操作およびシャード用の GetShardIterator 操作と GetStreamRecord 操作を提供します。

ListStream

ListStream は、現在のインスタンスのテーブルで有効になっているすべてのストリームを一覧表示するために使用されます。

テーブルに対して有効になっているすべてのストリームに関する情報を一覧表示します。

private static void listStream(SyncClient client, String tableName) {
    ListStreamRequest listStreamRequest = new ListStreamRequest(tableName);
    ListStreamResponse result = client.listStream(listStreamRequest);
}
			

DescribeStream

DescribeStream は、ストリームの creationTime、expirationTime、状態、シャード、および (シャードが返されない場合) 次の開始シャードの ID を照会するために使用されます。

例 1

現在のストリームのすべてのシャードに関する情報を入手します。

    private static void describeStream(SyncClient client, String streamId) {
        DescribeStreamRequest desRequest = new DescribeStreamRequest(streamId);
        DescribeStreamResponse desStream = client.describeStream(desRequest);
    }
			

例 2

InclusiveStartShardId と毎回返されるシャードの最大数を設定します。

    private static void describeStream(SyncClient client, String streamId) {
    DescribeStreamRequest dsRequest = new DescribeStreamRequest(streamId);
    dsRequest.setInclusiveStartShardId(startShardId);
    dsRequest.setShardLimit(10);
    DescribeStreamResponse dscStream = client.describeStream(dsRequest);
    }
			

GetShardIterator

GetShardIterator は、シャードを読み取るための開始反復子を取得するために使用されます。

シャードを読み取るための開始反復子を取得します。

    private static void getShardIterator(SyncClient client, String streamId, String shardId) {
    GetShardIteratorRequest getShardIteratorRequest = new GetShardIteratorRequest(streamId, shardId);
    GetShardIteratorResponse shardIterator = client.getShardIterator(getShardIteratorRequest);
    }
			

GetStreamRecord

GetStreamRecord は、シャードの各更新レコードを取得するために使用されます。

シャードの最初の 100 個の更新レコードを入手します。

    private static void getShardIterator(SyncClient client, String shardIterator) {
        GetStreamRecordRequest streamRecordRequest = new GetStreamRecordRequest(shardIterator);
        streamRecordRequest.setLimit(100);
        GetStreamRecordResponse streamRecordResponse = client.getStreamRecord(streamRecordRequest);
        List<StreamRecord> records = streamRecordResponse.getRecords();
        for(int k=0;k<records.size();k++){
            System.out.println("record info:" +  records.get(k).toString());
        }
        System.out.println("next iterator:" + streamRecordResponse.getNextShardIterator());
    }