我使用 KCL 编写了一个 Amazon Kinesis 消费者,它管理我的记录处理任务。它当前正在处理记录而不进行过滤。我正在寻找一种方法来处理样本记录,同时跳过其中一些。
例如,如果总共有 100 条记录,我想只处理其中的 1/10(10 条样本记录)。
谢谢!
我使用 KCL 编写了一个 Amazon Kinesis 消费者,它管理我的记录处理任务。它当前正在处理记录而不进行过滤。我正在寻找一种方法来处理样本记录,同时跳过其中一些。
例如,如果总共有 100 条记录,我想只处理其中的 1/10(10 条样本记录)。
谢谢!
据我所知,没有办法告诉 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);
}