【发布时间】:2020-01-18 02:01:52
【问题描述】:
我使用 KCL 编写了一个 Amazon Kinesis 消费者,它管理我的记录处理任务。它当前正在处理记录而不进行过滤。 我正在寻找一种方法来处理样本记录,同时跳过其中一些。
例如,如果总共有 100 条记录,我想只处理其中的 1/10(10 条样本记录)。
谢谢!
【问题讨论】:
标签: java amazon-kinesis amazon-kcl
我使用 KCL 编写了一个 Amazon Kinesis 消费者,它管理我的记录处理任务。它当前正在处理记录而不进行过滤。 我正在寻找一种方法来处理样本记录,同时跳过其中一些。
例如,如果总共有 100 条记录,我想只处理其中的 1/10(10 条样本记录)。
谢谢!
【问题讨论】:
标签: java amazon-kinesis amazon-kcl
据我所知,没有办法告诉 Kinesis 只返回记录的随机子集。因此,一旦记录返回给您,您就可以忽略它们。
在processRecords方法中,简单地随机忽略9/10条记录:
public void processRecords(ProcessRecordsInput processRecordsInput) {
processRecordsInput.records()
.forEach(r -> if (generateRandomNumber()%10 == 0) process(r));
}
private int generateRandomNumber() {
Random random = new Random();
return random.nextInt(10);
}
【讨论】: