全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
表格存储

增量数据操作

更新时间:2017-07-07 10:53:09

表格存储提供了 stream 的 list 和 describe 操作,以及 shard 的 getsharditerator 和 getshardrecord 操作。

列出所有的Stream(ListStream)

ListStream 接口用于列出当前实例和表下的所有stream。

示例

列出某个表的所有 stream 信息。

  1. private static void listRow(SyncClient client, String pkValue) {
  2. ListStreamRequest listStreamRequest = new ListStreamRequest(tableName);
  3. ListStreamResponse result = client.listStream(listStreamRequest);
  4. }

查询表Stream描述信息(DescribeStream)

DescribeStream 接口可以查询 stream 的创建时间(creationTime)、过期时间(expirationTime)、当前的状态(status) 、包含 shard 的列表(shards)和 下一个起始 shard 的 id(如果还有尚未返回的 shard)。

示例 1

获取当前 stream 的所有 shard 信息。

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

示例 2

设置开始 shardID(InclusiveStartShardId)和每次返回的最大 shard 数目。

  1. private static void describeStream(SyncClient client, String pkValue) {
  2. DescribeStreamRequest dsRequest = new DescribeStreamRequest(streamId);
  3. dsRequest.setInclusiveStartShardId(startShardId);
  4. dsRequest.setShardLimit(10);
  5. DescribeStreamResponse dscStream = client.describeStream(dsRequest);
  6. }

获取Shard的读取迭代值(GetShardIterator)

GetShardIterator 接口用于获取 shard 的读取起始迭代值。

示例

获取 shard 的读取起始迭代值。

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

获取Shard的更新记录(GetStreamRecord)

GetStreamRecord 接口用于获取 shard 的每条更新记录。

示例

获取 shard 的最初 100 条更新。

  1. private static void getShardIterator(SyncClient client, String shardIterator) {
  2. GetStreamRecordRequest streamRecordRequest = new GetStreamRecordRequest(shardIterator);
  3. streamRecordRequest.setLimit(100);
  4. GetStreamRecordResponse streamRecordResponse = client.getStreamRecord(streamRecordRequest);
  5. List<StreamRecord> records = streamRecordResponse.getRecords();
  6. for(int k=0;k<records.size();k++){
  7. System.out.println("record info:" + records.get(i).toString());
  8. }
  9. System.out.println("next iterator:" + streamRecordResponse.getNextShardIterator());
  10. }
本文导读目录