摘要:
Hive支持的存储数据的格式主要有:TEXTFILE、SEQUENCEFILE、ORC、PARQUET。 1、列式存储和行式存储 如图所示左边为逻辑表,右边第一个为行式存储,第二个为列式存储。 行存储的特点:查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需 阅读全文
摘要:
Hive 自带了一些函数,比如:max/min等,但是数量有限,自己可以通过自定义UDF来方便的扩展。当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数(UDF:user-defined function)官方参考 https://cwiki.apache.org/ 阅读全文
摘要:
需求说明 有以下一个表,记录了用户登录数据 desc temp_user_login; day_id string user_id int if_login int select* from temp_user_login order by user_id,day_id; 2022-03-01 1 阅读全文
摘要:
1、概述 MySQL 的用户群体很大,为了能够增强数据的实时性,很多解决方案会利用 binlog 将数据写入到 ClickHouse。为了能够监听 binlog 事件,我们需要用到类似 canal 这样的第三方中间件,这无疑增加了系统的复杂度。ClickHouse 20.8.2.3版本新增加了 Ma 阅读全文
摘要:
ClickHouse的物化视图是一种查询结果的持久化,它确实是给我们带来了查询效率的提升。用户查起来跟表没有区别,它就是一张表,它也像是一张时刻在预计算的表,创建的过程它是用了一个特殊引擎,加上后来 as select,就是create一个table as select的写法。“查询结果集”的范围很 阅读全文
摘要:
查询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 ' 阅读全文