跳转至内容
  • 社区首页
  • 版块
  • 最新
  • 标签
  • 热门
折叠

GitHub中文论坛

  1. 主页
  2. 版块
  3. 技术交流
  4. Clickhouse快速数据迁移与备份的几种方式

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

已定时 已固定 已锁定 已移动 技术交流
clickhouse
1 帖子 1 发布者 2.5k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • k1995K 离线
    k1995K 离线
    k1995
    写于 最后由 k1995 编辑
    #1

    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 条回复 最后回复
    1
    回复
    • 在新帖中回复
    登录后回复
    • 从旧到新
    • 从新到旧
    • 最多赞同


    • 登录

    • 第一个帖子
      最后一个帖子
    0
    • 社区首页
    • 版块
    • 最新
    • 标签
    • 热门