V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yeyang5211
V2EX  ›  Elasticsearch

请教 Elasticsearch 使用什么 ETL 工具

  •  
  •   yeyang5211 · 2022-06-30 14:32:54 +08:00 · 3570 次点击
    这是一个创建于 910 天前的主题,其中的信息可能已经有所发展或是发生改变。
    由于我是半路接受 es 的开发工作,对整体的技术工具方案都不是很了解.
    接手半年发现自己一直在做 ETL 相关的工作.

    现有的方案是 :
    1.接受数据变更 MQ 消息
    2.去 MySql 查询业务数据组装成 JSON
    3.合并更新 MongoDB 中..
    4.跑批更新到 ES 中(一个比较复杂的树形结构)



    现有的问题 :
    1.跑批任务经常卡死,不可靠
    2.业务变动,总是需要我去开发 java 代码



    我寻思 ES 这块应该有工具的,所以我去查了一下 Kettle 应该符合我的要求.

    设想是跑批任务定时拉去 Mysql 拉去业务表的变动,然后通过一系列的转换流程补充成完整的业务 JSON(多张数据表组装成 JSON),在更新到 es 中(省了 MongoDB 这步)

    询问了下我们公司的数仓同事,他们也在用阿里云的 DataWorks 工具.我研究了下发现这个工具只能做简单的同步数据映射,达到我设想的多张表聚合成一个 JSON 貌似要使用 EMR 引擎,我对这块特别不熟悉.完全没有头绪感觉 EMR(我理解为大数据相关的工具)学习成本太高了..





    总结一下想了解的问题:
    1.如果有其他方案,请不吝赐教
    2.麻烦帮我权衡一下使用 Kettle 还是 DataWorks(二个都不会用,不是很想学大数据相关的技术 纯门外汉)
    考虑 DataWorks 的原因是我们公司喜欢上云服务,减轻运维压力
    16 条回复    2022-07-01 16:57:29 +08:00
    ericguo
        1
    ericguo  
       2022-06-30 14:44:04 +08:00
    写代码,比如 python 脚本可以替代这里的绝大多数方案,并且技能更通用,更灵活。
    不高兴写代码 Kettle (我们在用)应该还是比阿里的靠谱点,如果用 Kettle 卡死,多半是内存不够,给够会好一点,和 ES 当然肯定也得分机器跑。
    yeyang5211
        2
    yeyang5211  
    OP
       2022-06-30 14:47:07 +08:00
    @ericguo 感谢回复, 如果行业解决方案是 Kettle 我也想学(私心想学更通用的行业方案)
    ericguo
        3
    ericguo  
       2022-06-30 14:51:41 +08:00
    @yeyang5211 更通用的是 python ,Pandas/Matplotlib 那套,而且写代码你适应了真心不高兴拖拉界面,因为拖拉界面每次都要重新搞,又看不到历史改动。
    Mithril
        4
    Mithril  
       2022-06-30 14:55:18 +08:00
    MongoDB 的结构如果和 ES 一样的话,直接同步更新进去就行
    自己写代码的话有 ChangeStream
    不想写代码也可以找个第三方组件自动更新进去
    更新是实时的,不需要定期跑任务
    EastLord
        5
    EastLord  
       2022-06-30 14:55:37 +08:00
    了解一下 debezium ,看看是否满足需求
    yeyang5211
        6
    yeyang5211  
    OP
       2022-06-30 14:56:51 +08:00
    @ericguo 好的, 我们公司的开发语言是 java(现在也是 java 来处理 etl),我个人理解 python 好像差不多. 麻烦能指点下 python 来处理数据合并有什么优势吗.
    yeyang5211
        7
    yeyang5211  
    OP
       2022-06-30 15:03:26 +08:00
    @Mithril
    @EastLord

    感谢回复,这就去了解下.
    litchinn
        8
    litchinn  
       2022-06-30 15:21:51 +08:00
    想顺便问问 streamsets dc 咋样,我使用起来感觉还行呀,很少看到人用呢
    ericguo
        9
    ericguo  
       2022-06-30 15:23:23 +08:00
    @yeyang5211 没啥优势,硬要说有的话,数据处理这块用 python 的多一点。
    HanMeiM
        10
    HanMeiM  
       2022-06-30 16:39:56 +08:00
    我们是用的 flink
    lixen9
        11
    lixen9  
       2022-06-30 17:16:07 +08:00
    kafka connect 应该也能满足
    yeyang5211
        12
    yeyang5211  
    OP
       2022-06-30 17:32:08 +08:00
    @HanMeiM
    @lixen9

    好像都是基于 debezium 的 看起来是可以满足需求的
    yeyang5211
        13
    yeyang5211  
    OP
       2022-06-30 17:33:14 +08:00
    @litchinn 刚刚去看了下 社区版的部署还要授权.. 服务还要被监控 功能倒是很齐全
    wdmcode
        14
    wdmcode  
       2022-06-30 18:09:28 +08:00
    Flink 可以写 Flink SQL 直接同步到 ES ,Flink CDC 可以捕获 MySQL 中的变更数据同步到 ES
    kkadmin
        15
    kkadmin  
       2022-07-01 09:48:08 +08:00
    elasticsearch-datatran ,不知道这个可不可以帮到你
    yeyang5211
        16
    yeyang5211  
    OP
       2022-07-01 16:57:29 +08:00
    @wdmcode 最后选定是 Flink 来做, 因为领导力推 让我去学..
    不过 es 我也是半路出家,带薪学习大数据相关技术也好. 以后还能互相成就.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1206 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:25 · PVG 07:25 · LAX 15:25 · JFK 18:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.