与 DynamoDB 集成的最佳实践
将 DynamoDB 与其它服务集成时,应始终遵循使用每项服务的最佳实践。但是,您应该考虑一些特定于集成的最佳实践。
在 DynamoDB 中创建快照
-
通常,我们建议使用导出到 Amazon S3 来创建用于初始复制的快照。它既具有成本效益,又不会与应用程序的流量争夺吞吐量。您也可以考虑备份并恢复到新表,然后再执行扫描操作。这样可以避免与应用程序争夺吞吐量,但成本效益通常要比导出低得多。
-
导出时请务必设置
StartTime
。这样可以轻松确定从何处开始更改数据捕获(CDC)。 -
使用导出到 S3 时,请在 S3 存储桶上设置生命周期操作。通常,将到期操作设置为 7 天是安全的,但需要遵循公司可能制定的任何指导准则。即使您在摄取后明确删除项目,此操作也有助于发现问题,从而有助于减少不必要的成本并防止违反政策。
在 DynamoDB 中捕获数据更改
-
如果您需要近乎实时的 CDC,可以使用 DynamoDB Streams 或 Amazon Kinesis Data Streams(KDS)。在决定使用哪个服务时,通常要考虑哪个最容易与下游服务一起使用。如果您需要在分区键级别按顺序处理事件,或者您的项目非常大,请使用 DynamoDB Streams。
-
如果您不需要近乎实时的 CDC,则可以使用通过增量导出来导出到 Amazon S3,仅导出两个时间点之间发生的更改。
如果您使用导出到 S3 来生成快照,这可能特别有用,因为您可以使用类似的代码来处理增量导出。通常,导出到 S3 比以前的流式传输选项稍微便宜一些,但成本通常不是使用哪个选项的主要因素。
-
通常,一个 DynamoDB 流只能有两个用户同时使用。在规划集成策略时要考虑这一点。
-
不要使用扫描来检测更改。这可能对小规模有效,但很快就会变得相当不切实际。