1

我使用 KCL 编写了一个 Amazon Kinesis 消费者,它管理我的记录处理任务。它当前正在处理记录而不进行过滤。我正在寻找一种方法来处理样本记录,同时跳过其中一些。

例如,如果总共有 100 条记录,我想只处理其中的 1/10(10 条样本记录)。

谢谢!

4

1 回答 1

0

据我所知,没有办法告诉 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);
}
于 2019-09-18T15:13:33.737 回答