注意: 您可能需要授权 ClickHouse Cloud 访问您的 MySQL 实例。ClickHouse Cloud 出口 IP 地址的完整列表请见此处。
使用 MySQL 表函数
您可以使用 MySQL 表函数来查询远程 MySQL 表。
SELECT * FROM mysql('<mysql_host>:<port>', '<database>', '<table>', '<user>', '<password>');
创建不提供 schema 的 MySQL 表
您还可以使用 ClickHouse Cloud 服务中的 PostgreSQL 表引擎创建一个表,而无需使用 CREATE TABLE AS
语法指定 schema。当 ClickHouse 在本地创建表时,MySQL 中的类型将映射到等效的 ClickHouse 类型。
CREATE TABLE mycountries AS mysql('<mysql_host>:<port>', '<database>', '<table>', '<user>', '<password>');
注意: 您可以使用设置
external_table_functions_use_nulls = 0
来确保 Null 值表示为其默认值(而不是 Null)。如果设置为 1(默认值),ClickHouse 将为每一列创建 Nullable 变体。
创建具有自定义 schema 的 MySQL 表
您还可以决定通过指定自定义 schema 在 ClickHouse 服务中创建具有 MySQL 表引擎的表。
CREATE TABLE default.mysql_table
(
`float_nullable` Nullable(Float32),
`str` String,
`int_id` Int32
)
ENGINE = mysql('<mysql_host>:<port>', '<database>', '<table>', '<user>', '<password>')