问一个数据迁移的问题

2023-09-07 14:38:39 +08:00
 luxinfl

现状,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 ,

1439 次点击
所在节点    程序员
13 条回复
smplesugar
2023-09-07 18:10:30 +08:00
flink cdc ? 相当于 es 就是 mysql 的从库而已 ,只是第一次全量,以后都是增量
brader
2023-09-07 18:14:05 +08:00
lcy630409
2023-09-07 18:14:21 +08:00
1000w 条?
是不是优化没做好?不至于啊
建议先优化,不行再迁移
不然迁移过去也是同样的困境
luxinfl
2023-09-07 18:56:50 +08:00
@smplesugar 不太行,就没打算查 mysql 了。
luxinfl
2023-09-07 18:57:18 +08:00
@lcy630409 企业信息,很多需要模糊查询的,又要分页,不是太好搞
hahahahahahahah
2023-09-07 21:32:03 +08:00
datax
smplesugar
2023-09-07 22:19:19 +08:00
@luxinfl 这个方案就是不查 mysql , 只是 mysql 类似你的业务库, 是把 mysql 的数据 同步到你的 es 的一个工具,flink cdc / datax 就是工具, 查询在你新的 es 库。
wuyiccc
2023-09-07 22:38:27 +08:00
mysql -> canal(binlog) -> mq -> es
rekulas
2023-09-07 22:43:02 +08:00
如上面所说 canal 比较适合你的工作,我们之前用 canal 可以实现毫秒级同步到第三方,确认数据没延迟之后直接切换就行了
bringyou
2023-09-07 23:27:51 +08:00
有个比较轻量的方案,就是用 elasticsearch 自带的 connector 机制: https://www.elastic.co/guide/en/enterprise-search/current/connectors-mysql.html
akira
2023-09-08 05:25:14 +08:00
1000 万条 真不多, 看下 是不是时间都消耗在查询上面了
luxinfl
2023-09-09 16:33:58 +08:00
@wuyiccc
@rekulas 我手搓代码,直接分页查询,然后写入到 es 了。。
luxinfl
2023-09-09 16:34:45 +08:00
@bringyou 这个不太行,公司用的 7.6.2 版本

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/971730

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX