官网资料:

clickhouse和mysql一样提供了众多功能不同的引擎。

默认情况下,ClickHouse使用自身的数据库引擎,该引擎可以提供表引擎配置( table engines )和SQL(SQL dialect.)

您还可以使用以下数据库引擎:

  • MySQL

  • Lazy

MySQL引擎

允许连接到远程MySQL服务器上的数据库,并执行INSERTSELECT查询以在ClickHouse和MySQL之间交换数据。

Mysql数据库引擎翻译请求语句,并发送给MYSQL服务器,因此你可以执行像SHOW TABLES 或者 SHOW CREATE TABLE这样的操作。

但是您不能执行以下查询:

  • RENAME
  • CREATE TABLE
  • ALTER

创建数据库

CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster]
ENGINE = MySQL('host:port', ['database' | database], 'user', 'password')

引擎参数

  • host:port — MySQL服务器地址。
  • database —远程数据库名称。
  • user — MySQL用户。
  • password - 用户密码。

数据类型支持

MySQL ClickHouse
UNSIGNED TINYINT UInt8
TINYINT Int8
UNSIGNED SMALLINT UInt16
SMALLINT Int16
UNSIGNED INT, UNSIGNED MEDIUMINT UInt32
INT, MEDIUMINT Int32
UNSIGNED BIGINT UInt64
BIGINT Int64
FLOAT Float32
DOUBLE Float64
DATE Date
DATETIME, TIMESTAMP DateTime
BINARY FixedString

所有其他MySQL数据类型都转换为String。

支持Nullable。

使用例子

MySQL中的表:

mysql> USE test;
Database changedmysql> CREATE TABLE `mysql_table` (->   `int_id` INT NOT NULL AUTO_INCREMENT,->   `float` FLOAT NOT NULL,->   PRIMARY KEY (`int_id`));
Query OK, 0 rows affected (0,09 sec)mysql> insert into mysql_table (`int_id`, `float`) VALUES (1,2);
Query OK, 1 row affected (0,00 sec)mysql> select * from mysql_table;
+------+-----+
| int_id | value |
+------+-----+
|      1 |     2 |
+------+-----+
1 row in set (0,00 sec)

ClickHouse中的数据库,与MySQL服务器交换数据:

CREATE DATABASE mysql_db ENGINE = MySQL('localhost:3306', 'test', 'my_user','user_password')
SHOW DATABASES
┌─name─────┐
│ default  │
│ mysql_db │
│ system   │
└──────────┘
SHOW TABLES FROM mysql_db
┌─name─────────┐
│  mysql_table │
└──────────────┘
SELECT * FROM mysql_db.mysql_table
┌─int_id─┬─value─┐
│      1 │     2 │
└────────┴───────┘
INSERT INTO mysql_db.mysql_table VALUES (3,4)
SELECT * FROM mysql_db.mysql_table
┌─int_id─┬─value─┐
│      1 │     2 │
│      3 │     4 │
└────────┴───────┘

Lazy引擎

在最后一次访问之后,仅在expiration_time_in_seconds秒内将表保留在RAM中。只有Log引擎的表可以使用。

该引擎针对存储很多小型Log引擎表的情况进行了优化。因为对于这些表而言,两次访问之间的时间间隔很长。

创建数据库

CREATE DATABASE testlazy ENGINE = Lazy(expiration_time_in_seconds);

参考资料:https://clickhouse.tech/docs/en/engines/database-engines/

但是除了官网资料给出的三种clickhouse库引擎外,《ClickHouse原理解析与应用实践》一书中给了五种:Ordinary/Dictionary/Memory/Mysql/Lazy

Ordinary

也就是默认引擎,使用时无需在建库时刻意声明,在此数据库下的表可以使用任意的类型的表引擎。官网中也有介绍。

可见默认引擎是ordinary。

MySQL

MySQL 引擎,会自动拉取远端 MySQL 中的数据,并在该库下创建 MySQL 表引擎的数据表。官网中也有介绍。

  1. 具体就是在mysql数据库上建一张表a(id int)。往里插数据1,2,3。
  2. 回来clickhouse数据库,创建一个mysql库引擎的数据库mysqltest,指定mysql数据库的端口和用户。
  3. 发现可以使用select *  from mysqltest.a;返回结果1,2,3
  4. 而且使用clickhouse进行数据插入或者更新,返回mysql数据库那边,发现表中数据也被插入更新了。

Lazy

日志引起,在该数据库下只能创建 log 系列引擎的表。官网中也有介绍。

上次访问之后expiration_time_in_seconds秒之前,表放内存.该库引擎下只能创建 *Log表引擎

Dictionary

字典引擎,此类数据库会自动为所有数据字典创建它们的数据表(加载配置文件中配置的字段表信息和数据)

Memory

内存引擎,用户存放临时数据,数据只会在内存中,不会涉及任何磁盘操作,当服务重启后数据会清空。并且对表引擎也有限制,只能使用memory类型表引擎。

