メインコンテンツまでスキップ
メインコンテンツまでスキップ

jdbc テーブル関数

注記

clickhouse-jdbc-bridge は実験的なコードを含んでおり、もはやサポートされていません。信頼性の問題やセキュリティの脆弱性を含む可能性があります。自己責任で使用してください。 ClickHouse は、Postgres、MySQL、MongoDB などのアドホッククエリシナリオに対して、より良い代替手段を提供する ClickHouse 内蔵のテーブル関数を使用することを推奨します。

JDBC テーブル関数は、JDBC ドライバを介して接続されたテーブルを返します。

このテーブル関数は、別途 clickhouse-jdbc-bridge プログラムが実行されている必要があります。 Nullable 型をサポートしており、クエリされるリモートテーブルの DDL に基づいています。

構文

jdbc(datasource, external_database, external_table)
jdbc(datasource, external_table)
jdbc(named_collection)

外部データベース名の代わりにスキーマを指定できます:

SELECT * FROM jdbc('jdbc:mysql://localhost:3306/?user=root&password=root', 'schema', 'table')
SELECT * FROM jdbc('mysql://localhost: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