踩坑一:
读取数据库数据,可以一次性读取多条,经测试一次性查询数据库5w到10w条数据,数据较快,然后分批次导入,批量导入es。发现尝试各种办法,总是有30%左右的数据丢失,单机情况下;再查看数据库查询结果,每次结果都不一样,然后在sql语句中加了一个order by ,居然导入成功。建议每次批量导入1K或者2K。5K和10K也尝试过没有问题。
踩坑二:
批量导入es的时候,发现导入后没有数据,因为是es所在服务器磁盘空间不足,个人觉得超过磁盘的95%就会导入不了。返回403 forbidden,说的是服务器已理解请求(接受了请求),但是就是forbidden。在Kibana中也可以尝试如下:
PUT standard-address/_settings
{
"index": {
"blocks": {
"read_only_allow_delete": "false"
}
}
}
个人觉得这两个操作都执行检查一下。
本文分享了在数据库到Elasticsearch(ES)数据迁移过程中遇到的两个问题。一是批量导入数据时出现30%数据丢失,解决办法是在SQL查询中添加ORDER BY以确保稳定性。二是ES服务器因磁盘空间不足导致导入失败,需关注服务器磁盘使用情况,当超过95%时可能影响导入,并可通过调整设置临时解除只读限制。
3990

被折叠的 条评论
为什么被折叠?



