The MySQL engine allows you to performDocumentation Index
Fetch the complete documentation index at: https://private-7c7dfe99-page-updates.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
SELECT and INSERT queries on data that is stored on a remote MySQL server.
Creating a table
- Column names should be the same as in the original MySQL table, but you can use just some of these columns and in any order.
- Column types may differ from those in the original MySQL table. ClickHouse tries to cast values to the ClickHouse data types.
- The external_table_functions_use_nulls setting defines how to handle Nullable columns. Default value: 1. If 0, the table function does not make Nullable columns and inserts default values instead of nulls. This is also applicable for NULL values inside arrays.
host:port— MySQL server address.database— Remote database name.table— Remote table name.user— MySQL user.password— User password.replace_query— Flag that convertsINSERT INTOqueries toREPLACE INTO. Ifreplace_query=1, the query is substituted.on_duplicate_clause— TheON DUPLICATE KEY on_duplicate_clauseexpression that is added to theINSERTquery. Example:INSERT INTO t (c1,c2) VALUES ('a', 2) ON DUPLICATE KEY UPDATE c2 = c2 + 1, whereon_duplicate_clauseisUPDATE c2 = c2 + 1. See the MySQL documentation to find whichon_duplicate_clauseyou can use with theON DUPLICATE KEYclause. To specifyon_duplicate_clauseyou need to pass0to thereplace_queryparameter. If you simultaneously passreplace_query = 1andon_duplicate_clause, ClickHouse generates an exception.
host and port should be specified separately. This approach is recommended for production environment.
Simple WHERE clauses such as =, !=, >, >=, <, <= are executed on the MySQL server.
The rest of the conditions and the LIMIT sampling constraint are executed in ClickHouse only after the query to MySQL finishes.
Supports multiple replicas that must be listed by |. For example:
Usage example
Create table in MySQL:Settings
Default settings are not very efficient, since they do not even reuse connections. These settings allow you to increase the number of queries run by the server per second.connection_auto_close
Allows to automatically close the connection after query execution, i.e. disable connection reuse.
Possible values:
- 1 — Auto-close connection is allowed, so the connection reuse is disabled
- 0 — Auto-close connection is not allowed, so the connection reuse is enabled
1.
connection_max_tries
Sets the number of retries for pool with failover.
Possible values:
- Positive integer.
- 0 — There are no retries for pool with failover.
3.
connection_pool_size
Size of connection pool (if all connections are in use, the query will wait until some connection will be freed).
Possible values:
- Positive integer.
16.
connection_wait_timeout
Timeout (in seconds) for waiting for free connection (in case of there is already connection_pool_size active connections), 0 - do not wait.
Possible values:
- Positive integer.
5.
connect_timeout
Connect timeout (in seconds).
Possible values:
- Positive integer.
10.
read_write_timeout
Read/write timeout (in seconds).
Possible values:
- Positive integer.
300.