11 2022 档案
摘要:查询CK手册发现,即便对数据一致性支持最好的Mergetree,也只是保证最终一致性: 我们在使用 ReplacingMergeTree、SummingMergeTree 这类表引擎的时候,会出现短暂数据不一致的情况。在某些对一致性非常敏感的场景,通常有以下几种解决方案。 1、准备测试表和数据 1、
阅读全文
摘要:1、准备测试数据 #创建小表 CREATE TABLE datasets.visits_v2 ENGINE = CollapsingMergeTree(Sign) PARTITION BY toYYYYMM(StartDate) ORDER BY (CounterID, StartDate, int
阅读全文
摘要:1、Prewhere替代where Prewhere和where语句的作用相同,用来过滤数据。不同之处在于prewhere只支持 *MergeTree 族系列引擎的表,首先会读取指定的列数据,来判断数据过滤,等待数据过滤之后再读取select 声明的列字段来补全其余属性。当查询列明显多于筛选列时使用
阅读全文
摘要:5、聚合计算外推 聚合函数内的计算,会外推,例如: EXPLAIN SYNTAX SELECT sum(UserID * 2) FROM datasets.visits_v1; //优化后效果 SELECT sum(UserID) * 2 FROM datasets.visits_v1 6 聚合函数
阅读全文
摘要:需求描述 需求有以下数据 create table temp_online_data ( room_id varchar(2) comment '直播间ID', anchor_id varchar(5) comment '播主ID', start_time varchar(20) comment '
阅读全文
摘要:ClickHouse 的 SQL 优化规则是基于RBO(Rule Based Optimization),下面是一些优化规则细节, 1、准备测试表 1、上传官方的数据集:将visits_v1.tar和hits_v1.tar上传到虚拟机,解压到clickhouse数据路径下:将visits_v1.ta
阅读全文
摘要:在clickhouse 20.6版本之前要查看SQL语句的执行计划需要设置日志级别为trace才能可以看到,并且只能真正执行sql,在执行日志里面查看。在20.6版本引入了原生的执行计划的语法。在20.6.3版本成为正式版本的功能。 1、基本语法 EXPLAIN [AST | SYNTAX | PL
阅读全文
摘要:在实际应用中,我们一般都需要将数据按照某个key进行分区,然后再进行计算处理;所以最为常见的状态类型就是Keyed State。之前介绍到keyBy之后的聚合、窗口计算,算子所持有的状态,都是Keyed State。另外,我们还可以通过富函数类(Rich Function)对转换算子进行扩展、实现自
阅读全文
摘要:1、数据类型 1.1、时间字段类型 建表时能用数值型或日期时间型表示的字段就不要用字符串,全String类型在以Hive为中心的数仓建设中常见,但ClickHouse环境不应受此影响。虽然ClickHouse底层将DateTime存储为时间戳Long类型,但不建议存储Long类型,因为DateTim
阅读全文
摘要:ClickHouse 副本的目的主要是保障数据的高可用性,即使一台ClickHouse节点宕机,那么也可以从其他服务器获得相同的数据。官网地址如下: https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/repli
阅读全文
摘要:基本上来说传统关系型数据库(以MySQL为例)的SQL语句,ClickHouse基本都支持,这里不会从头讲解SQL语法只介绍ClickHouse与标准SQL(MySQL)不一致的地方。 1、insert 基本与标准SQL(MySQL)基本一致 insert into [table_name] val
阅读全文
摘要:6、SummingMergeTree 对于不查询明细,只关心以维度进行汇总聚合结果的场景。如果只使用普通的MergeTree的话,无论是存储空间的开销,还是查询时临时聚合的开销都比较大。ClickHouse 为了这种场景,提供了一种能够“预聚合”的引擎SummingMergeTree 建表 crea
阅读全文
摘要:4.4、二级索引 目前在ClickHouse的官网上二级索引的功能是默认开始的,创建测试表 create table t_order_mt2( id UInt32, sku_id String, total_amount Decimal(16,2), create_time Datetime, IN
阅读全文
摘要:1、表引擎介绍 ClickHouse表引擎是ClickHouse的一大特色。可以说, 表引擎决定了如何存储表的数据。包括: 数据的存储方式和位置,写到哪里以及从哪里读取数据。 支持哪些查询以及如何支持。 并发数据访问。 索引的使用(如果存在)。 是否可以执行多线程请求。 数据复制参数。 表引擎的使用
阅读全文
摘要:1、整形 固定长度的整型,包括有符号整型或无符号整型。 整型范围(-2n-1~2n-1-1): Int8 - [-128 : 127] Int16 - [-32768 : 32767] Int32 - [-2147483648 : 2147483647] Int64 - [-922337203685
阅读全文
摘要:这篇文章主要记录一些 linux 常用命令,以备查看。 一、Vim vim 是一个常用的文本编辑命令,一些常用的命令大家应该都有使用,现在记录一些使用不是很频繁单偶尔会用到的一些命令; 1、vim 批量替换;有以下一个文件,我们将令狐冲替换为令狐少侠 [hui@hadoop201 ~]$ cat t
阅读全文