当前位置: 首页 > news >正文

ClickHouse--04--数据库引擎、Log 系列表引擎、 Special 系列表引擎

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 1.数据库引擎
    • 1.1 Ordinary 默认数据库引擎
    • 1.2 MySQL 数据库引擎
      • MySQL 引擎语法
      • 字段类型的映射
  • 2.ClickHouse 表引擎
  • 3.Log 系列表引擎
      • 几种 Log 表引擎的共性是:
      • 它们彼此之间的区别是:
    • 3.1 TinyLog
    • 3.2 StripeLog
    • 3.3 Log
  • 4.Special 系列表引擎
    • 4.1 Memory
    • 4.2 Merge
    • 4.3 Distributed


1.数据库引擎

在这里插入图片描述

  • ClickHouse 中支持在创建数据库时指定引擎,目前比较常用的两种引擎为默认引擎
    和 MySQL 数据库引擎。

1.1 Ordinary 默认数据库引擎

Ordinary 就是 ClickHouse 中默认引擎,如果不指定数据库引擎创建的就是Ordinary 数据库引擎,在这种数据库下面可以使用任意表引擎。创建时需要注意,Ordinary 首字母需要大写,不然会抛出异常。
在这里插入图片描述
在这里插入图片描述

1.2 MySQL 数据库引擎

MySQL 引擎用于将远程的 MySQL 服务器中的表映射到 ClickHouse 中,并允许对表进行INSERT 插入和 SELECT 查询,方便在 ClickHouse 与 MySQL 之间进行数据交换。

  • 这里不会将 MySQL 的数据同步到 ClickHouse 中,ClickHouse 就像一个壳子,可以将 MySQL 的表映射成ClickHouse 表,使用 ClickHouse 查询 MySQL 中的数据,在 MySQL 中进行的 CRUD 操作,可以同时映射到 ClickHouse 中。
  • MySQL 数据库引擎会将对其的查询转换为 MySQL 语法并发送到 MySQL 服务器中,因此可以执行诸如 SHOW TABLES 或 SHOW CREATE TABLE 之类的操作,但是不允许创建表、修改表、删除数据、重命名操作

MySQL 引擎语法

ClickHouse 中创建库使用 MySQL 引擎语法如下:
在这里插入图片描述
在这里插入图片描述

字段类型的映射

  • 在 ClickHouse 中使用 MySQL 引擎建库,将 MySQL 库中数据映射到 ClickHouse中,mysql 库中表字段类型与 ClickHouse 表字段类型的映射如下,这里每种类型在ClickHouse 中都支持 Nullable,即可空。
    在这里插入图片描述

在这里插入图片描述

2.ClickHouse 表引擎

MySQL 的数据表有 InnoDB 和 MyISAM 存储引擎,不同的存储引擎提供不同的存储机制、索引方式等功能,也可以称之为表类型。在 ClickHouse 中也有表引擎。

表引擎在 ClickHouse 中的作用十分关键,直接决定了

  • 数据如何存储和读取
  • 是否支持并发读写
  • 是否支持 index 索引
  • 支持的 query 种类
  • 是否支持主备复制

ClickHouse 提供了大约 28 种表引擎,各有各的用途 纷繁复杂。ClickHouse 表引擎一共分为四个系列,分别是 Log 系列、MergeTree 系列、Integration 系列、Special 系列。其中包含了两种特殊的表引擎 Replicated、Distributed,功能上与其他表引擎正交,根据场景组合使用

  • Log 系列用来做小表数据分析
  • MergeTree 系列用来做大数据量分析
  • Integration 系列则多用于外表数据集成。
  • 再考虑复制表 Replicated 系列
  • 分布式表 Distributed 等,

3.Log 系列表引擎

Log 系列表引擎功能相对简单,主要用于快速写入小表(1 百万行左右的表),然后全部读出的场景,即一次写入,多次查询

Log 系列表引擎包含:

  • TinyLog、
  • StripeLog、
  • Log

