数据库js css htmlmysql

ClickHouse表引擎之MySQL引擎

2023-03-22  本文已影响0人  这货不是王马勺

进入clickhouse,创建测试库:

CREATE DATABASE IF NOT EXISTS testwwj;
show databases;
use testwwj;

创建链接表的语法如下,可以理解为clickhouse作为MySQL客户端:

CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
    name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [TTL expr1],
    name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [TTL expr2],
    ...
) ENGINE = MySQL('host:port', 'database', 'table', 'user', 'password'[, replace_query, 'on_duplicate_clause'])
SETTINGS
    [ connection_pool_size=16, ]
    [ connection_max_tries=3, ]
    [ connection_wait_timeout=5, ]
    [ connection_auto_close=true, ]
    [ connect_timeout=10, ]
    [ read_write_timeout=300 ]
;

参数说明:

此时,简单的 WHERE 子句(例如 =, !=, >, >=, <, <=)是在 MySQL 服务器上执行。

注:MySQL 引擎不支持 可为空 数据类型,因此,当从MySQL表中读取数据时,NULL 将转换为指定列类型的默认值(通常为0或空字符串)。

创建一张MySQL引擎测试表:

CREATE TABLE DML_COPY_175_DBTEST
(
    `Id` UInt32,
    `Date` Date,
    `User_name` String,
    `DB_IP` String,
    `DB_name` String,
    `SQL` String,
    `Comment` String,
    `rawdata` String  
)ENGINE=MySQL('10.10.1.175:3306','DBTEST','DML_COPY','wenjie.wang', '123456');

show tables;

然后我们建立ClickHouse的MergeTree表:

CREATE TABLE DML_COPY_2021
(
    `Id` UInt32,
    `Date` Date,
    `User_name` String,
    `DB_IP` String,
    `DB_name` String,
    `SQL` String,
    `Comment` String,
    `rawdata` String  
)engine=MergeTree
partition by (Date)
primary key (Date)
order by (Date)
;

show tables;

将MySQL所需数据导入:

INSERT INTO DML_COPY_2021
SELECT `Id` ,
    `Date` ,
    `User_name` ,
    `DB_IP` ,
    `DB_name` ,
    `SQL` ,
    `Comment` ,
    `rawdata` 
FROM   DML_COPY_175_DBTEST
WHERE  `Date` < '2022-01-01'
;

检查数据:

select max(Date) from DML_COPY_2021;

官网:

https://clickhouse.com/docs/zh/engines/table-engines/integrations/mysql
上一篇 下一篇

猜你喜欢

热点阅读