计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

ClickHouse

更新时间:2024-03-12 GMT+08:00

ClickHouse简介

ClickHouse是一款开源的面向联机分析处理的列式数据库,其独立于Hadoop大数据体系,最核心的特点是压缩率和极速查询性能。同时,ClickHouse支持SQL查询,且查询性能好,特别是基于大宽表的聚合分析查询性能非常优异,比其他分析型数据库速度快一个数量级。

ClickHouse核心的功能特性介绍如下:

完备的DBMS功能

ClickHouse拥有完备的数据库管理功能,具备一个DBMS(Database Management System,数据库管理系统)基本的功能,如下所示。
  • DDL (数据定义语言):可以动态地创建、修改或删除数据库、表和视图,而无须重启服务。
  • DML(数据操作语言):可以动态查询、插入、修改或删除数据。
  • 权限控制:可以按照用户粒度设置数据库或者表的操作权限,保障数据的安全性。
  • 数据备份与恢复:提供了数据备份导出与导入恢复机制,满足生产环境的要求。
  • 分布式管理:提供集群模式,能够自动管理多个数据库节点。

列式存储与数据压缩

ClickHouse是一款使用列式存储的数据库,数据按列进行组织,属于同一列的数据会被保存在一起,列与列之间也会由不同的文件分别保存。

在执行数据查询时,列式存储可以减少数据扫描范围和数据传输时的大小,提高了数据查询的效率。

例如在传统的行式数据库系统中,数据按如下表1顺序存储:

表1 行式数据库

row

ID

Flag

Name

Event

Time

0

12345678901

0

name1

1

2020/1/11 15:19

1

32345678901

1

name2

1

2020/5/12 18:10

2

42345678901

1

name3

1

2020/6/13 17:38

N

行式数据库中处于同一行中的数据总是被物理的存储在一起,而在列式数据库系统中,数据按如下表2顺序存储:

表2 列式数据库

row:

0

1

2

N

ID:

12345678901

32345678901

42345678901

Flag:

0

1

1

Name:

name1

name2

name3

Event:

1

1

1

Time:

2020/1/11 15:19

2020/5/12 18:10

2020/6/13 17:38

该示例中只展示了数据在列式数据库中数据的排列方式。对于存储而言,列式数据库总是将同一列的数据存储在一起,不同列的数据也总是分开存储,列式数据库更适合于OLAP(Online Analytical Processing)场景。

向量化执行引擎

ClickHouse利用CPU的SIMD指令实现了向量化执行。SIMD的全称是Single Instruction Multiple Data,即用单条指令操作多条数据,通过数据并行以提高性能的一种实现方式 ( 其他的还有指令级并行和线程级并行 ),它的原理是在CPU寄存器层面实现数据的并行操作。

关系模型与SQL查询

ClickHouse完全使用SQL作为查询语言,提供了标准协议的SQL查询接口,使得现有的第三方分析可视化系统可以轻松与它集成对接。

同时ClickHouse使用了关系模型,所以将构建在传统关系型数据库或数据仓库之上的系统迁移到ClickHouse的成本会变得更低。

数据分片与分布式查询

ClickHouse集群由1到多个分片组成,而每个分片则对应了ClickHouse的1个服务节点。分片的数量上限取决于节点数量(1个分片只能对应1个服务节点)。

ClickHouse提供了本地表 (Local Table)与分布式表 (Distributed Table)的概念。一张本地表等同于一份数据的分片。而分布式表本身不存储任何数据,它是本地表的访问代理,其作用类似分库中间件。借助分布式表,能够代理访问多个数据分片,从而实现分布式查询。

ClickHouse应用场景

ClickHouse是Click Stream + Data WareHouse的缩写,起初应用于一款Web流量分析工具,基于页面的单击事件流,面向数据仓库进行OLAP分析。当前ClickHouse被广泛的应用于互联网广告、App和Web流量、电信、金融、物联网等众多领域,非常适用于商业智能化应用场景,在国内外有大量的应用和实践,具体请参考:https://clickhouse.tech/docs/en/introduction/adopters/

ClickHouse开源增强特性

MRS ClickHouse具备“手动挡”集群模式升级、平滑弹性扩容、高可用HA部署架构等优势能力,具体详情如下:

  • 手动挡集群模式升级

    图1所示,多个ClickHouse节点组成的集群,没有中心节点,更多的是一个静态资源池的概念,业务要使用ClickHouse集群模式,需要预先在各个节点的配置文件中定义cluster信息,等所有参与的节点达成共识,业务才可以正确的交互访问,也就是说配置文件中的cluster是通常理解的“集群”概念。

    图1 ClickHouse集群
    常见的数据库系统,隐藏了表级以下的数据分区、副本存储等细节,用户是无感知的,而ClickHouse则要求用户主动来规划和定义数据分片(shard)、分区(partition)、副本(replica)位置等详细配置。它的这种类似“手动挡”的属性,给用户带来极不友好的体验,所以MRS服务的ClickHouse实例对这些工作做了统一的打包处理,适配成了“自动挡”,实现了统一管理,灵活易用。具体部署形态上,一个ClickHouse实例将包含3个Zookeeper节点和多个ClickHouse节点,采用Dedicated Replica模式,数据双副本高可靠。
    图2 ClickHouse的cluster结构
  • 平滑的弹性扩容能力

    随着业务的快速增长,面对集群存储容量或者CPU计算资源接近极限等场景,MRS服务提供了平滑的弹性扩容能力,能快速满足客户业务增长诉求。在用户对集群进行扩容ClickHouse节点时,MRS提供了一键式数据Balance均衡工具,并把数据均衡的主动权交给用户,由用户根据业务的特点,自由决定数据均衡的方式和时间点,以便保障业务可用性,实现了更加平滑的扩容能力。

  • 高可用HA部署架构

    MRS服务提供了基于ELB的HA部署架构,可以将用户访问流量自动分发到多台后端节点,扩展系统对外的服务能力,实现更高水平的应用容错。如图3所示,客户端应用请求集群时,使用ELB(Elastic Load Balance)来进行流量分发,通过ELB的轮询机制,写不同节点上的本地表(Local Table),读不同节点上的分布式表(Distributed Table),这样,无论集群写入的负载、读的负载以及应用接入的高可用性都具备了有力的保障。

    ClickHouse集群发放成功后,每个ClickHouse实例节点对应一个副本replica,两个副本组成一个shard逻辑分片。如创建ReplicatedMergeTree引擎表时,可以指定分片,相同分片内的两个副本数据就可以自动进行同步。

    图3 高可用HA部署架构图

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容