几种 Log 表引擎的共性是:

  • 数据被顺序 append 写到本地磁盘上。

  • 不支持 delete、update 修改数据。

  • 不支持 index(索引)。

  • 不支持原子性写。如果某些操作(异常的服务器关闭)中断了写操作,则可能会获
    得带有损坏数据的表。

  • insert 会阻塞 select 操作。当向表中写入数据时,针对这张表的查询会被阻塞,
    直至写入动作结束。

它们彼此之间的区别是:

  • TinyLog:不支持并发读取数据文件,查询性能较差;格式简单,适合用来暂存
    中间数据。
  • StripLog:支持并发读取数据文件,查询性能比 TinyLog 好;将所有列存储在
    同一个大文件中,减少了文件个数。
  • Log:支持并发读取数据文件,查询性能比 TinyLog 好;每个列会单独存储在一
    个独立文件中。

在这里插入图片描述

3.1 TinyLog

TinyLog 是 Log 系列引擎中功能简单、性能较低的引擎。

  • 它的存储结构由数据文件和元数据两部分组成。其中,数据文件是按列独立存储的,也就是说每一个列字段都对应一个文件。
  • 由于 TinyLog 数据存储不分块,所以不支持并发数据读取,该引擎适合一次写入,多次读取的场景,对于处理小批量中间表的数据可以使用该引擎,这种引擎会有大量小文件,性能会低。

示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 StripeLog

相比 TinyLog 而言,StripeLog 数据存储会划分块,每次插入对应一个数据块,拥有更高的查询性能(拥有.mrk 标记文件,支持并行查询)

  • StripeLog 引擎将所有列存储在一个文件中,使用了更少的文件描述符。对每一次 Insert 请求,ClickHouse 将
    数据块追加在表文件的末尾,逐列写入。
  • StripeLog 引擎不支持 ALTER UPDATE 和 ALTER DELETE 操作。

示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3 Log

Log 引擎表适用于临时数据,一次性写入、测试场景。Log 引擎结合了 TinyLog 表引擎和 StripeLog 表引擎的长处,是 Log 系列引擎中性能最高的表引擎。

  • Log 表引擎会将每一列都存在一个文件中,对于每一次的 INSERT 操作,会生成数据块
  • 经测试,数据块个数与当前节点的 core 数一致。

示例:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.Special 系列表引擎

在这里插入图片描述

4.1 Memory

Memory 表引擎直接将数据保存在内存中,ClickHouse 中的 Memory 表引擎具有以下特点:

  • Memory 引擎以未压缩的形式将数据存储在 RAM 中,数据完全以读取时获得的形式存储。
  • 并发数据访问是同步的,锁范围小,读写操作不会相互阻塞。
  • 不支持索引。
  • 查询是并行化的,在简单查询上达到最大速率(超过 10 GB /秒),在相对较少的行(最多约 100,000,000)上有高性能的查询。
  • 没有磁盘读取,不需要解压缩或反序列化数据,速度更快(在许多情况下,与MergeTree 引擎的性能几乎一样高)。
  • 重新启动服务器时,表存在,但是表中数据全部清空
  • Memory 引擎多用于测试。

示例:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:”Memory”表引擎写法固定,不能小写。同时创建好表 t_memory 后,在对应的磁盘目录/var/lib/clickhouse/data/newdb 下没有“t_memory”目录,基于内存存储,当重启 ClickHouse 服务后,表 t_memory 存在,但是表中数据全部清空。

4.2 Merge

Merge 引擎 (不要跟 MergeTree 引擎混淆) 本身不存储数据,但可用于同时从任意多个其他的表中读取数据,这里需要多个表的结构相同,并且创建的 Merge 引擎表的结构也需要和这些表结构相同才能读取。

  • 读是自动并行的,不支持写入
  • 读取时,那些被真正读取到数据的表如果设置了索引,索引也会被使用。
    在这里插入图片描述
    示例:
    在这里插入图片描述
    在这里插入图片描述

