跳到主要内容

jdbc

注意

clickhouse-jdbc-bridge 包含实验代码,不再受支持。它可能存在可靠性问题和安全漏洞。使用它需自担风险。ClickHouse 建议使用 ClickHouse 中内置的表函数,它们为临时查询场景(PostgreSQL、MySQL、MongoDB 等)提供了更好的替代方案。

jdbc(datasource, schema, table) - 返回通过 JDBC 驱动程序连接的表。

此表函数需要单独运行 clickhouse-jdbc-bridge 程序。它支持可空类型(基于查询的远程表的 DDL)。

示例

SELECT * FROM jdbc('jdbc:mysql://127.0.0.1:3306/?user=root&password=root', 'schema', 'table')
SELECT * FROM jdbc('mysql://127.0.0.1:3306/?user=root&password=root', 'select * from schema.table')
SELECT * FROM jdbc('mysql-dev?p1=233', 'num Int32', 'select toInt32OrZero(''{{p1}}'') as num')
SELECT *
FROM jdbc('mysql-dev?p1=233', 'num Int32', 'select toInt32OrZero(''{{p1}}'') as num')
SELECT a.datasource AS server1, b.datasource AS server2, b.name AS db
FROM jdbc('mysql-dev?datasource_column', 'show databases') a
INNER JOIN jdbc('self?datasource_column', 'show databases') b ON a.Database = b.name