美文网首页
clickhouse导入MySQL的数据

clickhouse导入MySQL的数据

作者: frankie_cheung | 来源:发表于2021-12-06 21:20 被阅读0次

    1.使用MySQL表引擎

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

    这个非常垃圾,强烈不推荐使用。

    2.物化mysql数据库引擎

    CREATE DATABASE test ENGINE = MaterializeMySQL('ip:port', 'database', 'user', 'password');
    

    这个是数据库引擎,意味着把整个库需要导入到clickhouse,且需要主键。原理是clickhouse模拟成一个从库。第一次读取全量数据,后续的读取binlog的数据,获取增量数据。
    这个也不是特别推荐,因为需要整个库迁移,且都需要主键。

    3.表函数select * from mysql()

    INSERT INTO table SELECT * FROM mysql('ip:port', 'database', 'table', 'user', 'password') where xxx=xxx
    

    这个导入速度也很快,且不需要上面其他约束。

    4.导入速度对比

    0 rows in set. Elapsed: 174.137 sec. Processed 28.20 million rows, 9.27 GB (161.96 thousand rows/s., 53.22 MB/s.)
    
    hostname :) select count(*) from test;
    
    SELECT count(*)
    FROM test
    
    Query id: 73e02a52-b8b1-4bee-bf44-fb39576bd731
    
    ┌──count()─┐
    │ 28203529 │
    └──────────┘
    
    1 rows in set. Elapsed: 0.002 sec. 
    
    hostname :) 
    

    非常快的

    相关文章

      网友评论

          本文标题:clickhouse导入MySQL的数据

          本文链接:https://www.haomeiwen.com/subject/iopnxrtx.html