为什么ES不适合做数据存储

文章探讨了为何ES不适合用作数据存储,主要原因是mapping不可更改、无法实现多对多关联、缺乏用户验证和权限控制,以及初期shards数量不易确定。尽管ES在检索和统计上有优势,但其设计目的与数据存储需求不符,不适用于未来需求变化大的场景。
摘要由CSDN通过智能技术生成

前段时间公司想尝试用ES来存一部分数据,以此缓解数据增长带来的对数据库的压力。ES的介绍很多地方都有,就不再写了。在研究了一段时间后,发现ES不适合做为数据存储使用,理由如下:

  1. mapping不可改,不能改index属性。ES中以定义的mapping不能修改名字和属性,无法修改名字勉强还能接受,但无法修改属性。官方文档中介绍了几种修改mapping的方法。一个是新建一个字段,程序中所有地方修改名字,这对于复杂的项目容易出错,而且无法保留原来的数据;另一个是利用alias创建一个新的索引,但是所有数据需要重新导入,这需要很长时间,操作性不强。
  2. 无法多对多。ES中提供3种关联关系:Field collapsing(严格来说不是关联),Nested object,Parent-child。前两种都是直接将一个mapping声明在另一个mapping中,第三种关联是在创建子文档是指明他的父文档,但是一个子文档只能有一个父文档,因此也不能实现多对多的关联。其实如果理解了ES的目的是提升检索效率,就不难理解为什么没有多对多关联了,在关系数据库里这就是个效率瓶颈。
  3. 没有用户验证和权限控制。ES本身的访问权限可以通过nginx进行控制,但是同一个ES中不同索引间目前是没有权限控制的。
  4. 从ES设计的初衷看,为了检索,为了统计。这个从字段的store属性中可以看出来,查看ES手册(https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-store.html)可以
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值