MySQL迁移到ClickHouse方案

这篇文章主要介绍了mysql迁移到clickhouse的几种方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下。数据迁移需要从mysql导入clickhouse, 总结方案如下,包括clickhouse自身支持的方式及第三方工具迁移方案。

ClickHouse同步建表

1

2

3

4

5

6

7

8

9

create table engin 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],

 ...

 INDEX index_name1 expr1 TYPE type1(...) GRANULARITY value1,

 INDEX index_name2 expr2 TYPE type2(...) GRANULARITY value2

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

官方文档: https://clickhouse.yandex/docs/en/operations/table_engines/mysql/

注意,实际数据存储在远端mysql数据库中,可以理解成外表。

可以通过在mysql增删数据进行验证。

1

2

3

4

5

6

7

8

9

10

#insert into select方法

insert into select from

-- 先建表

CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]

(

 name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],

 name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],

 ...

) ENGINE = engine

-- 导入数据

INSERT INTO [db.]table [(c1, c2, c3)] select 列或者* from mysql('host:port', 'db', 'table_name', 'user', 'password')

可以自定义列类型,列数,使用clickhouse函数对数据进行处理,比如

1

2

3

4

5

6

7

select toDate(xx) from mysql("host:port","db","table_name","user_name","password")

create table as select from

CREATE TABLE [IF NOT EXISTS] [db.]table_name

ENGINE =Log

AS

SELECT *

FROM mysql('host:port', 'db', 'article_clientuser_sum', 'user', 'password')

网友文章: http://jackpgao.github.io/2018/02/04/ClickHouse-Use-MySQL-Data/

Altinity开源工具

不支持自定义列,参考资料里的博主写的 ENGIN=MergeTree 测试失败。

可以理解成 create table 和 insert into select 的组合

Altinity/clickhouse-mysql-data-reader

Altinity公司开源的一个python工具,用来从mysql迁移数据到clickhouse(支持binlog增量更新和全量导入),但是官方readme和代码脱节,根据quick start跑不通。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

## 创建表

clickhouse-mysql \

 --src-host=127.0.0.1 \

 --src-user=reader \

 --src-password=Qwerty1# \

 --table-templates-with-create-database \

 --src-table=airline.ontime > create_clickhouse_table_template.sql

## 修改脚本

vim create_clickhouse_table_template.sql

## 导入建表

clickhouse-client -mn < create_clickhouse_table_template.sql

## 数据导入

clickhouse-mysql \

 --src-host=127.0.0.1 \

 --src-user=reader \

 --src-password=Qwerty1# \

 --table-migrate \

 --dst-host=127.0.0.1 \

 --dst-table=logunified \

 --csvpool

官方文档: https://github.com/Altinity/clickhouse-mysql-data-reader#mysql-migration-case-1—migrate-existing-data

注意,上述三种都是从mysql导入clickhouse,如果数据量大,对于mysql压力还是挺大的。下面介绍两种离线方式(streamsets支持实时,也支持离线)

