有一个场景,我必须从多个源导入数据(数百万条记录)并将其保存在数据库中。当用户尝试搜索与该数据相关的任何信息时,他们应该在 2-3 秒内获得结果。
为此,我设计了一个架构,使用 golang 从多个源导入数据并将数据推送到 AWS SQS 中。我创建了一个 lambda 函数,当 AWS SQS 有一些数据时会触发该函数。然后,此 lambda 函数将数据推送到 AWS Elastic Search 中。我创建了一个 Rest API,用它向用户提供结果。
我每天早上都使用 CRON 来做这个导入工作。现在我的问题是,如果有一批新数据到来,我想删除现有数据并用新数据替换所有数据。我陷入了如何实现删除和添加新数据部分的困境。
我想到了创建一个临时索引,然后用原来的索引替换它。但问题是我不知道导入何时结束并可以进行此索引切换。
一只甜甜圈
相关分类