Navigation

    GitHub中文社区
    • GitHub排行榜

    论坛

    • Login
    • Categories
    • Recent
    • Tags
    • Popular

    Clickhouse快速数据迁移与备份的几种方式

    技术交流
    clickhouse
    1
    1
    1373
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • k1995
      k1995 last edited by k1995

      Clickhouse数据迁移,将一个表的数据,拷贝到另一个表或远程服务器上,有四种常用的方式:

      • 方法一:先将数据导出为TSV或CSV文件,再利用clickhouse-client --query命令导入
      • 方法二:利用insert into ... select语句,加上remote可以选择从远程数据库导入
      insert into ... select * from remote('ip',db.table,'user','password')
      
      • 方法三:clickhouse-copier工具
        这个工具网上推荐比较多,是官方的数据迁移工具,主要用在多个集群之间的数据迁移
      • 方法四:直接拷贝原始数据文件,再ATTACH即可

      笔者喜欢使用第四种方式,简单粗暴,直接从磁盘拷贝,速度很快。下面演示具体步骤。


      数据文件拷贝方式

      假设使用默认数据库default,我们要拷贝的表名为test。

      步骤一

      进入clickhouse数据目录,拷贝对应的数据文件

      > cd /var/lib/clickhouse/data/default
      > ls 
      test
      

      复制test文件夹(test即表名)到目标机器相同路径下。

      步骤二

      进入metadata目录

      > cd /var/lib/clickhouse/metadata/default
      > ls 
      test.sql
      

      这里有个test.sql,这个其实就是我们建表语句,只不过把CREATE替换了ATTACH而已。
      复制里面SQL语句,并在目标机器执行,然后show tables,可以发现数据已成功导入。

      1 Reply Last reply Reply Quote 1
      • First post
        Last post