阿里云clickhouse实例跨账号数据迁移
source link: https://blog.51cto.com/voice/5682165
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
阿里云clickhouse实例跨账号数据迁移
精选 原创两台不同阿里云账号里的云数据库clickhouse实例需要做数据迁移,阿里云现在不支持跨账号的clickhouse数据迁移,所以需要自己用命令行去操作。
需安装clickhouse-client工具,请安装与目标实例云数据库ClickHouse版本一致的clickhouse-client工具,下载链接请参见 https://packages.clickhouse.com/deb/pool/stable/?spm=a2c4g.11186623.0.0.1c2948a2ZRCn4K,如何安装和使用 Installation | ClickHouse Docs
连接数据库时端口建议选择3306,8123我连接失败。
开始迁移:
步骤一:查看源实例的database列表
参数解释如下:
old host | 源实例的地址。 |
old port | 源实例的端口。 |
old user name | 登录源实例的账号,拥有DML读写和设置权限,允许DDL权限。 |
old password | 上述账号对应的密码。 |
说明 system是系统数据库,不需要迁移,可以直接过滤掉。
步骤二:查看源实例的table列表
说明 查询到的表名中,如果有以.inner.开头的表,则它们是物化视图的内部表示,不需要迁移,可以直接过滤掉。
步骤三:导出源实例的建表DDL
步骤四:将建表DDL导入到目标实例云数据库ClickHouse
这一步如果失败可以登录阿里云DMS源库,选择需要导出的数据库,右键导出建表语句。
再登录到目标库的DMS,创建database,再导入建表语句执行。
步骤五:导入数据到目标实例云数据库ClickHouse
通过Linux pipe管道进行流式导出导入
clickhouse-client --host="<new host>" --port="<new port>" --user="<user name>" --password="<password>" --query="INSERT INTO <database_name>.<table_name> FORMAT CSV"
批量导入多个表的数据
在dms上查看有数据,完成。
导入数据时会遇到报错说partitions不够,这个不能在阿里云实例中修改,需要登录DMS里修改。
set global max_partitions_per_insert_block = 5000
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK