Как движок MySQL получает данные из базы данных MySQL в ClickHouse?

#mysql #database #clickhouse

#mysql #База данных #кликхаус

Вопрос:

В моей работе таблицы фактов хранятся в ClickHouse, таблицы измерений хранятся в базе данных MySQL, поэтому MySQL database Engine используется для подключения ClickHouse и базы данных MySQL. Из журнала выполнения ClickHouse SQL я могу найти, что ClickHouse будет извлекать необходимые данные из базы данных MySQL и выполнять агрегирование. Мой вопрос в том, в каком режиме ClickHouse получает данные из базы данных MySQL? является ли right ClickHouse получить все данные, необходимые в запросе, а затем выполнить агрегирование или выполнить эти два действия одновременно? Как я могу улучшить производительность SQL, используемого в этой сцене? Есть ли какие-нибудь практические навыки?

Ответ №1:

Внешние словари загружают данные (т.Е. из Mysql) и кэшируют эти данные в памяти сервера CH. Внешние словари (dictGet) быстрее, чем выбирает из движка Mysql на неопределенное количество раз.

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/