MySQL迁移到ClickHouse方案相关推荐

  1. 【ClickHouse】从Mysql迁移到ClickHouse大全

    从关系型的数据库(Mysql)升级到列式管理的联机分析型数据库(ClickHouse),这不亚于是小米加步枪升级为加特林机关枪的性能提升了,查询能力等确实是大大的提升了,这出现了一个问题我们之前存储在 ...

  2. mysql数据库快速传输方案_MySQL数据库迁移快速导出导入大量数据

    数据库迁移是我们经常可遇到的问题,对于少量的数据,迁移基本上不会有什么问题.生产环境中,有以下情况需要做迁移工作: 磁盘空间不够.比如一些老项目,选用的机型并不一定适用于数据库.随着时间的推移,硬盘很 ...

  3. oracle mysql迁移方案_Oracle/云MySQL/MsSQL“大迁移”真相及最优方案

    最近一段时间碰到一些数据迁移的项目,如:Oracle迁移到MySQL,MsSQL迁移到MySQL,云MySQL迁移到本地MySQL.对于这方面做了系统的整理.包括:迁移方案的选择.如何跳出迁移遇到的坑 ...

  4. mysql迁移后数据对比_Oracle/云MySQL/MsSQL“大迁移”真相及最优方案

    原标题:Oracle/云MySQL/MsSQL"大迁移"真相及最优方案 最近一段时间碰到一些数据迁移的项目,如:Oracle迁移到MySQL,MsSQL迁移到MySQL,云MySQ ...

  5. mysql 迁移方案_不同场景下 MySQL 的迁移方案

    本文内容 为什么要迁移 MySQL 迁移方案概览 MySQL 迁移实战 注意事项 技巧 总结 一.为什么要迁移 MySQL 迁移是 DBA 日常维护中的一个工作.迁移,是把实际存在的物体挪走,保证该物 ...

  6. MySQL 大表优化方案

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:manong sf.gg/a/119000000615818 ...

  7. mysql场景测试_【干货】不同场景下 如何进行MySQL迁移

    一.为什么要迁移 MySQL 迁移是 DBA 日常维护中的一个工作.迁移,究其本义,无非是把实际存在的物体挪走,保证该物体的完整性以及延续性.就像柔软的沙滩上,两个天真无邪的小孩,把一堆沙子挪向其他地 ...

  8. 【干货】不同场景下 如何进行MySQL迁移

    一.为什么要迁移 MySQL 迁移是 DBA 日常维护中的一个工作.迁移,究其本义,无非是把实际存在的物体挪走,保证该物体的完整性以及延续性.就像柔软的沙滩上,两个天真无邪的小孩,把一堆沙子挪向其他地 ...

  9. 史上最全MySQL 大表优化方案(长文)

    转载自  史上最全MySQL 大表优化方案(长文) 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 一.单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑 ...

最新文章

  1. python xlrd读取excel所有数据_python读取excel进行遍历/xlrd模块操作
  2. 图像篡改检测pytorch版本
  3. python PyQt5 QComboBox类(下拉列表框、组合下拉框)
  4. 深度学习每层的通道数如何计算_深度学习基础系列(一)| 一文看懂用kersa构建模型的各层含义(掌握输出尺寸和可训练参数数量的计算方法)...
  5. mysql innodb 数据恢复
  6. EasyUi – 5.修改$.messager.show() 弹出窗口在浏览器顶部中间出现
  7. delete table 和 truncate table
  8. 将list中的数据类型都变成int类型
  9. 联想Y9000P安装Ubuntu20.04记录
  10. 第三节 UNIX文件系统结构
  11. 查看极域电子教室的密码
  12. PyCharm(Python编译器汉化)
  13. 开源阅读书源_免费开源网络文学阅读器(万本小说免费阅读)
  14. Polarized 3D翻译
  15. DirectX11与DirectX12在古墓丽影暗影中的表现
  16. 为什么cinder-volume在删除volume时无反应 (by quqi99)
  17. No Debug UInit Device found 问题解决
  18. 整理 酷炫 Android 开源UI框架 Navigation
  19. 点云格式解读LAS/PCD
  20. 小程序项目:基于微信小程序旅游管理系统——计算机毕业设计

热门文章

  1. FullCalendar 一: 日程安排FullCalendar
  2. Ubuntu添加开机自动启动程序的方法 / 修改 Ubuntu 启动顺序
  3. Elasticsearch整理笔记(一)
  4. const iterator 和const_iterator的区别
  5. 机器学习速成课程 | 练习 | Google Development——编程练习:稀疏性和 L1 正则化
  6. 【今日CV 视觉论文速览】20 Nov 2018
  7. 媒体播放器的状态 winform
  8. 断开式绑定数据在comboBox中 winform
  9. 卖票案例 多线程 java 1615387415
  10. 断开式数据集DataSet 1129