4.3 Distributed

Distributed 是== ClickHouse 中 分 布 式 引 擎== , 之 前 所 有 的 操 作 虽 然 说 是 在ClickHouse 集群中进行的,但是实际上是在 node1 节点中单独操作的,与 node2、node3无关,使用分布式引擎声明的表才可以在其他节点访问与操作。

Distributed 引擎和 Merge 引擎类似,本身不存放数据,功能是在不同的 server上把多张相同结构的物理表合并为一张逻辑表。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面的语句中使用了 ON CLUSTER 分布式 DDL(数据库定义语言),这意味着在集群的每个分片节点上,都会创建一张 Distributed 表,这样便可以从其中任意一端发起对所有分片的读、写请求。

相关文章:

ClickHouse--04--数据库引擎、Log 系列表引擎、 Special 系列表引擎

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.数据库引擎1.1 Ordinary 默认数据库引擎1.2 MySQL 数据库引擎MySQL 引擎语法字段类型的映射 2.ClickHouse 表引擎3.Log 系列表引擎几种 Log 表引擎的共性是&#…...

docker的底层原理

概述:Docker的底层原理基于容器化技术,通过使用命名空间和控制组等技术实现资源的隔离与管理。 底层原理: 客户端-服务器架构:Docker采用的是Client-Server架构,其中Docker守护进程(daemon)运…...

有关光猫、路由器、交换机、网关的理解

前提 在了解计算机网络的过程中,出现了这四个名词:光猫、路由器、交换机、网络。有点模糊,查阅互联网相关资料,进行整理。如有错误,欢迎大家批评指正。 光猫 首先光猫是物理存在的,大家在家里应该都可以…...

图像旋转翻转变换

题目描述 给定m行n列的图像各像素点灰度值,对其依次进行一系列操作后,求最终图像。 其中,可能的操作及对应字符有如下四种: A:顺时针旋转90度; B:逆时针旋转90度; C&#xff1a…...

网站常见的反爬手段及反反爬思路

摘要:介绍常见的反爬手段和反反爬思路,内容详细具体,明晰解释每一步,非常适合小白和初学者学习!!! 目录 一、明确几个概念 二、常见的反爬手段及反反爬思路 1、检测user-agent 2、ip 访问频率的限制 …...

GUI—— 从的可执行exe文件中提取jar包并反编译成Java

从exe4j生成的可执行文件中提取嵌入的jar包并反编译成Java代码,可以按照以下步骤操作: 步骤1:提取jar包 1.运行exe程序:首先启动exe4j生成的.exe可执行文件。当它运行时,通常会将内部包含的jar文件解压到临时目录下。…...

阿里云服务器镜像是什么?如何选择镜像?

阿里云服务器镜像怎么选择?云服务器操作系统镜像分为Linux和Windows两大类,Linux可以选择Alibaba Cloud Linux,Windows可以选择Windows Server 2022数据中心版64位中文版,阿里云服务器网aliyunfuwuqi.com来详细说下阿里云服务器操…...

C语言------一种思路解决实际问题

1.比赛名次问题 ABCDE参加比赛&#xff0c;那么每个人的名次都有5种可能&#xff0c;即1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff1b; int main() {int a 0;int b 0;int c 0;int d 0;int e 0;for (a 1; a < 5; a){for (b 1; b < 5; b){for…...

前端判断对象为空

一.使用JSON.stringify()方法&#xff1a; JSON.stringify() 是将一个JavaScript对象或值转换为JSON格式字符串&#xff0c;如果最终只得到一个{}&#xff0c;就说明他是一个空对象 let obj1 {}; console.log(JSON.stringify(obj1) "{}"); //true 表示为空对象l…...

DS:栈和队列的相互实现

创作不易&#xff0c;感谢友友们三连&#xff01;&#xff01; 一、前言 栈和队列的相互实现是用两个栈去实现队列或者是用两个队列去实现栈&#xff0c;这样其实是把问题复杂化的&#xff0c;实际中没有什么应用价值&#xff0c;但是通过他们的相互实现可以让我们更加深入地理…...

