背景是最近公司准备新开一个项目,之前主用 Elasticearch ,不想再采用之前的技术栈,希望引入新的东西。我调研了一番发现 doris 比较适合我们的业务场景,让后在阿里云开通了一个月的 selectDB 试用,实际测试下来发现很多问题,一些隐性的坑官方文档不说,最大的问题是稳定性,BE 节点可能在某个 sql 执行后就直接挂掉了,不重启是不会自动恢复的。下面是才测试了少部分场景就发现的一些问题。
- array 数组类型建立倒排索引不支持分词器,只能精确匹配,要模糊匹配,只能新增一个 string 字段,拼接起来然后做倒排索引,配置分词器
- array 数组类型不支持修改字段长度,只能新增一个字段。
- variant 可变类型不能存 对象数组,会将同字段数据合并,失去原数据结构
- variant 可变类型存 json 数据如果层级超过两层,会用 jsonb 格式存储,查询性能非常差(一多维的 json 格式数据应该很常见吧)。
- variant 官方文档上的函数 explode_variant_array ,有可能会导致集群挂掉,需要重启。
- json 暂不支持 倒排索引 (这个文档倒是说了,但是我们也是刚需,没办法) 6 array<struct> 倒排索引不支持分词器
想问问你们项目使用 selectDB 的真实体验如何。
