Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Clickhouse部署和基本使用1

Clickhouse部署和基本使用1

原创
作者头像
TDSQL-A助手
修改于 2022-02-18 08:52:24
修改于 2022-02-18 08:52:24
1.7K00
代码可运行
举报
文章被收录于专栏:clickhouse-Aclickhouse-A
运行总次数:0
代码可运行

1. 部署结构

在Clickhouse中, 一般的有2种部署方式,3种使用方式:

clickhouse部署结构.png
clickhouse部署结构.png

部署方式:

  • 部署方式1: 部署一个单节点的Clickhouse集群, 比如小白使用的集群。
  • 部署方式2: 部署一个多节点的集群, 比如Tom和Jim使用的集群

使用方式:

  • 使用方式1:单节点集群,单节点执行SQL直接操作。比如上图中的小白(sql中无on cluster语句)
  • 使用方式2::多节点集群,和使用方式1一样,比如上图中的Tom(sql中无on cluster语句) 这种方式,用户如果连接到不同的节点看到的数据可能是不一样的。
  • 使用方式3: 多节点集群,用户集群化操作,比如上图中的Sam和Jim 集群化操作时, SQL语句中需要添加 on cluster XXXX, XXX表示集群名。

下面简单介绍集群化操作和单节点操作的基本SQL。

2. 集群化操作Demo SQL

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create database db_test on cluster default_cluster
  • 2.2.删除一个数据库
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
drop database db_test on cluster default_cluster
  • 2.3.创建一个表
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE TABLE db_test.tbl_replac_merge_test on cluster default_cluster
(
 id String, 
 code String, 
 create_time DateTime
)
ENGINE = ReplacingMergeTree()
PARTITION BY toYYYYMM(create_time)
PRIMARY KEY id
ORDER BY (id, code);
  • 2.4.删除一个表
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
drop table db_test.tbl_replac_merge_test on cluster default_cluster

3. 单节点操作Demo SQL

  • 3.1.创建一个数据库
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create database db_test;
  • 3.2.删除一个数据库
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
drop database db_test;
  • 3.3.创建一个表
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE TABLE db_test.tbl_replac_merge_test
(
`id` String, 
`code` String, 
`create_time` DateTime
)
ENGINE = ReplacingMergeTree()
PARTITION BY toYYYYMM(create_time)
PRIMARY KEY id
ORDER BY (id, code);

  • 3.4.删除一个数据库表
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
drop table db_tetbl_replac_merge_test

4. 如何创建分布式表和本地表

  • 4.1 创建数据库
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE DATABASE db_100 on cluster default_cluster;
  • 4.2 创建本地表
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE TABLE db_100.tb_1_local on cluster default_cluster
(
    `c1` Int64,
    `c2` String,
    `_sign` Int8,
    `_version` UInt64
)
ENGINE = ReplicatedReplacingMergeTree('/clickhouse/tables/5a165fe5-ab38-4bf2-a6ee-5124a65ed1aa/{shard}', '{replica}', _version)
ORDER BY (c1, c2)
SETTINGS index_granularity = 8192
  • 4.3 创建分布式表
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE TABLE db_100.tb_1 on cluster default_cluster
(
    `c1` Int64,
    `c2` String,
    `_sign` Int8,
    `_version` UInt64
)
ENGINE = Distributed('default_cluster', 'db_1', 'tb_1_local', cityHash64(toString((c1, c2))))


更多Clickhouse建表文档:

