1 简介
本篇内容涉及一些增删改查操作,包括数据库、表,重点介绍字段的增加/删除操作,其中包含的内容均实际测试通过。

2 Clickhouse
clickhouse是一款MPP架构的列式存储数据库,它拥有完备的管理功能,所以它称得上是一个DBMS,而不仅仅是一个数据库。它具备了如下的基本功能:
(1) DDL:可以动态创建、修改或者删除数据库、表、视图,无需重启服务;
(2) DML:可以动态查询、插入、修改或者删除数据;
(3) 权限控制:可以按照用户粒度设置数据库或者表的操作权限,保障数据的安全性;
(4) 数据备份和恢复:提供了数据备份导出与导入恢复机制,满足生产环境的要求;
(5) 分布式管理:提供集群模式,能够自动管理多个数据库节点。

3 各种操作

--建数据库
create database <数据库名> on cluster <集群名>--建表操作
--集群建表方式
--这里的perftest_3shards_1replicas指的是3分片1副本
--分片(shard) 是指不同的服务器存储同一张表的不同部分,作用是为了水平切分表,缓解单一服务的压力
--副本(replica) 是指两个相同数据的表或表一部分,作用是为了数据备份与安全
--分片对应的是分布式计算的能力,副本对应的是高可用性
--配置方式:
----在所有ClickHouse节点上,找到remote_servers配置项追加perftest_3shards_1replicas配置。注意所有节点都需要配置
----vi /etc/clickhouse-server/config.xml
----重启ClickHouse systemctl restart clickhouse-server
--index_granularity:
----表示索引的粒度,索引粒度对MergeTree而言是一个非常重要的概念,索引粒度就如同标尺一般,会丈量整个数据的长度
----依照刻度对数据进行标注,最终将数据标记成多个间隔的小段
----数据以index_granularity的粒度(默认8192)被标记成多个小的区间,其中每个区间最多8192行数据
----在新版本中,ClickHouse提供了自适应粒度大小的特性,默认为8192
CREATE TABLE test.testtable ON CLUSTER perftest_3shards_1replicas
(`id` UInt8,  `datetime` DateTime,`name` String,`sex` String,`grade` Nullable(Float64)
)
ENGINE = ReplicatedMergeTree('/clickhouse/{layer}/tables/{shard}/testtable', 'shard-{shard}-{replica}')
PARTITION BY toYYYYMMDD(datetime)
PRIMARY KEY name
ORDER BY id
SETTINGS index_granularity = 8192--删除表操作
--注意:删除表和创建表一样,必须使用集群的方法。不然只会删除本机的表,而副本中的表依然存在
DROP TABLE <数据库名>.<表名> ON CLUSTER <集群名>
DROP TABLE IF EXISTS <数据库名>.<表名> ON CLUSTER <集群名>--添加字段
--以下几种方式均可实现字段添加
--如果又对应的视图需要更新/重建视图
--业务中我们基于物化视图来做大宽表
alter table product_test add column `test` String DEFAULT '' COMMENT '注释';
alter table product_test ON CLUSTER perftest_3shards_1replicas add column `test` String DEFAULT '' COMMENT '注释';
alter table product_test add column test String DEFAULT '' COMMENT '注释';
alter table product_test ON CLUSTER perftest_3shards_1replicas add column test String DEFAULT '' COMMENT '注释';--删除字段
alter table product_test drop column `test`;--修改字段
alter table product_test modify column `test` Nullable(String) DEFAULT NULL COMMENT '注释';--删除数据
ALTER TABLE db_name.table_name DROP PARTITION '分区(例如:时间20220516)'

4 普通视图和物化视图

--ClickHouse支持视图功能,目前一共支持两种视图:普通(Normal)视图和物化(Materialized)视图
--通过DROP TABLE [$db_name.]$view_table_name语句可以直接删除视图,而通过SHOW TABLES可以展示所有的表,视图也会被认为是一种特殊的表一并进行展示--普通视图
--普通视图不会存储任何数据,它只是一个查询映射,起到了简化查询语义的作用,对查询的性能也不会有任何正负作用
COPYCREATE [OR REPLACE] VIEW [IF NOT EXISTS] [$db_name.]$view_table_name [ON CLUSTER] AS SELECT ...--物化视图
--物化视图支持定义表引擎,因为其数据保存的形式由表引擎决定
--需要定义表引擎,决定数据存储的形式
--物化视图中的数据不支持同步删除,如果源表的数据不存在或者源表被删除了,物化视图的数据依然存在
--物化视图不会随着基础表的变化而变化,所以它也称为快照(snapshot)
--如果要更新数据的话,需要用户手动进行,如周期性执行SQL,或利用触发器等机制
COPYCREATE MATERIALIZED VIEW [IF NOT EXISTS] [$db_name.]$view_table_name [ON CLUSTER] [TO[$db_name.]$table_name] [ENGINE = $engine] [POPULATE] AS SELECT ...
--实例
CREATE MATERIALIZED VIEW order_test
ENGINE=SummingMergeTree
PARTITION BY toYYYYMMDD(order_date) ORDER BY (id,order_date)
POPULATE  AS
SELECT
id,
order_date,
sum(pay_number) as number,
sum(pay_amount) as amount
FROM order_detail
WHERE order_date >= '2022-05-16'
GROUP BY id,order_date;--节点创建物化视图分布式表
--ENGINE = Distributed({cluster}, '{local_database}', '{local_table}', rand())
CREATE TABLE my_test.user_all ON CLUSTER perftest_3shards_1replicas
AS my_test.user
ENGINE = Distributed(perftest_3shards_1replicas, my_test, user, rand());

参考资料:

https://www.modb.pro/db/81185 ClickHouse高可用集群安装配置和创建分布式表

