0

我们启动一个新的“目标”Elasticsearch 集群

barikulislam015
12月前 141

该集群使用新的“目标”索引作业进行索引。这个Target集群最终将取代原来的Elasticsearch集群。目标索引作业可能正在运行新版本的索引代码,并更新目标集群的 JSON 模式定义(例如,如果我们要更改 Elasticsearch 文档的逻辑结构,则需要进行其他更改才能与新版本兼容) Elasticsearch 等),并且它与遗留索引作业并行运行。 由于我们的索引作业加载的所有 Redshift 行比 Elasticsearch 集群中已有的最新文档更新,因此在开始目标索引作业之前,我们首先需要将每个源集群索引中的单个“锚”文档复制到目标集群中。完成此操作后,我们可以启动目标索引作业。

 

我们将开始立即看到所有新数据被索引到目标集群中,此时可以在我们的堆栈上进一步启动任何其他软件开发,因为知道新集群中可用于开发人员测试的新数据。 请注意,我们使用锚文档而不是允许 Target 索引作 国家邮箱列表 业开始加载所有 Redshift 数据,原因有两个:1. 我们从 Redshift 中删除数据,因此只有最近的数据可用于索引,2. 出于开发和测试目的,它对于我们来说,快速获得最新数据通常更有用,这样我们就可以开始验证和开发,而不必等待所有历史数据都被索引。这是我们目前不使用_reindex Elasticsearch API 的原因之一 - 如果使用,我们将需要等待整个集群重新索引,然后才能开始 Target 索引作业,因为重新索引顺序没有明确定义。 

 

 

迁移的最后一步是将原始Elasticsearch集群中的数据回填到Target集群中。这是通过一个简单的幂等回填作业来完成的,该作业将文档从源复制到目标集群,从每个目标集群中最旧的文档开始向后工作。回填作业还能够应用可选的 python 函数来在复制每个文档时对其进行变异(很像 Elasticsearch 的_reindex API 支持的脚本)。 例如,我们可以在复制所有文档时将以下函数应用于它们 在每个源文档上调用此函数,并将返回的变异文档加载到目标集群中。请注意,复制第一个“锚”文档时也会应用此迁移。 数据验证 数据验证在我们所做的任何数据管道架构规划中都发挥着核心作用。如果没有适当的验证工具和流程,开发进度就会慢得多,因为每次更改都需要临时测试。

最新回复 (0)

    暂无评论

请先登录后发表评论!

返回
请先登录后发表评论!