繁体   English   中英

AWS RDS 到 AWS ES

[英]AWS RDS to AWS ES

要求:在插入/更新到特定表时创建数据流并将其推送到弹性搜索。

想到AWS RDS(MariaDb) -----插入/更新说用户表---> AWS Kinesis 流 -- 使用 AWS Lambda--> AWS ES

问题如何在插入/更新到特定表时创建运动流? 我可以通过 AWS Lambda 完成吗?

如果您使用的是Amazon Aurora,则可以执行此操作。

Amazon Aurora最近的一个更新是支持从存储过程调用Lambda函数。

因此,要实现您的需求,您可以创建一个SQL触发器来调用SQL存储过程,然后调用将该数据发送到Elastic Search的Lambda函数。

参考: 从Amazon Aurora数据库群集调用Lambda函数


如果您没有使用Aurora但使用的是MySQL或MariaDB,我建议您切换此功能对您的应用程序非常重要。

如果您使用的是Aurora,MySQL或MariaDB以外的数据库,则必须重新考虑应用程序以将数据并行写入RDS和ElasticSearch。 我还建议使用以下架构模式:

我尝试使用 Amazon Aurora 触发器来调用 lambda 函数,但这在使用事务时会导致一些问题,因为可以在提交事务之前执行触发器

所以我最终做的是修改应用程序层以在与向数据库发送数据相同的“事务”中异步调用 lambda 函数,该 lambda 函数将序列化的 JSON 作为输入(来自应用程序层)然后发送该输入到弹性搜索。

如果该 lambda 函数出现故障,您可以重试并使用 DLQ(死信队列)来确保数据不会丢失并实际进入 elasticsearch。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM