先说明一下现有的业务。
使用的数据库:SQL Server 2008 R2
数据库有几百万的数据,这些数据每天都是要批量增加的,批量导入数据的同时会发生某些数据被合并掉了,某些数据被删除了,而且都是放在存储过程里操作的。之所以放在存储过程里操作,是因为单条操作速度太慢,所以后来改为了使用存储过程来进行数据的批量操作。
之前查询数据是用SQL语句直接查询数据库的,现在打算使用elasticsearch来进行数据查询,那么现在问题是查询好查,数据难进。
大家来讨论下对于这种操作都在数据库批量操作的(批量过程包括增、删、改),该如何将数据导入到es中?难道就只能在代码层面实现SQL存储过程里的业务操作吗?
使用的数据库:SQL Server 2008 R2
数据库有几百万的数据,这些数据每天都是要批量增加的,批量导入数据的同时会发生某些数据被合并掉了,某些数据被删除了,而且都是放在存储过程里操作的。之所以放在存储过程里操作,是因为单条操作速度太慢,所以后来改为了使用存储过程来进行数据的批量操作。
之前查询数据是用SQL语句直接查询数据库的,现在打算使用elasticsearch来进行数据查询,那么现在问题是查询好查,数据难进。
大家来讨论下对于这种操作都在数据库批量操作的(批量过程包括增、删、改),该如何将数据导入到es中?难道就只能在代码层面实现SQL存储过程里的业务操作吗?
5 个回复
bingyuf2012
赞同来自:
可以将变化的数据或者数据库批量操作的数据异步发送到队列里,异步消费队列数据更新 ES。
laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net
赞同来自:
rockybean - Elastic Certified Engineer, ElasticStack Fans,公众号:ElasticTalk
赞同来自:
你这里对于实时性要求是怎样的?如果不高的话,可以定时整库导一遍,再加上alias切换。另外为什么要引入elasticsearch呢?有什么是sql server解决不了的吗?
Xargin
赞同来自:
双写会有麻烦的数据一致性问题,不是迫不得已不要用
wengqiankun - es新手
赞同来自: