MySQL 引擎如何从 ClickHouse 中的 MySQL 数据库中获取数据?
Posted
技术标签:
【中文标题】MySQL 引擎如何从 ClickHouse 中的 MySQL 数据库中获取数据?【英文标题】:How MySQL engine get data from MySQL database in ClickHouse? 【发布时间】:2020-11-27 12:44:39 【问题描述】:在我的工作中,事实表存储在 ClickHouse 中,维度表存储在 mysql 数据库中,所以使用 MySQL 数据库引擎连接 ClickHouse 和 MySQL 数据库。从 ClickHouse SQL 运行日志中,我可以发现 ClickHouse 会从 MySQL 数据库中获取所需的数据并进行聚合。 我的问题是 ClickHouse 从 MySQL 数据库获取数据的模式是什么?是正确的 ClickHouse 获取查询中需要的所有数据然后进行聚合或同时执行这两个操作? 如何提高此场景中使用的 SQL 性能?有没有练习技巧?
【问题讨论】:
【参考方案1】:外部字典加载数据(即来自 Mysql)并将这些数据缓存在 CH 服务器内存中。外部字典 (dictGet) 比 Engine Mysql 中的 SELECT 快很多次。
https://clickhouse.tech/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts/#dicts-external-dicts
https://clickhouse.tech/docs/en/sql-reference/statements/create/dictionary/
【讨论】:
以上是关于MySQL 引擎如何从 ClickHouse 中的 MySQL 数据库中获取数据?的主要内容,如果未能解决你的问题,请参考以下文章
ClickHouse 高级MaterializeMySQL 引擎
从 mongoDB 迁移到 clickhouse 中的嵌套数据结构