设计分区键以确保特定类型的数据进入Kinesis中的同一分片

问题描述

我是AWS Kinesis数据流的新手。在我的用例中,我想建立一个包含2个分片的Kinesis数据流,其中一个分片我想放入与学生相关的数据,而另一个分片中我想放入与教师相关的数据

在这里,我的问题是如何设计分区键以确保与Student和Teacher相关的数据不会落入Kinesis数据流的同一碎片中?

解决方法

每个分片将得到固定范围的分区键。您可以使用describe-stream获得此范围。

例如,对于第一个分片:

                "HashKeyRange": {
                    "StartingHashKey": "0","EndingHashKey": "113427455640312821154458202477256070484"
                },

因此,在开始流式传输之前,您可以以编程方式检查范围并从相应范围中选择键。

有了这个,您可以在PutRecords 明确指定应该使用的分片时使用ExplicitHashKey