15_clickhouse,MySQL引擎;MySQL和ClickHouse中数据类型的对应关系

20.MySQL引擎
20.1.MySQL引擎
20.2.MySQL和ClickHouse中数据类型的对应关系
20.3.示例

20.MySQL引擎

20.1.MySQL引擎

MySQL引擎可实现对MySQL数据库的表执行插入和查询操作。
ClickHouse表结构可以不同于原始的MySQL表结构。
列名应当与原始MySQL表中的列名相同,但可以按任意顺序使用其中的一些列。
列的数据类型可能与原始的MySQL表中的列类型不同,ClickHouse尝试进行数据类型转换。

执行表引擎:

ENGINE = MySQL('host:port', 'database', 'table', 'user', 'password'[, replace_query, 'on_duplicate_clause']);

引擎参数:
1.host:port :MySQL server的地址。
2.database :MySQL数据库名称。
3.table : MySQL表名。
4.user : MySQL用户名。
5.password : MySQL用户密码。
6.replace_query :将INSERT INTO查询转换为REPLACE INTO查询的标识。如果replace_query=1, 查询将被替换。
7.on_duplicate_clause : 将ON DUPLICATE KEY 'on_duplicate_clause’表达式添加到INSERT查询中。
例如: INSERT INTO t (c1,c2) VALUES (‘a’, 2) ON DUPLICATE KEY UPDATE c2 = c2 + 1, on_duplicate_clause表达式为: UPDATE c2 = c2 + 1。
如果使用on_duplicate_clause,需设置参数replace_query=0。如果同时传递replace_query=1和 on_duplicate_clause,ClickHouse将抛出异常。

20.2.MySQL和ClickHouse中数据类型的对应关系

MySQLClickHouse
UNSIGNED TINYINTUInt8
TINYINTInt8
UNSIGNED SMALLINTUInt16
SMALLINTInt16
UNSIGNED INT, UNSIGNED MEDIUMINTUInt32
INT, MEDIUMINTInt32
UNSIGNED BIGINTUInt64
BIGINTInt64
FLOATFloat32
DOUBLEFloat64
DATEDate
DATETIME, TIMESTAMPDateTime
BINARYFixedString

20.3.示例

1.在MySQL创建表和插入数据

drop table test.test;
create table test.test (
    id int NOT NULL AUTO_INCREMENT,
    cnt int,
    primary key (id)
);

insert into test.test (id,cnt) values (1,2);

select * from test.test;

在这里插入图片描述
2.在ClickHouse中创建MySQL引擎的表

DROP TABLE mysql_table_dup;
CREATE TABLE mysql_table_dup
(
  id Int32,
  cnt Int32
)
ENGINE = MySQL('xxx.xxx.xxx.xxx:3306', 'test', 'test', 'root', 'xxxxxxx', 0, 'UPDATE cnt=cnt+1');

效果图:

middleware :) CREATE TABLE mysql_table_dup
:-] (
:-] id Int32,
:-] cnt Int32
:-] )
:-] ENGINE = MySQL('xxx.xxx.xxx.xxx:3306', 'test', 'test', 'root', 'xxxxxxx', 0, 'UPDATE cnt=cnt+1');

CREATE TABLE mysql_table_dup
(
    `id` Int32,
    `cnt` Int32
)
ENGINE = MySQL('xxx.xxx.xxx.xxx:3306', 'test', 'test', 'root', 'xxxxxxx', 0, 'UPDATE cnt=cnt+1')

Ok.

0 rows in set. Elapsed: 0.003 sec. 

middleware :) show tables;

SHOW TABLES

┌─name────────────┐
│ consumer        │
│ daily           │
│ mysql_table_dup │
│ queue           │
└─────────────────┘

4 rows in set. Elapsed: 0.006 sec. 

middleware :) select * from mysql_table_dup limit 10;

SELECT *
FROM mysql_table_dup
LIMIT 10

┌─id─┬─cnt─┐
│  12 │
└────┴─────┘

1 rows in set. Elapsed: 0.192 sec. 

middleware :)

插入主键冲突的数据:

insert into mysql_table_dup_values(2,1);
select * from mysql_table_dup;

效果图:

middleware :) insert into mysql_table_dup values(2, 1);

INSERT INTO mysql_table_dup VALUES

Ok.

1 rows in set. Elapsed: 0.039 sec. 

middleware :) select * from mysql_table_dup limit 10;

SELECT *
FROM mysql_table_dup
LIMIT 10

┌─id─┬─cnt─┐
│  12 │
│  21 │
└────┴─────┘

2 rows in set. Elapsed: 0.010 sec. 

middleware :) 

再到MySQL库中查看:
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涂作权的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值