zoukankan      html  css  js  c++  java
  • MySQL数据导入到ClickHouse

    创建表

    create database test;
    use test;

     导入数据

    CREATE TABLE dg_sku_inventory_day ENGINE = MergeTree ORDER BY id AS SELECT * FROM mysql('192.168.1.20:3306', 'dgdata', 'dg_sku_inventory_day', 'root', '123456');
    前提条件:
    MySQL的主键必须为not null
    192.168.1.20:3306 为MySQL的IP地址和端口号
    dgdata 为MySQL的库,作为数据源的
    dg_sku_inventory_day 为MySQL的表,源表
    root 为MySQL的账号
    123456 为MySQL的账号对应的密码 账号需要具备远程连接访问的权限。

    解释:导入数据598万行,耗时82.305,总大小1.31GB 最后一次每秒7.264万行导入,每秒导入15.89MB的数据。
    
    注意:
    1.order by 必须存在,字段大小要和MySQL的大小写一样
    2.主键列在MySQL中必须定义为NOT NULL(报错:DB::Exception: Sorting key cannot contain nullable columns.) 
    3.导入速度和mysql的列有关,若列较少导入的更快,和硬件的读取写入速度,网络带宽也有影响。 
    4.支持从TiDB和MySQL直接读取数据。

    查看表结构

    clickhouse 左图                                                                          mysql 右图

     这时候,发现mysql中字段inventory_money 原本是decimal类型的,在clickhouse变成了String类型。

    ClickHouse 与 Mysql 字段映射关系比表

    ClickHouse MySQL Comment
    UInt8, UInt16, UInt32, UInt64 TINYINT UNSIGNED, SMALLINT UNSIGNED, INT UNSIGNED, BIGINT UNSIGNED  
    Int8, Int16, Int32, Int64 TINYINT SIGNED, SMALLINT SIGNED, INT SIGNED, BIGINT SIGNED  
    Float32, Float64 FLOAT, DOUBLE Supports inf, -inf, nan, recommended NOT to use by ClickHouse!
    String BLOB, TEXT, VARCHAR, VARBINARY No encoding. Recommended to use UTF-8. In fact behaves like a BLOB.
    FixedString(n) CHAR, BINARY padded. Less functions available than String, in fact it behaves like BINARY.
    Date DATE UNIX epoch date up to 2038.
    DateTime DATETIME, TIMESTAMP UNIX epoch timestamp up to 2038.
    Enum ENUM Similar to MySQL ENUM. Behaves like Int8/16.
    Array(type) n.a. Array of type. Closest equivalent in MySQL is JSON? Not well supported.
    Tuple() n.a.  
    Nested() n.a. Closest equivalent in MySQL is JSON?
    AggregateFunction() n.a.  
    Set n.a.  
    Expression n.a.

    您的资助是我最大的动力!
    金额随意,欢迎来赏!

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
    如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我

    如果,想给予我更多的鼓励,求打

    因为,我的写作热情也离不开您的肯定支持,感谢您的阅读!

  • 相关阅读:
    Oracle数据库——半期测验
    Oracle数据库——SQL高级查询
    mysql中整数类型后面的数字,是不是指定这个字段的长度?比如int(11),11代表11个字节吗?
    ehcache memcache redis 三大缓存男高音
    Java Redis Pipeline 使用示例
    游族网络:我们是怎么玩转千台以上游戏云服务器的
    java 在Excel中插入图片 POI实现
    解放运维的双手,谈自动化运维管理平台设计
    运维堡垒机
    查询相应的key
  • 原文地址:https://www.cnblogs.com/GreenForestQuan/p/14539655.html
Copyright © 2011-2022 走看看