长沙做网站seo优化外包,北京网聘信息技术有限公司,程序开发 网站开发,王烨鑫JDBC
允许CH通过JDBC连接到外部数据库。
要实现JDBC连接#xff0c;CH需要使用以后台进程运行的程序 clickhouse-jdbc-bridge。
该引擎支持Nullable数据类型。
建表
CREATE TABLE [IF NOT EXISTS] [db.]table_name
(columns list...
)
ENGINE JDBC(datasource_uri, exte…JDBC
允许CH通过JDBC连接到外部数据库。
要实现JDBC连接CH需要使用以后台进程运行的程序 clickhouse-jdbc-bridge。
该引擎支持Nullable数据类型。
建表
CREATE TABLE [IF NOT EXISTS] [db.]table_name
(columns list...
)
ENGINE JDBC(datasource_uri, external_database, external_table)引擎参数 datasource_uri — 外部DBMS的URI或名字. URI格式: jdbc:driver_name://host_name:port/?userusernamepasswordpassword. MySQL示例: jdbc:mysql://localhost:3306/?userrootpasswordroot. external_database — 外部DBMS的数据库名. external_table — external_database中的外部表名或类似select * from table1 where column11的查询语句.
用法示例
通过mysql控制台客户端来创建表
Creating a table in MySQL server by connecting directly with it’s console client:
mysql CREATE TABLE test.test (- int_id INT NOT NULL AUTO_INCREMENT,- int_nullable INT NULL DEFAULT NULL,- float FLOAT NOT NULL,- float_nullable FLOAT NULL DEFAULT NULL,- PRIMARY KEY (int_id));
Query OK, 0 rows affected (0,09 sec)mysql insert into test (int_id, float) VALUES (1,2);
Query OK, 1 row affected (0,00 sec)mysql select * from test;
-------------------------------
| int_id | int_nullable | float | float_nullable |
-------------------------------
| 1 | NULL | 2 | NULL |
-------------------------------
1 row in set (0,00 sec)在CH服务端创建表并从中查询数据
CREATE TABLE jdbc_table
(int_id Int32,int_nullable Nullable(Int32),float Float32,float_nullable Nullable(Float32)
)
ENGINE JDBC(jdbc:mysql://localhost:3306/?userrootpasswordroot, test, test)SELECT *
FROM jdbc_table┌─int_id─┬─int_nullable─┬─float─┬─float_nullable─┐
│ 1 │ ᴺᵁᴸᴸ │ 2 │ ᴺᵁᴸᴸ │
└────────┴──────────────┴───────┴────────────────┘INSERT INTO jdbc_table(int_id, float)
SELECT toInt32(number), toFloat32(number * 1.0)
FROM system.numbersJDBC表函数
clickhouse除了支持建表集成jdbc数据源之外还支持通过表函数也就是返回一个表的函数来临时集成查询一张表的数据。它与建表集成一样需要clickhouse-jdbc-bridge程序才能运行。它支持可空类型基于查询的远程表的DDL。
示例
SELECT * FROM jdbc(jdbc:mysql://localhost:3306/?userrootpasswordroot, schema, table)SELECT * FROM jdbc(mysql://localhost:3306/?userrootpasswordroot, select * from schema.table)SELECT * FROM jdbc(mysql-dev?p1233, num Int32, select toInt32OrZero({{p1}}) as num)SELECT *
FROM jdbc(mysql-dev?p1233, 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资料分享
ClickHouse经典中文文档分享
参考文章
ClickHouse(01)什么是ClickHouse,ClickHouse适用于什么场景ClickHouse(02)ClickHouse架构设计介绍概述与ClickHouse数据分片设计ClickHouse(03)ClickHouse怎么安装和部署ClickHouse(04)如何搭建ClickHouse集群ClickHouse(05)ClickHouse数据类型详解ClickHouse(06)ClickHouse建表语句DDL详细解析ClickHouse(07)ClickHouse数据库引擎解析ClickHouse(08)ClickHouse表引擎概况ClickHouse(09)ClickHouse合并树MergeTree家族表引擎之MergeTree详细解析ClickHouse(10)ClickHouse合并树MergeTree家族表引擎之ReplacingMergeTree详细解析ClickHouse(11)ClickHouse合并树MergeTree家族表引擎之SummingMergeTree详细解析ClickHouse(12)ClickHouse合并树MergeTree家族表引擎之AggregatingMergeTree详细解析ClickHouse(13)ClickHouse合并树MergeTree家族表引擎之CollapsingMergeTree详细解析ClickHouse(14)ClickHouse合并树MergeTree家族表引擎之VersionedCollapsingMergeTree详细解析ClickHouse(15)ClickHouse合并树MergeTree家族表引擎之GraphiteMergeTree详细解析ClickHouse(16)ClickHouse日志引擎Log详细解析