繁体   English   中英

每次通过丢弃现有数据将大量数据导入Elasticsearch

[英]Importing a large amount of data into Elasticsearch every time by dropping existing data

目前,MySQL 数据库中有一个非规范化表,其中包含数百列和数百万条记录。

数据的原始来源无法跟踪更改,因此每天都会通过 CRON 作业删除和重建整个表。

现在,我想将这些数据导入 Elaticsearch。 解决这个问题的最佳方法是什么? 我应该使用logstash直接连接到表并导入它还是有更好的方法? 将数据导出到 JSON 或类似文件是一个昂贵的过程,因为我们每次都在谈论千兆字节的数据。

另外,我应该也将索引放在弹性中,还是有办法让它识别变化?

无论如何 - 我建议使用索引模板来简化索引创建。

现在对于摄取策略,我看到了两种可能的选择:

  • 重新设计您的 ETL 流程以进行合并,而不是删除并重新创建整个表。 这肯定会更慢,但只允许将增量发送到 ES 或任何其他数据源。
  • 正如您自己想象的那样 - 您应该对使用日常工作的 Logstash 没问题。 创建每日索引并在每日迁移期间删除旧索引。
  • 您可以将缓冲区(例如 Kafka)引入您的基础架构,但我觉得这对于您当前的用例来说可能有点过头了。

暂无
暂无

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

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