使用 ClickHouse 的问题
Problems using ClickHouse
我们正在改造我们现有的系统,它使用 MYSQL 数据库来处理以下类型的数据。
- 交易和订单相关数据
- 客户信息
- 产品信息
我们需要查询这些数据并拉入统计数据,还需要筛选、分面和细分列表以及 KPI。
我们尝试了 ClickHouse、Druid、DGraph 对示例数据进行了一些测试以进行基准测试并检查哪个数据库符合我们的需求。
我喜欢 Druid DB 的几点是,
- Druid 搜索查询:其中列出了所有匹配项以及相同的维度(列名)和 count/occurrence。
Link: http://druid.io/docs/latest/querying/searchquery.html
- utf8mb4 支持
- 全文搜索
- 不区分大小写的搜索
我们发现与 MYSQL 和 Druid 数据库相比,ClickHouse 更快。但是有以下问题。
- 无法执行类似德鲁伊的搜索查询(return 维度和出现次数)。有什么解决方法可以实现这个目标吗?
- 不区分大小写的搜索。我们如何处理这个? ClickHouse 是区分大小写的,对吧?
- utf8mb4 支持吗?我们如何 save/store 特殊字符或一些 utf8 不支持的表情符号?
我们在 MYSQL 中遇到了类似的问题,将排序规则更改为 utf8mb4 解决了这个问题。我们在 ClickHouse 中如何实现这一点?
您的建议可以帮助我们克服这些挑战并做出更好的决定。
提前致谢。
Unable to do druid-like-search queries (which return dimension and occurrences). Any workaround to achieve this?
该功能的工作原理大致如下:
SELECT interval, dim1, COUNT(*) FROM my_table WHERE condition GROUP BY interval, dim1
UNION ALL
SELECT interval, dim2, COUNT(*) FROM my_table WHERE condition GROUP BY interval, dim2
UNION ALL
...
Case insensitive search. How do we handle this? ClickHouse is case-sensitive, right?
有多个选项,例如positionCaseInsensitiveUTF8(haystack, needle)
函数或匹配正则表达式:https://clickhouse.yandex/docs/en/query_language/functions/string_search_functions/#match-haystack-pattern
utf8mb4 support? How do we save/store special characters or few emoji's which are not supported on utf8?
ClickHouse 中的字符串是任意字节序列,因此您可以在那里存储任何您想要的内容,但您可能应该检查可用函数是否与您的用例匹配。
我们正在改造我们现有的系统,它使用 MYSQL 数据库来处理以下类型的数据。
- 交易和订单相关数据
- 客户信息
- 产品信息
我们需要查询这些数据并拉入统计数据,还需要筛选、分面和细分列表以及 KPI。
我们尝试了 ClickHouse、Druid、DGraph 对示例数据进行了一些测试以进行基准测试并检查哪个数据库符合我们的需求。
我喜欢 Druid DB 的几点是,
- Druid 搜索查询:其中列出了所有匹配项以及相同的维度(列名)和 count/occurrence。 Link: http://druid.io/docs/latest/querying/searchquery.html
- utf8mb4 支持
- 全文搜索
- 不区分大小写的搜索
我们发现与 MYSQL 和 Druid 数据库相比,ClickHouse 更快。但是有以下问题。
- 无法执行类似德鲁伊的搜索查询(return 维度和出现次数)。有什么解决方法可以实现这个目标吗?
- 不区分大小写的搜索。我们如何处理这个? ClickHouse 是区分大小写的,对吧?
- utf8mb4 支持吗?我们如何 save/store 特殊字符或一些 utf8 不支持的表情符号?
我们在 MYSQL 中遇到了类似的问题,将排序规则更改为 utf8mb4 解决了这个问题。我们在 ClickHouse 中如何实现这一点?
您的建议可以帮助我们克服这些挑战并做出更好的决定。
提前致谢。
Unable to do druid-like-search queries (which return dimension and occurrences). Any workaround to achieve this?
该功能的工作原理大致如下:
SELECT interval, dim1, COUNT(*) FROM my_table WHERE condition GROUP BY interval, dim1
UNION ALL
SELECT interval, dim2, COUNT(*) FROM my_table WHERE condition GROUP BY interval, dim2
UNION ALL
...
Case insensitive search. How do we handle this? ClickHouse is case-sensitive, right?
有多个选项,例如positionCaseInsensitiveUTF8(haystack, needle)
函数或匹配正则表达式:https://clickhouse.yandex/docs/en/query_language/functions/string_search_functions/#match-haystack-pattern
utf8mb4 support? How do we save/store special characters or few emoji's which are not supported on utf8?
ClickHouse 中的字符串是任意字节序列,因此您可以在那里存储任何您想要的内容,但您可能应该检查可用函数是否与您的用例匹配。