专栏首页mysql-dbamysql历史表数据迁移到clickhouse库
原创

mysql历史表数据迁移到clickhouse库

1.使用mysql引擎的表

创建mysql引擎表:

CREATE TABLE ck_test.tab_datack (
	`id` Int32,
	`phone_id` Int32,
	`phone` Nullable (String),
	`callid` Nullable (Int32),
	`content` Nullable (String),
	`answer` Nullable (String),
	`usedtimems` Nullable (String),
	`file` Nullable (String),
	`addtime` DateTime,
	`publish` Nullable (Int8),
	`operate` Nullable (String),
	`content_time` Nullable (Int32),
	`answer_time` Nullable (Int32),
	`content_new` Nullable (String)
) ENGINE = MySQL('11x.62.x56.x20:3108', 'pho22_sxxxai19', 'tab_datack', 'gxssiji', 'Gssxxi888*()');

查看创建的表:

localhost :) show tables;

SHOW TABLES

┌─name────────────┐
│ tab_calldata    │
│ tab_datack      │
│ tab_voicedata   │
│ tb_callout_plan │
│ tb_merge_tree   │
└─────────────────┘
mysql引擎的表数据不存在clickhouse中而是在远端的mysql中

新建一张clickhouse的表引擎为mergetree

CREATE TABLE ck_test.tab_datack_1 (
	`id` Int32,
	`phone_id` Int32,
	`phone` Nullable (String),
	`callid` Nullable (Int32),
	`content` Nullable (String),
	`answer` Nullable (String),
	`usedtimems` Nullable (String),
	`file` Nullable (String),
	`addtime` DateTime,
	`publish` Nullable (Int8),
	`operate` Nullable (String),
	`content_time` Nullable (Int32),
	`answer_time` Nullable (Int32),
	`content_new` Nullable (String),
	INDEX idx_operate operate TYPE minmax GRANULARITY 5
) ENGINE = MergeTree
PARTITION BY toYYYYMM(addtime)
ORDER BY (id) 
SETTINGS index_granularity = 8192;

把mysql引擎的表数据插入到clickhouse表中

insert into ck_test.tab_datack_1 select * from ck_test.tab_datack;

localhost :) insert into ck_test.tab_datack_1 select * from ck_test.tab_datack;

INSERT INTO ck_test.tab_datack_1 SELECT *
FROM ck_test.tab_datack

↖ Progress: 524.29 thousand rows, 219.97 MB (4.22 thousand rows/s., 1.77 MB/s.) 
↑ Progress: 589.82 thousand rows, 248.37 MB (4.19 thousand rows/s., 1.76 MB/s.) 

直接使用mysql引擎建表插入

CREATE TABLE tab_voicedata
ENGINE = MergeTree
ORDER BY id AS
SELECT *
FROM mysql('11x.62.x56.x20:3108', 'pho22_sxxxai19', 'tab_datack', 'gxssiji', 'Gssxxi888*()');

上述这两种方式如果网络不好或者表很大,插入会很慢

2.利用导入文件的方式迁移mysql表到clickhouse

首先创建clickhouse表

CREATE TABLE ck_test.tab_datack_1 (
	`id` Int32,
	`phone_id` Int32,
	`phone` Nullable (String),
	`callid` Nullable (Int32),
	`content` Nullable (String),
	`answer` Nullable (String),
	`usedtimems` Nullable (String),
	`file` Nullable (String),
	`addtime` DateTime,
	`publish` Nullable (Int8),
	`operate` Nullable (String),
	`content_time` Nullable (Int32),
	`answer_time` Nullable (Int32),
	`content_new` Nullable (String),
	INDEX idx_operate operate TYPE minmax GRANULARITY 5
) ENGINE = MergeTree
PARTITION BY toYYYYMM(addtime)
ORDER BY (id) 
SETTINGS index_granularity = 8192;

导出mysql表数据到文件:

select tab_datack.* into outfile '/tmp/phone_sxxx_tab_datack.txt' from tab_datack;

然后压缩文件打包,并传输到clickhouse服务器上

执行导入操作

 cat phone_sxxx_tab_datack.txt | clickhouse-client -h 10.12.11.201 --query="INSERT INTO php_data.tab_datack FORMAT TabSeparated"

