clickhouse的分区

这篇具有很好参考价值的文章主要介绍了clickhouse的分区。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

说明:
clickhouse的分区和hive表有类似地方,但也有区别,比如clickhouse中支持对分区的卸载和装载,卸载的数据不受ck管控,数据一直在,还可以复制分区数据到另外一张表结构一样的分区一样的表中,他直接提供命令,hive虽然也能实现,但相对麻烦一些,同时ck还能将分区的数据进行重置,如果设置默认值,分区中数据都是默认值,注意,主键列和分区字段是不能重置,如果重置主键数据都找不到,充值了分区字段,那分区都乱了
简介:
目前只有MergeTree系列的表引擎支持数据分区。相信你对分区表已经有所认识,因为在前面的知识中已将讲解到了分区表的基本语法,这里不再过多的解释
创建分区表:
create table log(
id String ,
ctime DateTime
)engine=MergeTree()
partition by toYYYYMM(ctime)
order by (id) ;
4.3.2.1 查看分区信息
ClickHouse内置了许多system系统表,用于查询自身的状态信息。 其中parts系统表专门用于查询数据表的分区信息。
SHOW TABLES FROM system ;

SELECT
name,
partition,
table
FROM system.parts
WHERE table = ‘log’

4.3.2.2 删除分区
合理地设计分区键并利用分区的删除功能,就能够达到数据更新的目的。
ALTER TABLE tb_name DROP PARTITION partition_expr ;
alter table log drop partition ‘202106’ ; – 会将指定分区分区删除, 并且分区中数据也会被删除
– 我们的操作是删除指定分区, 然后再导入这个分区的数据 ,从而达到分区数据更新的目录!
4.3.2.3 复制分区
clickHouse支持将A表的分区数据复制到B表,这项特性可以用于快速数据写入、多表间数据同步和备份等场景,它的完整语法如下:
ALTER TABLE B REPLACE PARTITION partition_expr FROM A;
不过需要注意的是,并不是任意数据表之间都能够相互复制,它们还需要满足两个前提条件:
两张表需要拥有相同的分区键;
它们的表结构完全相同。
演示分区数据复制:
创建两张分区表 , 表的分区字段一致 , 表的分区一致
create table log1( id String , ctime DateTime )engine=MergeTree() partition by toYYYYMM(ctime) order by id ;
create table log2( id String , ctime DateTime )engine=MergeTree() partition by toYYYYMM(ctime) order by id ;
insert into log1 values(1,‘2020-12-21 00:00:00’),(2,‘2020-12-22 00:00:00’),(3,‘2020-12-23 00:00:00’),(4,‘2020-11-21 00:00:00’)
alter table log2 replace partition 202011 from log1 ;
4.3.2.4 重置分区数据
如果数据表某一列的数据有误,需要将其重置为初始值,如果设置了默认值那么就是默认值数据,如果没有设置默认值,系统会给出默认的初始值,此时可以使用下面的语句实现:
ALTER TABLE tb_name CLEAR COLUMN column_name IN PARTITION partition_expr
Alter table log2 claer column id in partition 202011 ; --注意的是不能重置主键和分区字段
Received exception from server (version 20.8.3):
Code: 524. DB::Exception: Received from localhost:9000. DB::Exception: Trying to ALTER DROP key id column which is a part of key expression.
4.3.2.5 卸载和装载分区
表分区可以通过DETACH语句卸载,分区被卸载后,它的物理数据并没有删除,而是被转移到了当前数据表目录的detached子目录下。而装载分区则是反向操作,它能够将detached子目录下的某个分区重新装载回去。卸载与装载这一对伴生的操作,常用于分区数据的迁移和备份场景。卸载某个分区的语法如下所示:
ALTER TABLE tb_name DETACH PARTITION partition_expr
查看分区表中的数据
select * from log;

卸载202106分区中的数据
alter table log detach partition 202106;

查看磁盘中的数据结构, 202106月分区的数据被移动到了表目录下的detached目录下

记住,一旦分区被移动到了detached子目录,就代表它已经脱离了ClickHouse的管理,ClickHouse并不会主动清理这些文件。这些分区文件会一直存在,除非我们主动删除或者使用ATTACH语句重新装载它们。装载某个分区的完整语法如下所示:
ALTER TABLE tb_name ATTACH PARTITION partition_expr
alter table log attach partition 202106 ;–装载以后数据就会被加载到表下文章来源地址https://www.toymoban.com/news/detail-673062.html