https://blog.csdn.net/qq_45141105/article/details/117626027 ClickHouse学习小记–MergeTree原理

https://www.cnblogs.com/wuning/p/12061756.html ClickHouse 高可用集群安装测试

https://blog.csdn.net/chy555chy/article/details/121519587?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-121519587-blog-116783138.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-121519587-blog-116783138.pc_relevant_default&utm_relevant_index=1 clickhouse 在集群上增删改查

https://blog.csdn.net/qq_41070393/article/details/116783138?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-116783138-blog-117031067.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-116783138-blog-117031067.pc_relevant_default&utm_relevant_index=2 clickhouse增删改查、创建数据库、创建表、修改字段、添加字段、删除字段

https://blog.csdn.net/choulisa/article/details/109499049 Clickhouse集群中创建多副本物化视图的方法(重要)

https://cloud.tencent.com/developer/article/1766204 ClickHouse数据库数据定义手记之不一般的DDL和DML

https://cdn.modb.pro/db/99840 分布式物化视图在clickhouse如何实现?

https://blog.csdn.net/weixin_44080445/article/details/119780193?spm=1001.2101.3001.6650.6&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-6-119780193-blog-109499049.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-6-119780193-blog-109499049.pc_relevant_antiscanv2&utm_relevant_index=9 详解clickhouse中的物化视图

https://www.csdn.net/tags/NtzacgzsNTk4NzktYmxvZwO0O0OO0O0O.html clickhouse 物化视图

https://www.freesion.com/article/9521715883/ 物化视图简介与CLICKHOUSE中的应用示例

https://blog.csdn.net/sojer/article/details/104903323 clickhouse里物化视图如何跟随源表更新数据

系统运维系列 之Clickhouse数据库学习集锦(增删改查操作)相关推荐

  1. 系统运维系列 之Clickhouse数据库学习集锦(接查询优化问题整理)

    1 简介 ClickHouse是一个用于联机分析 (OLAP)的列式数据库管理系统(DBMS),来自于俄罗斯本土搜索引擎企业 Yandex 公司,是为世界第二大web分析平台(Yandex.Metri ...

  2. sqlite数据库的基本增删改查操作

    2019独角兽企业重金招聘Python工程师标准>>> 效果图示例 1.在清单里添加相应的权限 <uses-permission android:name="andr ...

  3. java调用oracle删除,使用IDEA对Oracle数据库进行简单增删改查操作

    1.1 java中的数据存储技术 在java中,数据库存取技术可分为如下几类: 1.jdbc直接访问数据库 2.jdo(java data object)是java对象持久化的新的规范,也是一个用于存 ...

  4. python数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  5. thinkphp连mysql增删改查_ThinkPHP5.1框架数据库链接和增删改查操作示例

    本文实例讲述了ThinkPHP5.1框架数据库链接和增删改查操作.分享给大家供大家参考,具体如 本文实例讲述了ThinkPHP5.1框架数据库链接和增删改查操作.分享给大家供大家参考,具体如下: 一. ...

  6. python操作数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  7. 爬虫使用mysql创建新数据库并进行增删改查操作

    前言: 本文参考:Python3使用mysql创建新数据库并进行增删改查操作https://blog.csdn.net/Anwel/article/details/79919646 该文章描述了爬虫爬 ...

  8. python diango 增删改查_python中关于django对数据库Mysql的增删改查操作详解

    下面小编就为大家带来一篇python django 增删改查操作 数据库Mysql.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 下面介绍一下django增删改查操作: ...

  9. 数据库表的增删改查操作

    目录 准备工作 一.增加操作 1.全列插入 2.多行插入 3.指定列插入 二.查询操作 1.全列查询和指定列查询 2.对查询的字段起别名,查询的字段为表达式 3.对于查询结果进行去重 4.对查询的结果 ...

最新文章

  1. 在python中嵌入c/c++
  2. python语言的优缺点论文_Python语言的优缺点是什么呢?
  3. javascript 变量作用域
  4. c++初学者如何学好基础?
  5. 为什么Redux需要reducer成为“纯函数”
  6. 冷门的linux设备,你可能不知道的6个冷门linux实用命令
  7. 记录——《C Primer Plus (第五版)》第九章编程练习第四题
  8. Java从入门到精通
  9. 基于Spring的MVC框架设计与实现
  10. android7.1刷supersu,Android系统怎么刷SuperSU
  11. 网吧用服务器做虚拟化,网吧内共享服务器搭建
  12. 微信打开网页 提示防诈骗
  13. 动物实验,如何设置对照?
  14. 【Bug 调试】修复注册验证问题 第十三届蓝桥杯(Web 应用开发)线上模拟赛
  15. 无法启动此程序因为计算机中丢失adbwinapi,无法找到AdbWinApi.dll问题解决 .
  16. KDB+q @与. 的使用
  17. Word 查找替换,通配符一览表
  18. #Reading Paper# SASRec:Self-Attentive Sequential Recommendation
  19. Typecho 一款开源的轻量级博客程序
  20. ubuntu14.04上安装oralce笔记

热门文章

  1. 卧槽!发现一个Python副业接单神器!
  2. Word文档忘记设置的密码怎么办?
  3. Win10环境下yolov8快速配置与测试
  4. CSS+JS带缩略图随机切换方式的图片切换效果
  5. 新手如何给Hexo博客在复制时添加版权声明
  6. LG smartTV 设备信息查询
  7. UCOS2系统内核讲述(三)_TCB任务控制块
  8. [Unity][字体]TextMeshPro添加创建中文字体库解决中文乱码
  9. Inception v3 论文笔记
  10. ElasticSearchTemplate加中文筛选后无结果的解决办法