我们正在改造我们现有的系统,它使用mysql数据库来处理以下类型的数据。
交易和订单相关数据
客户信息
产品信息
我们需要查询这些数据和拉入统计数据,还需要过滤、方面和段列表以及KPI。
我们尝试了clickhouse、druid和dgraph对样本数据进行了一些测试,以进行基准测试,并检查哪个db适合我们的需要。
我喜欢Druiddb的几件事是,
druid搜索查询:列出所有匹配项以及维度(列名)和计数/出现次数。链接:http://druid.io/docs/latest/querying/searchquery.html
utf8mb4支持
全文搜索
不区分大小写的搜索
我们发现clickhouse比mysql和druid数据库更快。但有以下问题。
无法执行类似druid的搜索查询(返回维度和引用)。有什么解决方法可以做到这一点吗?
不区分大小写的搜索。我们怎么处理?clickhouse区分大小写,对吧?
utf8mb4支持?如何保存/存储utf8不支持的特殊字符或少数表情符号?
我们在mysql中遇到了类似的问题,将排序规则更改为utf8mb4解决了这个问题。我们在clickhouse做什么来实现这一点?
你的建议可以帮助我们克服这些挑战,做出更好的决定。
提前谢谢。
1条答案
按热度按时间ha5z0ras1#
无法执行类似druid的搜索查询(返回维度和引用)。有什么解决方法可以做到这一点吗?
该功能听起来大致如下:
不区分大小写的搜索。我们怎么处理?clickhouse区分大小写,对吧?
例如,有多种选择
positionCaseInsensitiveUTF8(haystack, needle)
函数或与正则表达式匹配:https://clickhouse.yandex/docs/en/query_language/functions/string_search_functions/#match-干草堆图案utf8mb4支持?如何保存/存储utf8不支持的特殊字符或少数表情符号?
clickhouse中的字符串是任意字节序列,因此您可以在那里存储任何您想要的内容,但是您可能应该检查可用函数是否与您的用例匹配。