review log

  • 20191114
    • 实现pg->es同步数据的方式有几种
      • 基于插件
        • 常见的几个插件都需要在db上装插件,在我们的使用场景上不太实用,因为db和es全部都交给aws托管
        • 一般的插件使用时针对db中单表对es中单index的同步,我们需要的场景更加复杂,需要支持自定义数据聚合后倒入到index
      • 基于框架/库
        • laravel有EloquentOrm+Scout的库可以同步model到es上,可以参考migrate的场景,在node中似乎没找到比较成熟的库,打通orm和es
        • 如果有库可以用,需要支持多表数据聚合的场景
      • 自行设计实现(通用的源+目标数据同步策略)
        • 基于queue
          • 把同步任务抛给queue,由queue调度执行同步任务
        • 基于cronjob
          • 定期检查DB中有没有新数据,如果有就写入es
    • 由于考虑到第一第二种方式对于我们目前项目的底层设施和技术栈不合适,因此还是考虑自行设计实现的方式。具体的策略可以参考下面es官方关于sync的文章

keyword extend

  • database sync/replication/transform
  • replicated to Elasticsearch
  • replication strategy
  • data sync strategy
  • change data capture
  • ETL(extract transform load)

reference

results matching ""

    No results matching ""