Hack The Box-Office

端口扫描&信息收集 使用nmap对靶机进行扫描 nmap -sC -sV 10.10.11.3开放了80端口&#xff0c;并且注意到该ip对应的域名为office.htb&#xff0c;将其加入到hosts文件中访问之 注意到扫描出来的还有robots文件&#xff0c;经过尝试后只有administrator界面是可以访问的 …...

android aidl进程间通信封装通用实现

接上一篇的分析,今天继续 aidl复杂流程封装-CSDN博客 今天的任务就是将代码梳理下放进来 1 项目gradle配置: 需要将对应的代码放到各自的目录下,这里仅贴下关键内容,细节可以下载代码慢慢看 sourceSets { main { manifest.srcFile src/main/And…...

FL Studio 21.2.3.4004 All Plugins Edition Win/Mac音乐软件

FL Studio 21.2.3.4004 All Plugins Edition 是一款功能强大的音乐制作软件&#xff0c;提供了丰富的音频处理工具和插件&#xff0c;适用于专业音乐制作人和爱好者。该软件具有直观的用户界面&#xff0c;支持多轨道录音、混音和编辑&#xff0c;以及各种音频效果和虚拟乐器。…...

vivado RAM HDL Coding Guidelines

从编码示例下载编码示例文件。 块RAM读/写同步模式 您可以配置块RAM资源&#xff0c;为提供以下同步模式给定的读/写端口&#xff1a; •先读取&#xff1a;在加载新内容之前先读取旧内容。 •先写&#xff1a;新内容立即可供阅读先写也是众所周知的如通读。 •无变化&…...

springboot/ssm甘肃旅游服务平台Java在线旅游规划管理系统

springboot/ssm甘肃旅游服务平台Java在线旅游规划管理系统 开发语言&#xff1a;Java 框架&#xff1a;springboot&#xff08;可改ssm&#xff09; vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&am…...

第三百五十四回

文章目录 1. 概念介绍2. 使用方法2.1 获取所有时区2.2 转换时区时间 3. 示例代码4. 内容总结 我们在上一章回中介绍了"分享一些好的Flutter站点"相关的内容&#xff0c;本章回中将介绍timezone包.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在…...

【Funny Game】 吃豆人

目录 【Funny Game】 吃豆人 吃豆人 文章所属专区 Funny Game 吃豆人 吃豆人&#xff0c;这款经典游戏如今依旧魅力四射。玩家需操控小精灵&#xff0c;在迷宫内吞噬所有豆子&#xff0c;同时避开狡猾的鬼怪。当吃完所有豆子后&#xff0c;便可消灭鬼怪&#xff0c;赢得胜利。…...

PyCharm - Run Debug 程序安全执行步骤

PyCharm - Run & Debug 程序安全执行步骤 1. Run2. DebugReferences 1. Run right click -> Run ‘simulation_data_gene…’ or Ctrl Shift F10 2. Debug right click -> Debug ‘simulation_data_gene…’ 在一个 PyCharm 工程下&#xff0c;存在多个 Pytho…...

作为一个程序员,最少要看过这几部电影吧?

计算机专业必看的几部电影 计算机专业必看的几部电影&#xff0c;就像一场精彩的编程盛宴&#xff01;《黑客帝国》让你穿越虚拟世界&#xff0c;感受高科技的魅力&#xff1b;《社交网络》揭示了互联网巨头的创业之路&#xff0c;《源代码》带你穿越时间解救世界&#xff0c;…...

备战蓝桥杯 Day4

目录 注意&#xff1a;递推开long long 1140&#xff1a;验证子串 1131&#xff1a;基因相关性 1176&#xff1a;谁考了第k名 1177&#xff1a;奇数单增序列 1180&#xff1a;分数线划定 1184&#xff1a;明明的随机数 1185&#xff1a;单词排序 1186&#xff1a;出现…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...