clickhouse入门学习以及数据迁移

本文主要介绍如何入门clickhouse,以及将mariadb数据迁移过来,最后介绍当前几种的训练的示例数据库集。

1、中文教程:

中文教程:中文教程

有了教程,需要有数据可以训练,教程提供示例数据集,但是数据量都比较大,一般在1GB以上,下载以及导入就会比较麻烦。

2、训练语法:

介绍一个在线训练的数据库,show database就可以知道,里面包含了教程里大部分的示例数据库,省去创建数据库以及建表的麻烦事,快速入门操作select,group by 等基本语法:

clickhouse query:clickhouse在线训练数据库

3、导入数据:

完成数据库select等的基础语法训练后,开始进入实战,如果还没在本地建立clickhouse server的放在,请移步Clickhouse 使用DBeaver连接

1)下载数据集:

我找了一个【英国房地产支付价格】中的一个月的记录,只有几十MB,数据量不大但足够跑一遍流程。

数据集链接:英国房地产支付价格

2)创建表

CREATE TABLE uk_price_paid
(
    price UInt32,
    date Date,
    postcode1 LowCardinality(String),
    postcode2 LowCardinality(String),
    type Enum8('terraced' = 1, 'semi-detached' = 2, 'detached' = 3, 'flat' = 4, 'other' = 0),
    is_new UInt8,
    duration Enum8('freehold' = 1, 'leasehold' = 2, 'unknown' = 0),
    addr1 String,
    addr2 String,
    street LowCardinality(String),
    locality LowCardinality(String),
    town LowCardinality(String),
    district LowCardinality(String),
    county LowCardinality(String)
)
ENGINE = MergeTree
ORDER BY (postcode1, postcode2, addr1, addr2);
3)导入数据

数据库default,右击“导入数据”,选择“从csv文件导入”,选择第1步下载的数据集csv,

选择“目标端”,点击"configure",对应数据库表的字段,由于下载的csv文件,第一行没有字段名,需要手动新增一行写每列的字段,以方便这步的对应。

最后就是一路向西,完成csv数据导入。

4、迁移数据表

1)创建表

数据库default,右击“新建表”,输入表名,引擎,新增列,输入列名,选择数据类型,一步步操作后,就完成表创建。当然也可以用脚本创建表


CREATE TABLE `default`.NewTable (
    Column1 String,
    `s_id` Int32,
    `s_slsj` DateTime,
) ENGINE = MergeTree
PARTITION BY toYYYYMM(slsj)
PRIMARY KEY s_id
ORDER BY s_id
TTL s_slsj + toIntervalMonth(12)
SETTINGS index_granularity = 8192;
2)数据迁移

右击新建的表NewTable,选择“导入数据”,选择“数据库表”,点击源端,在弹出的对话框,选择mariadb的数据库,最后选择对应的库表。最后选择对应的字段,就可以完成数据导入。

3)mysql to clickhouse 使用驱动同步数据
--入库
INSERT INTO `default`.system_log
select * from mysql('192.168.0.1:3306', 'dbname', 'dbtable', 'root', 'password') t1
where s_slsj between 'bdate' and 'edate'

--检查按天是否重复
select toYYYYMMDD(`s_slsj`),count(1)
FROM `default`.system_log
where s_slsj between  'bdate' and 'edate'
group by toYYYYMMDD(`s_slsj`)
order by toYYYYMMDD(`s_slsj`)

--修改过期时间
ALTER table `default`.system_log MODIFY TTL s_slsj + toIntervalMonth(12)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一个高效工作的家伙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值