问一个数据迁移的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
luxinfl
V2EX    程序员

问一个数据迁移的问题

  •  
  •   luxinfl 2023 年 9 月 7 日 1957 次点击
    这是一个创建于 857 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现状,mysql 存了大概 1000 万条企业的数据,由于查询条件很多,所以就打算把数据迁移到 es 里面。 用了 logstash ,每次都是全量同步。

    所以有几个问题: 1.全量同步,磁盘空间要 double 才能存的下,因为要确保数据导进来才能把原有的删除掉 2.很慢,据说 4 个小时,看了查询语句,是直接 limit m offset n

    所以想问下,有啥改进方法麽。能不能做到直接覆盖更新。 附上 logstash 配置

    input { jdbc { jdbc_connection_string => "jdbc:xxx" jdbc_user => "xxx" jdbc_password => "xxx" jdbc_driver_library => "mysql-connector-java-8.0.24.jar" jdbc_driver_class => "xxx" jdbc_paging_enabled => "true" jdbc_page_size => "50000" lowercase_column_names => "false" statement_filepath => "xxx" # schedule => "* * * * *" type => "type1" } } output { if[type] == "type1" { elasticsearch { hosts => ["localhost:9200"] index => "t_jrb_corp_df_ce" document_id => "%{regNo}" doc_as_upsert => true } } } 

    sql 就是 select * from table 。

    或者又没有其他方式,可以快速的从 mysql 导出数据到 es ,

    13 条回复    2023-09-09 16:34:45 +08:00
    smplesugar
        1
    smplesugar  
       2023 年 9 月 7 日
    flink cdc ? 相当于 es 就是 mysql 的从库而已 ,只是第一次全量,以后都是增量
    brader
        2
    brader  
       2023 年 9 月 7 日
    lcy630409
        3
    lcy630409  
       2023 年 9 月 7 日
    1000w 条?
    是不是优化没做好?不至于啊
    建议先优化,不行再迁移
    不然迁移过去也是同样的困境
    luxinfl
        4
    luxinfl  
    OP
       2023 年 9 月 7 日
    @smplesugar 不太行,就没打算查 mysql 了。
    luxinfl
        5
    luxinfl  
    OP
       2023 年 9 月 7 日
    @lcy630409 企业信息,很多需要模糊查询的,又要分页,不是太好搞
    hahahahahahahah
        6
    hahahahahahahah  
    &nsp;  2023 年 9 月 7 日 via iPhone
    datax
    smplesugar
        7
    smplesugar  
       2023 年 9 月 7 日
    @luxinfl 这个方案就是不查 mysql , 只是 mysql 类似你的业务库, 是把 mysql 的数据 同步到你的 es 的一个工具,flink cdc / datax 就是工具, 查询在你新的 es 库。
    wuyiccc
        8
    wuyiccc  
       2023 年 9 月 7 日
    mysql -> canal(binlog) -> mq -> es
    rekulas
        9
    rekulas  
       2023 年 9 月 7 日
    如上面所说 canal 比较适合你的工作,我们之前用 canal 可以实现毫秒级同步到第三方,确认数据没延迟之后直接切换就行了
    bringyou
        10
    bringyou  
       2023 年 9 月 7 日
    有个比较轻量的方案,就是用 elasticsearch 自带的 connector 机制: https://www.elastic.co/guide/en/enterprise-search/current/connectors-mysql.html
    akira
        11
    akira  
       2023 年 9 月 8 日
    1000 万条 真不多, 看下 是不是时间都消耗在查询上面了
    luxinfl
        12
    luxinfl  
    OP
       2023 年 9 月 9 日
    @wuyiccc
    @rekulas 我手搓代码,直接分页查询,然后写入到 es 了。。
    luxinfl
        13
    luxinfl  
    OP
       2023 年 9 月 9 日
    @bringyou 这个不太行,公司用的 7.6.2 版本
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2735 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 15:09 PVG 23:09 LAX 07:09 JFK 10:09
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86