https://clickhouse.tech/docs/en/sql-reference/statements/create/table/

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Clickhouse部署和基本使用1
https://clickhouse.tech/docs/en/sql-reference/statements/create/table/
小伟
2022/07/24
4420
Clickhouse部署和基本使用1
ClickHouse的SQL简单操作(四)
基本上来说传统关系型数据库(以 MySQL 为例)的 SQL 语句,ClickHouse 基本都支持, 这里不会从头讲解 SQL 语法只介绍 ClickHouse 与标准 SQL(MySQL)不一致的地方。
Java技术债务
2022/08/09
8010
ClickHouse SQL基本语法和导入导出实战
数据库起到了命名空间的作用,可以有效规避命名冲突的问题,也为后续的数据隔离提供了支撑。任何一张数据表,都必须归属在某个数据库之下。
王知无-import_bigdata
2022/04/13
2.7K0
ClickHouse SQL基本语法和导入导出实战
clickhouse的sql语法功能1-创建库,创建表等
分布式引擎参数:服务器配置文件中的集群名,远程数据库名,远程表名,数据分片键(可选)。 下面是样例:
公众号-利志分享
2022/04/25
2K0
[1183]Clickhouse数据表&数据分区partition&数据生命周期操作
也可以直接去看官方文档:https://clickhouse.com/docs/zh/sql-reference/statements/alter/column
周小董
2023/10/10
1.6K0
ClickHouse(06)ClickHouse建表语句DDL详细解析
创建新表具有几种种语法形式,具体取决于用例。默认情况下,仅在当前服务器上创建表。分布式DDL查询作为子句实现,该子句另外描述。
张飞的猪
2024/03/09
8450
ClickHouse(06)ClickHouse建表语句DDL详细解析
ClickHouse *MergeTree表引擎
Clickhouse 中最强大的表引擎当属 MergeTree引擎及*MergeTree中的其他分支引擎。
MySQL轻松学
2019/09/20
5.6K0
ClickHouse | 入门
ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。 OLAP(联机分析处理,Online Analytical Processing)是一种快速应答多维分析查询的方法。通过将大型数据集(或独立数据集)上卷可构建一个多维数据库,即 OLAP 模型(Cube)。此 OLAP 模型针对数据分析进行了优化,支持用户从不同视角对数据进行”切片和切块(slicing and dicing)”,从而实现了简洁易用的查询体验。
Java小技巧
2024/11/23
1620
ClickHouse | 入门
客快物流大数据项目(九十三):ClickHouse的ReplacingMergeTree深入了解
为了解决MergeTree相同主键无法去重的问题,ClickHouse提供了ReplacingMergeTree引擎,用来对主键重复的数据进行去重。
Lansonli
2022/12/22
1.1K0
客快物流大数据项目(九十三):ClickHouse的ReplacingMergeTree深入了解
clickhouse 创建数据库和表
MySQL单条SQL是单线程的,只能跑满一个core,ClickHouse相反,有多少CPU,吃多少资源,所以飞快; ClickHouse不支持事务,不存在隔离级别。这里要额外说一下,有人觉得,你一个数据库都不支持事务,不支持ACID还玩个毛。ClickHouse的定位是分析性数据库,而不是严格的关系型数据库。又有人要问了,数据都不一致,统计个毛。举个例子,汽车的油表是100%准确么?为了获得一个100%准确的值,难道每次测量你都要停车检查么?统计数据的意义在于用大量的数据看规律,看趋势,而不是100%准确。 IO方面,MySQL是行存储,ClickHouse是列存储,后者在count()这类操作天然有优势,同时,在IO方面,MySQL需要大量随机IO,ClickHouse基本是顺序IO。 有人可能觉得上面的数据导入的时候,数据肯定缓存在内存里了,这个的确,但是ClickHouse基本上是顺序IO,用过就知道了,对IO基本没有太高要求,当然,磁盘越快,上层处理越快,但是99%的情况是,CPU先跑满了(数据库里太少见了,大多数都是IO不够用)。 二、创建库
用户5760343
2019/07/05
11.2K0
ClickHouse 集群部署(不需要 Zookeeper)
(1)安装 ClickHouse Server 和 ClickHouse Client
用户1148526
2024/04/18
8.1K2
一文入门 | 性能凶悍的开源分析数据库ClickHouse
ClickHouse是一个开源的,面向列的MPP架构数据分析数据库(大规模并行处理),由俄罗斯Yandex为OLAP和大数据用例创建。
灵雀云
2022/06/06
3.4K0
一文入门 | 性能凶悍的开源分析数据库ClickHouse
ClickHouse深度解析,收藏这一篇就够了~
五、核心概念 5.1.表引擎(Engine) 表引擎决定了数据在文件系统中的存储方式,常用的也是官方推荐的存储引擎是MergeTree系列,如果需要数据副本的话可以使用ReplicatedMergeTree系列,相当于MergeTree的副本版本。读取集群数据需要使用分布式表引擎Distribute。 5.2.表分区(Partition) 表中的数据可以按照指定的字段分区存储,每个分区在文件系统中都是都以目录的形式存在。常用时间字段作为分区字段,数据量大的表可以按照小时分区,数据量小的表可以在按照天分区或者月分区,查询时,使用分区字段作为Where条件,可以有效的过滤掉大量非结果集数据。 5.3.分片(Shard) 一个分片本身就是ClickHouse一个实例节点,分片的本质就是为了提高查询效率,将一份全量的数据分成多份(片),从而降低单节点的数据扫描数量,提高查询性能。 5.4. 复制集(Replication) 简单理解就是相同的数据备份,在CK中通过复制集,我们实现保障了数据可靠性外,也通过多副本的方式,增加了CK查询的并发能力。这里一般有2种方式:(1)基于ZooKeeper的表复制方式;(2)基于Cluster的复制方式。由于我们推荐的数据写入方式本地表写入,禁止分布式表写入,所以我们的复制表只考虑ZooKeeper的表复制方案。 5.5.集群(Cluster) 可以使用多个ClickHouse实例组成一个集群,并统一对外提供服务。 六、主要表引擎深入解析 6.1.TinyLog 最简单的表引擎,用于将数据存储在磁盘上,每列都存储在单独的压缩文件中,写入时,数据附加到文件末尾. 缺点:(1)没有并发控制(没有做优化,同时写会数据会损坏,报错) (2)不支持索引 (3)数据存储在磁盘上 优点:(1)小表节省空间 (2)数据写入,只查询,不做增删改操作创建表: create table stu1(id Int8, name String)ENGINE=TinyLog 6.2. Memory 内存引擎,数据以未压缩的原始形式直接保存在内存中,服务器重启,数据会消失,读写操作不会相互阻塞,不支持索引。建议上限1亿行的场景。优点:简单查询下有非常高的性能表现(超过10G/s) 创建表: create table stu1(id Int8, name String)ENGINE=Merge(db_name, 'regex_tablename') 6.3.Merge 本身不存储数据,但可用于同时从任意多个其他的表中读取数据,读是自动并行的,不支持写入,读取时,那些真正被读取到数据的表的索引(如果有的话)会被占用,默认是本地表,不能跨机器。参数:一个数据库名和一个用于匹配表名的正则表达式 创建表: create table t1(id Int8, name String)ENGINE=TinyLog create table t2(id Int8, name String)ENGINE=TinyLog create table t3(id Int8, name String)ENGINE=TinyLog create table t (id UInt16, name String)ENGINE=Merge(currentDatabase(), ‘^t’) 6.4.MergeTree ck中最强大的表引擎MergeTree(合并树)和该系列(*MergeTree)中的其他引擎。使用场景:有巨量数据要插入到表中,高效一批批写入数据片段,并希望这些数据片段在后台按照一定规则合并。相比在插入时不断修改(重写)数据进行存储,会高效很多。优点:(1)数据按主键排序 (2)可以使用分区(如果指定了主键)(3)支持数据副本 (4)支持数据采样 创建表: ENGINE MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate, intHash32(UserID)) SAMPLE BY intHash32(UserID) SETTINGS index_granularity=8192
大数据老哥
2021/11/15
9640
ClickHouse深度解析,收藏这一篇就够了~
clickhouse的MergeTree系列引擎ReplacingMergeTree和SummingMergeTree的深入理解
ReplacingMergeTree引擎 简介: 该引擎和 MergeTree 的不同之处在于它会删除排序键值相同的重复项。 数据的去重只会在数据合并期间进行。合并会在后台一个不确定的时间进行,因此你无法预先作出计划。有一些数据可能仍未被处理。尽管你可以调用 OPTIMIZE 语句发起计划外的合并,但请不要依靠它,因为 OPTIMIZE 语句会引发对数据的大量读写。
公众号-利志分享
2022/04/25
1.6K0
clickhouse的MergeTree系列引擎ReplacingMergeTree和SummingMergeTree的深入理解
ClickHouse(07)ClickHouse数据库引擎解析
支持非阻塞的DROP TABLE和RENAME TABLE查询和原子的EXCHANGE TABLES t1 AND t2查询。默认情况下使用Atomic数据库引擎。
张飞的猪
2024/03/10
3660
ClickHouse(07)ClickHouse数据库引擎解析
分布式物化视图在clickhouse如何实现?
物化视图在数据层面做指标大宽表有着举足轻重的作用,分布式物化视图是对物化视图存储的数据进行分布式读取。
公众号-利志分享
2022/04/25
3.3K1
ClickHouse案例:查询结果不一致
某用户反馈其使用的ClickHouse集群同样的查询返回了不同的结果,是否是ClickHouse数据不能够保证一致性,还是集群有问题。
Yannic
2020/11/16
14.3K1
ClickHouse案例:查询结果不一致
ClickHouse原理解析与应用实战
◆ ClickHouse概念 clickhouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS),由俄罗斯最大的搜索公司Yandex开发,于2016年开源,采用c++开发。 ◆ OLAP 和 OLTP 这两个概念 OLAP(On-Line Analytical Processing):联机分析处理OLAP(On-Line Analytical Processing),仓库型数据库,主要是读取数据,做复杂数据分析(多维),侧重技术决策支持,提供直观简单的结果,开源OLAP引擎包含Hive、Sp
IT大咖说
2022/06/17
2.2K0
ClickHouse原理解析与应用实战
ClickHouse的副本以及分布式表的创建(九)
副本的目的主要是保障数据的高可用性,即使一台 ClickHouse 节点宕机,那么也可以从 其他服务器获得相同的数据。
Java技术债务
2022/08/09
1.2K0
ClickHouse数据库数据定义手记之不一般的DDL和DML
前提 前面一篇文章已经很详细地介绍了ClickHouse中每种数据类型的定义和基本使用,这篇文章会详细地介绍ClickHouse中的DDL和DML,很多操作区别于传统的DBMS,特别是代价巨大的DEL
Throwable
2020/12/29
1.8K0
相关推荐
Clickhouse部署和基本使用1
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验