这种方式速度很快2000万数据导入执行10s左右

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 打造轻量级实时数仓实践

    Flink 和 ClickHouse 分别是实时计算和(近实时)OLAP 领域的翘楚,也是近些年非常火爆的开源框架,很多大厂都在将两者结合使用来构...

    大数据老哥
  • ClickHouse可视化工具DBM

    DBM是ClickHouse可视化数据工具。它基于ClickHouse原生Http请求构建,支持大量ClickHouse工作,主要支持以下功能点:

    程序猿梦工厂
  • 基于Flink+ClickHouse打造轻量级点击流实时数仓

    Flink和ClickHouse分别是实时计算和(近实时)OLAP领域的翘楚,也是近些年非常火爆的开源框架,很多大厂都在将两者结合使用来构建各种用途的实时平台,...

    大数据真好玩
  • 一个比传统数据库快 100-1000 倍的数据库

    来源 | https://juejin.im/post/6863283398727860238

    程序猿DD
  • 查询提升 200 倍,ClickHouse 你值得拥有!

    来源:https://juejin.im/post/6863283398727860238

    Java技术栈
  • Clickhouse 数据迁移

    迁移集群实际上就是要把所有数据库(system 除外)的表结构和数据完整的复制一遍。ClickHouse 官方和社区有一些现成的解决方案,也可以自己实现。

    俺也想起舞
  • 从Druid到ClickHouse | eBay广告平台数据OLAP实战

    本文介绍eBay广告数据平台的基本情况,并对比分析了ClickHouse与Druid的使用特点。基于ClickHouse表现出的良好性能和扩展能力,本文介绍了如...

    Spark学习技巧
  • 干货 | 携程ClickHouse日志分析实践

    Gavin Zhu,携程软件技术专家,负责监控系统运维开发、ES系统运维及Clickhouse技术应用推广及运维工作。

    携程技术
  • 1000倍!ClickHouse存储A股数据实践

    量化回测,苦于MySQL久矣,特别是进行股票日内因子构建分析或全市场因子测试的时候,每当按下回车时,MySQL就跟丢了魂一样,查询费时,大吞吐量读取也非常耗时。...

    量化投资与机器学习微信公众号
  • Hbase、Kudu和ClickHouse全视角对比

    Hadoop生态圈的技术繁多。HDFS一直用来保存底层数据,地位牢固。Hbase作为一款Nosql也是Hadoop生态圈的核心组件,它海量的存储能力,优秀的随机...

    王知无-import_bigdata
  • MySQL数据库数据迁移到SQLserver

    Leshami
  • 史上最全-mysql迁移到clickhouse的5种办法

    https://anjia0532.github.io/2019/07/17/mysql-to-clickhouse/

    Fayson
  • 干货 | 100亿+数据量,每天50W+查询,携程酒店数据智能平台实践

    岳毅,携程高级研发经理,负责酒店数据智能平台研发,大数据技术创新工作。喜欢探索研究大数据的开源技术框架。

    携程技术
  • 手把手教你:将ClickHouse集群迁至云上

    随着云上ClickHouse服务完善,越来越多的用户将自建ClickHouse服务迁移至云上。对于不同数据规模,我们选择不同的方案:

    腾讯云大数据
  • 手把手教你:将ClickHouse集群迁至云上

    随着云上ClickHouse服务完善,越来越多的用户将自建ClickHouse服务迁移至云上。对于不同数据规模,我们选择不同的方案:

    fastio
  • ClickHouse 在日志存储与分析方面作为 ElasticSearch 和 MySQL 的替代方案

    2018年,我写过一篇关于Clickhouse的文章,这段内容在互联网上仍然很流行,甚至被多次翻译。现在已经过去两年多,同时 Clickhouse 的开发节奏仍...

    zhisheng
  • 认识 ClickHouse-3306π 深圳站

    1. 爱可生目前是否已经对 ClickHouse 研发特有产品? 2. 如何看待 ClickHouse 的未来趋势? 3. ClickHouse 作为列式存储 ...

    爱可生开源社区
  • 超快!大数据分析引擎ClickHouse

    ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。

    凹谷
  • 交互式分析领域,为何ClickHouse能够杀出重围?

    导语 | 在百花齐放的交互式分析领域,ClickHouse 绝对是后起之秀,它虽然年轻,却有非常大的发展空间。本文将分享 PB 级分析型数据库 ClickHou...

    Spark学习技巧

扫码关注云+社区

领取腾讯云代金券