
Hive
文章平均质量分 75
满床清梦覆星河
这个作者很懒,什么都没留下…
展开
-
离线数据仓库
离线数据仓库知识点原创 2023-02-12 20:55:42 · 4485 阅读 · 2 评论 -
Hive_
Hive知识点总结原创 2022-11-30 09:25:50 · 1008 阅读 · 0 评论 -
Hive如何进行权限控制?
Hive如何进行权限控制原创 2023-02-01 21:58:49 · 890 阅读 · 0 评论 -
Hive中日期处理
select day ,(day,1) -- 时间 ,date_add(day,1 - dayofweek(day)) as week_first_day -- 本周第一天_周日 ,date_add(day,7 - dayofweek(day)) as week_转载 2021-07-26 16:07:42 · 281 阅读 · 0 评论 -
Join时数据类型不一致导致的倾斜
本篇以hive sql解析器来讨论问题,spark sql 的处理方法类似,大家可自行测试。 在进行join操作时,有mapjoin和hashjoin两个大类。mapjoin需要的是一个大表和一个小表进行join,小表存于内存中,对大表进行遍历,不会产生数据倾斜。 如果是大表join大表,在内存中放不下,便会对两张表join的字段求hash值,然后将hash值相同的数据放入同一个reduce或者同一个spark分区进行处理,这样join条件相同的内容就能放在一起处理了。若得到的某个hash值比例转载 2021-07-02 15:24:55 · 2622 阅读 · 0 评论 -
Hive语法内关于With as 的数据是否会缓存到内存分析
WITH AS短语,也叫做子查询部分(subquery factoring),可以定义一个SQL片断,该SQL片断可以被后面的SQL语句引用,从而使SQL语句的可读性更高。 在关系型数据库中,对于UNION ALL,使用WITH AS定义了一个UNION ALL语句,当该片断被调用2次以上,优化器会自动将该WITH AS短语所获取的数据放入一个Temp表中。 Hive在后面的版本也引入了WITH AS 这个公用表表达式(CTE)语法糖,但是对于后面语句的多次引用是否会继续将该WITH AS短语所原创 2021-06-21 11:55:43 · 3689 阅读 · 0 评论 -
Hive分区表表结构发生变动可能带来的问题?
首先,由于业务场景的需求调整可能会需要修改一些已经存在的表结构,比如增加字段、修改字段类型等,所以可能会有一些隐藏因素导致后续查询和插入数据报错; 原始数据表结构create external table ordercount( channel string, platform string, whetherornotbuy int, headcount int, order_count int, order_time string)partitioned by (dt stri原创 2021-04-19 15:35:26 · 875 阅读 · 0 评论 -
数据仓库中如何创建拉链表?
某些表(如用户表)中的数据每日既有可能新增,也有可能修改,但修改频率并不高,属于缓慢变化维度,此处采用拉链表存储(用户维度)数据。1 什么是拉链表2 如何做拉链表3 拉链表制作过程步骤0:初始化拉链表(首次独立执行)(1)建立拉链表drop table if exists dwd_dim_user_info_his;create external table dwd_dim_user_info_his( `id` string COMMENT '用户id', `na原创 2021-03-29 20:18:33 · 2712 阅读 · 2 评论 -
数仓维度建模简析(ODS-DWS)
一、数仓为什么要分层? 合理的数据仓库分层一方面能够降低耦合性,提高重用性,可读性可维护性,另一方面也能提高运算的效率,影响到数据需求迭代的速度,近而影响到产品决策的及时性。建立数据分层可以提炼公共层,避免烟囱式开发,可见一个合适且合理的数仓分层是极其重要。二、通用分层设计思路 ODS:操作型数据(Operational Data Store),指结构与源系统基本保持一致的增量或者全量数据。作为DW数据的一个数据准备区,同时又承担基础数据记录历史变化,之所以保留原始数据和线上原始数据保持一致,方便原创 2021-03-27 14:37:03 · 2423 阅读 · 0 评论 -
Hive参数调优大全
SET hive.optimize.skewjoin = true; SET hive.skewjoin.key = 100000;开启动态分区 SET hive.exec.dynamic.partition.mode = nonstrict;设置ReduceTask任务数 SET mapred.reducer.tasks = 50;Hive中间结果压缩和压缩输出 SEThive.exec.compress.output = true;–默认false SET hive.exec.原创 2021-03-03 20:36:19 · 3073 阅读 · 2 评论 -
Hive优化(21种方案)
1、Fetch抓取 Fetch抓取是指,Hive中对某些情况的查询可以不必使用MapReduce计算。例如:SELECT * FROM employees;在这种情况下,Hive可以简单地读取employee对应的存储目录下的文件,然后输出查询结果到控制台。 在hive-default.xml.template文件中hive.fetch.task.conversion默认是more,老版本...原创 2020-03-20 13:04:53 · 5667 阅读 · 2 评论 -
Hive部分不常用函数简析
1、order by对查询结果做一次全局排序,即所有Mapper产生的结果都会交给一个reducer处理,无论数据量大小,job任务只会启动一个reducer,所以如果数据量巨大,会耗费大量时间计算。(在严格模式下,oeder by 需要指定limit数据条数,从而避免因为数据量过大造成集群崩坏。)2、sort by对每一块Partion进行局部排序,即每一个reducer处理的数据都是有...原创 2019-12-03 09:35:29 · 341 阅读 · 1 评论