所有数据只会保存在内存中,服务重启数据消失.

由上可见,该数据库引擎只能够创建Memory引擎表.


重启服务后,数据库还在,表已经消失了.

参考资料:

https://blog.csdn.net/qq_28603127/article/details/109294061

https://www.cnblogs.com/DBArtist/p/clickhouse_Engines.html

Clickhouse库引擎介绍相关推荐

  1. 客快物流大数据项目(九十二):ClickHouse的MergeTree系列引擎介绍和MergeTree深入了解

    文章目录 ClickHouse的MergeTree系列引擎介绍和MergeTree深入了解 一.MergeTree系列引擎介绍 二.​​​​​​​MergeTree深入了解 1.创建MergeTree ...

  2. 【Clickhouse】ClickHouse 内部架构介绍

    1.概述 转载:ClickHouse 内部架构介绍 官方原文链接:https://clickhouse.yandex/docs/en/development/architecture/ ClickHo ...

  3. Clickhouse数据库引擎Mysql

    title: Clickhouse数据库引擎Mysql date: 2022-03-12 14:40:59 tags: [clickhouse, mysql engine, 表引擎] categori ...

  4. MySQL—05—MySQL如何处理SQL语句;MySQL数据库存储引擎介绍;

    一. MySQL 中的执行计划 1 MySQL 执行计划 在 MySQL 中可以通过 explain 关键字模拟优化器,执行 SQL 语句,从而知道 MySQL 是 如何处理 SQL 语句的. 2 M ...

  5. MySQL数据库引擎介绍、区别、创建和性能测试的深入分析

    深入理解MySQL的数据库引擎的类型 作者: 字体:[增加 减小] 类型:转载 本篇文章是对MySQL的数据库引擎的类型进行了详细的分析介绍,需要的朋友参考下   你能用的数据库引擎取决于mysql在 ...

  6. 【clickhouse】ClickHouse表引擎 MergeTree 索引与数据存储方式 一级索引 二级索引

    1.概述 转载:ClickHouse表引擎 MergeTree 索引与数据存储方式 2.一级索引 MergeTree 主键使用 primary key 定义,定义主键后,会将数据依据 index_gr ...

  7. clickhouse表引擎-合并树系列

    目录 1 clickhouse表引擎-合并树系列简介 2 MergeTree引擎 2.1 建表语法 2.2 创建最简单的MergerTree引擎表 2.3 插入数据 2.4 查看目录结构 2.5 指定 ...

  8. ClickHouse表引擎到底怎么选

    引言 表引擎在ClickHouse中的作用十分关键,直接决定了数据如何存储和读取.是否支持并发读写.是否支持index.支持的query种类.是否支持主备复制等. ClickHouse提供了大约28种 ...

  9. 各大有名库的介绍(转)

    各大有名库的介绍 转载自: www.csdn.net 在C++中,库的地位是非常高的.C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过 设计更多的语法的言论.现实中, ...

最新文章

  1. Eclipse使用Tomcat发布项目时出现YadisException异常解决方案
  2. 【透明版九宫格背景图片】仅依靠background的几个属性组合搭配出酷炫的透明背景卡片效果→适用于大数据可视化、数据大屏展示页面
  3. IOS App 后台运行
  4. 关于C语言中字符串操作的几个函数的总结
  5. 蒙克:云计算安全问题被夸大
  6. maven 聚合工程 用spring boot 搭建 spring cloud 微服务 模块式开发项目
  7. BugkuCTF-WEB题本地管理员
  8. Linux 把文件内容发送给用户,linux上给其他在线用户发送信息(wall, write, talk, mesg)...
  9. activity多实例任务减签
  10. [Linux] 常用Linux命令
  11. Hystrix断路器
  12. 机器学习之MCMC算法(转载)
  13. Conficker.AE病毒局域网扫描工具
  14. 《东周列国志》第六回 卫石碏大义灭亲 郑庄公假命伐宋
  15. Linux常用命令-2
  16. 桃李春风一杯酒,江湖夜雨十年灯。—第十一天
  17. 转载黑苹果10.13N卡驱动方法
  18. 网关和路由器的区别?
  19. JAVA单车管理系统计算机毕业设计Mybatis+系统+数据库+调试部署
  20. 《黑白团团队》第八次团队作业:Alpha冲刺 第二天

热门文章

  1. CF221C Circling Round Treasures
  2. 044_面向对象_17_封装
  3. Axure学习笔记(三)——交互事件设置
  4. WIN32下实现输入法所需要的一些必要消息、函数和说明
  5. 《通用版CISCO交换机配置命令及释义》——【全面、通用,含部分功能的注释】
  6. 详解DDD“洋葱架构”
  7. java基础之 IO流
  8. 标称型和数值型(连续型)的区别
  9. m利用SIMILINK仿真模块实现多径信道的动态仿真模拟
  10. 《提问的智慧》读后感