Clickhouse库引擎介绍
官网资料:
clickhouse和mysql一样提供了众多功能不同的引擎。
默认情况下,ClickHouse使用自身的数据库引擎,该引擎可以提供表引擎配置( table engines )和SQL(SQL dialect.)
您还可以使用以下数据库引擎:
MySQL
Lazy
MySQL引擎
允许连接到远程MySQL服务器上的数据库,并执行INSERT
和SELECT
查询以在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 表引擎的数据表。官网中也有介绍。
- 具体就是在mysql数据库上建一张表a(id int)。往里插数据1,2,3。
- 回来clickhouse数据库,创建一个mysql库引擎的数据库mysqltest,指定mysql数据库的端口和用户。
- 发现可以使用select * from mysqltest.a;返回结果1,2,3
- 而且使用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库引擎介绍相关推荐
- 客快物流大数据项目(九十二):ClickHouse的MergeTree系列引擎介绍和MergeTree深入了解
文章目录 ClickHouse的MergeTree系列引擎介绍和MergeTree深入了解 一.MergeTree系列引擎介绍 二.MergeTree深入了解 1.创建MergeTree ...
- 【Clickhouse】ClickHouse 内部架构介绍
1.概述 转载:ClickHouse 内部架构介绍 官方原文链接:https://clickhouse.yandex/docs/en/development/architecture/ ClickHo ...
- Clickhouse数据库引擎Mysql
title: Clickhouse数据库引擎Mysql date: 2022-03-12 14:40:59 tags: [clickhouse, mysql engine, 表引擎] categori ...
- MySQL—05—MySQL如何处理SQL语句;MySQL数据库存储引擎介绍;
一. MySQL 中的执行计划 1 MySQL 执行计划 在 MySQL 中可以通过 explain 关键字模拟优化器,执行 SQL 语句,从而知道 MySQL 是 如何处理 SQL 语句的. 2 M ...
- MySQL数据库引擎介绍、区别、创建和性能测试的深入分析
深入理解MySQL的数据库引擎的类型 作者: 字体:[增加 减小] 类型:转载 本篇文章是对MySQL的数据库引擎的类型进行了详细的分析介绍,需要的朋友参考下 你能用的数据库引擎取决于mysql在 ...
- 【clickhouse】ClickHouse表引擎 MergeTree 索引与数据存储方式 一级索引 二级索引
1.概述 转载:ClickHouse表引擎 MergeTree 索引与数据存储方式 2.一级索引 MergeTree 主键使用 primary key 定义,定义主键后,会将数据依据 index_gr ...
- clickhouse表引擎-合并树系列
目录 1 clickhouse表引擎-合并树系列简介 2 MergeTree引擎 2.1 建表语法 2.2 创建最简单的MergerTree引擎表 2.3 插入数据 2.4 查看目录结构 2.5 指定 ...
- ClickHouse表引擎到底怎么选
引言 表引擎在ClickHouse中的作用十分关键,直接决定了数据如何存储和读取.是否支持并发读写.是否支持index.支持的query种类.是否支持主备复制等. ClickHouse提供了大约28种 ...
- 各大有名库的介绍(转)
各大有名库的介绍 转载自: www.csdn.net 在C++中,库的地位是非常高的.C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过 设计更多的语法的言论.现实中, ...
最新文章
- Eclipse使用Tomcat发布项目时出现YadisException异常解决方案
- 【透明版九宫格背景图片】仅依靠background的几个属性组合搭配出酷炫的透明背景卡片效果→适用于大数据可视化、数据大屏展示页面
- IOS App 后台运行
- 关于C语言中字符串操作的几个函数的总结
- 蒙克:云计算安全问题被夸大
- maven 聚合工程 用spring boot 搭建 spring cloud 微服务 模块式开发项目
- BugkuCTF-WEB题本地管理员
- Linux 把文件内容发送给用户,linux上给其他在线用户发送信息(wall, write, talk, mesg)...
- activity多实例任务减签
- [Linux] 常用Linux命令
- Hystrix断路器
- 机器学习之MCMC算法(转载)
- Conficker.AE病毒局域网扫描工具
- 《东周列国志》第六回 卫石碏大义灭亲 郑庄公假命伐宋
- Linux常用命令-2
- 桃李春风一杯酒,江湖夜雨十年灯。—第十一天
- 转载黑苹果10.13N卡驱动方法
- 网关和路由器的区别?
- JAVA单车管理系统计算机毕业设计Mybatis+系统+数据库+调试部署
- 《黑白团团队》第八次团队作业:Alpha冲刺 第二天