到了这里,关于clickhouse的分区的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ClickHouse--11--ClickHouse API操作

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 JDBC–01–简介 ClickHouse java代码 SparkCore 写入 ClickHouse,可以直接采用写入方式。下面案例是使用 SparkSQL 将结果存入 ClickHouse对应的表中。在 ClickHouse 中需要预先创建好对应的结果表 可以通过 Flink 原生

    2024年02月21日
    浏览(38)
  • ClickHouse基础知识(一):ClickHouse 入门

    ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的 列式存储数据库 (DBMS),使用 C++ 语言编写,主要用于 在线分析处理查询(OLAP) ,能够使用 SQL 查询实时生成分析数据报告。 以下面的表为例: 1)采用行式存储时,数据在磁盘上的组织结构为: 好处是想查某个人所有的属性时,

    2024年02月03日
    浏览(38)
  • 探索ClickHouse——连接Kafka和Clickhouse

    可以从https://downloads.apache.org/kafka/下找到希望安装的版本。需要注意的是,不要下载路径包含src的包,否则会报“Classpath is empty”之类的错误。 配置kafka 将下面这行加入文件的末尾 同时修改log的路径 创建zookeeper service 将下面内容填入上述文件中 创建kafka service 将下面内容填

    2024年02月07日
    浏览(49)
  • 基于clickhouse keeper搭建clickhouse集群

    主机名 IP my-db01 192.168.1.214 my-db02 192.168.1.215 my-db03 192.168.1.216 hosts设置 使用 admin 用户安装: 添加官方镜像 安装 clickhouse-server和clickhouse-client 版本信息: 操作系统:CentOS Linux release 7.9.2009 (Core) systemd:219 clickhouse-client:23.2.4.12-1.x86_64 clickhouse-server:23.2.4.12-1.x86_64 clickhouse-commo

    2024年02月12日
    浏览(44)
  • clickhouse 系列2:clickhouse 离线安装

    https://download.csdn.net/download/shangjg03/88353547 /etc/clickhouse-server : 服务端的配置文件目录,包括全局配置config.xml 和用户配置users.xml。 /var/lib/clickhouse : 默认的数据存储目

    2024年02月11日
    浏览(38)
  • 【Flink】【ClickHouse】写入流式数据到ClickHouse

    Flink 安装的教程就不在这里赘叙了,可以看一下以前的文章,这篇文章主要是把流式数据写入的OLAP(ClickHouse)中作查询分析 Flink 1.13.2, ClickHouse 22.1.3.7 这里直接使用docker安装,没有安装的同学可以使用homebreak来安装,执行下面的命令即可( 已经安装了docker的可以忽略 ) 四指

    2024年02月03日
    浏览(42)
  • ClickHouse进阶(十七):clickhouse优化-写出查询优化

    进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_大数据OLAP体系技术栈,Apache Doris,Kerberos安全认证-CSDN博客 📌订阅:拥抱独家专题,你的订阅将点燃我的创作热情! 👍点赞:赞同优秀创作,你

    2024年02月07日
    浏览(56)
  • ClickHouse10-ClickHouse中Kafka表引擎

    Kafka表引擎也是一种常见的表引擎,在很多大数据量的场景下,会从源通过Kafka将数据输送到ClickHouse,Kafka作为输送的方式,ClickHouse作为存储引擎与查询引擎,大数据量的数据可以得到快速的、高压缩的存储。 Kafka大家肯定不陌生: 它可以用于发布和订阅数据流,是常见的队

    2024年04月25日
    浏览(46)
  • ClickHouse进阶(七):Clickhouse数据查询-1

    进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 📌订阅:拥抱独家专题,你的订阅将点燃我的创作热情! 👍点赞:赞同优秀创作,你

    2024年02月10日
    浏览(47)
  • ClickHouse学习笔记(六):ClickHouse物化视图使用

    ClickHouse 的物化视图是一种查询结果的持久化,它的存在是为了带来查询效率的提升。用户使用物化视图时跟普通的表没有太大区别,其实它就是一张逻辑表,也像是一张时刻在预计算的表,创建的过程它是用了一个特殊引擎,加上后来 as select,就是 create 一个 table as select

    2024年01月17日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包