规范的Dynamo二级钥匙?

时间:2018-03-16 22:05:37

标签: amazon-web-services nosql amazon-dynamodb schema

我正在处理一个数据集,该数据集具有带有排序键的二级索引,该排序键最终会在其中输入用户输入的信息。为了这个问题,请将其视为邮政地址"领域。该模型允许快速查询特定邮政地址的此数据。

因为它是用户输入的,所以我发现自己想要在将其用作关键字之前将其规范化。例如,通过剥离空格并使其成为常见情况。我的想法是,如果有人做了一个微不足道的大写或间距错误,它就不会被识别为不同的地址。

这是人们在用户输入的数据上创建密钥时通常会采用的模式吗?是"用户输入的密钥"认为有害吗?有任何明显的陷阱吗?

1 个答案:

答案 0 :(得分:2)

请确保您的规范化功能正确。简单地剥离空间可能不是一个好主意。例如,Hight RailroadHigh Trail Road可能会标准化为hightrailroad,这可能不是您想要的。相反,您可能希望用一个短划线或其他东西替换一个或多个连续的空格。

如果你正常化,你应该没事。其他人提到了与覆盖数据有关的漏洞,但你说这是一个全球二级索引。您无法写入GSI,因此您无需担心这一点。此外,用户输入的数据是排序键。只要你控制哈希键,你就可以了。

我要谨慎的一件事是数据分发。每当有用户影响的密钥,无论是直接用户输入还是用户操作的副作用(如时间戳),您都需要注意避免可能导致热分片和/或限制的不平衡数据分发

相关问题