hive/sql
文章平均质量分 63
看穿数据之美
机器学习/深度学习/数据挖掘/推荐算法,微信为oppo62258801(同13011197941),邮箱为lcqbit11@163.com,欢迎学习交流!
展开
-
hive 判断int值奇数偶数 hive中位运算妙用
hive表cinema有一列id,int类型。查询条件有一项:id为奇数。方式一:select id from cinema where id%2=1;方式二: select id from cinema where id & 1 =1;这里可以来看一下&这个运算符:可以看出,通过将数值&1,奇数对应为1,偶数对应为0,并且简单测试来看,按位&效率稍微更快一点。...原创 2021-05-11 16:02:23 · 2923 阅读 · 0 评论 -
SQL统计字段值的累加和
假设hive表 data.table 字段结构如下:CREATE TABLE IF NOT EXISTS `$target.table`( id string COMMENT '用户ID', pv_cnt bigint COMMENT '浏览次数') COMMENT ''PARTITIONED BY (dt string COMMENT '日期') STORED AS ORC;...原创 2019-11-14 02:37:01 · 13439 阅读 · 0 评论 -
hive中的排序操作 Sort/Distribute/Cluster/Order By
Hive中常见的排序操作有order by, sort by, distribute by, cluster by,下面一一介绍。1.order by在hive中如果需要对全部数据进行排序,可以使用order by操作,此时所有的数据都会分配到同一个Reducer处理。但是如果数据量太大的话,有可能会导致一个Reducer应付不过来。select userid, age, sa...原创 2019-10-30 23:31:22 · 1905 阅读 · 0 评论 -
hive中的set hive.exec.parallel=true 参数说明
hive.exec.parallel参数控制在同一个sql中的不同的job是否可以同时运行,默认为false.下面是对于该参数的测试过程:测试sql:select r1.afrom (select t.a from sunwg_10 t join sunwg_10000000 s on t.a=s.b) r1 join (select s.b from sunwg_100000 t join su...转载 2018-03-07 11:15:52 · 15241 阅读 · 0 评论 -
一文搞定数据仓库之拉链表,流水表,全量表,增量表
[sql] view plain copy1. 全量表:每天的所有的最新状态的数据, 2. 增量表:每天的新增数据,增量数据是上次导出之后的新数据。 3. 拉链表:维护历史状态,以及最新状态数据的一种表,拉链表根据拉链粒度的不同,实际上相当于快照,只不过做了优化,去除了一部分不变的记录而已,通过拉链表可以很方便的还原出拉链时点的客户记录。 4. 流水表: 对于表的每一个修改都会记录,可以用于...转载 2018-03-29 17:40:06 · 1458 阅读 · 0 评论 -
ive函数 -- split 字符串分割函数
hive字符串分割函数split(str, regex) - Splits str around occurances that match regexTime taken: 0.769 seconds, Fetched: 1 row(s)返回值为一个数组a.基本用法:例1:split('a,b,c,d',',')得到的结果:["a","b","c","d"] b.截取字符串中的某个值:当然,我们...转载 2018-06-06 09:38:48 · 468 阅读 · 0 评论 -
HIVE中get_json_object与json_tuple使用
hive中提供了两种针对json数据格式解析的函数,即get_json_object(…)与json_tuple(…),理论不多说,直接上效果示意图:假设存在如下json数据对象,若使用hive环境可这么设置:set hivevar:msg={"message":"2015/12/08 09:14:4", "client": "10.108.24.253", "server": "p.转载 2019-01-16 10:38:18 · 2379 阅读 · 0 评论 -
hive中多个字段拼接注意躲避空值坑
select concat(leix01,leix02,leix03) from dim_ivr_dictionary where ivr_table like 'zj%' and bm='40102';select concat(nvl(leix01,''),nvl(leix02,''),nvl(leix03,'')) from dim_ivr_dictionary where ivr_ta...转载 2019-03-14 15:08:13 · 3385 阅读 · 0 评论 -
Hive中and和or的执行顺序
今天在网上看到hive中and的执行优先级比or高,觉得很奇怪,于是就亲自尝试了一下,发现果然如此,下面是我测试的一些简单语句:select1 from student where 1=0 or 1=1 and 1 = 0;执行结果为空select 1 from student where 1=0 or 1=1 and 1 =1;执行结果为1第二个select语句毫无疑问w...转载 2019-05-23 00:58:38 · 6004 阅读 · 0 评论 -
数据库---拉链表
在数据仓库的数据模型设计过程中,经常会遇到这样的需求:1. 数据量比较大;2. 表中的部分字段会被update,如用户的地址,产品的描述信息,订单的状态等等;3. 需要查看某一个时间点或者时间段的历史快照信息,比如,查看某一个订单在历史某一个时间点的状态, 比如,查看某一个用户在过去某一段时间内,更新过几次等等;4. 变化的比例和频率不是很大,比如,总共有1000万转载 2018-01-20 23:06:36 · 10533 阅读 · 0 评论 -
关于Hive中的复杂数据类型Array,Map,Structs的一些使用案例
版权声明:目录(?)[-]写在前边的话1Array 1创建表 2查看array的元素 3内嵌查询及统计 4如何保存查询结果2Map 1创建表 2普通查看表数据 3使用explode关键字查询 4使用explode和lateral view结合查询3Structs 1创建数据表转载 2018-01-29 11:58:03 · 523 阅读 · 0 评论 -
Hive调优(语法与参数层面优化)
一、简介 作为企业Hadoop应用的核心产品,Hive承载着FaceBook、淘宝等大佬 95%以上的离线统计,很多企业里的离线统计甚至全由Hive完成,如我所在的电商。Hive在企业云计算平台发挥的作用和影响愈来愈大,如何优化提速已经显得至关重要。好的架构胜过任何优化,好的Hql同样会效率大增,修改Hive参数,有时也能起到很好的效果。有了瓶颈才需要优化 1、Hado转载 2017-06-08 21:08:54 · 564 阅读 · 0 评论 -
SQL.Mysql中Cast()函数的用法
之前讲到了orcale的字符串与日期等类型的转换,现在我们来看看MySQL是怎么转换的。比起orcale,MySQL相比之下就简单得多了,只需要一个Cast()函数就能搞定。其语法为:Cast(字段名 as 转换的类型 ),其中类型可以为:CHAR[(N)] 字符型 DATE 日期型DATETIME 日期和时间型DECIMAL float型SIGNED intT转载 2017-06-09 09:42:23 · 9906 阅读 · 0 评论 -
hive mapjoin使用
今天遇到一个Hive的问题,如下hive sql:select f.a,f.b from A t join B f on ( f.a=t.a and f.ftime=20110802) 该语句中B表有30亿行记录,A表只有100行记录,而且B表中数据倾斜特别严重,有一个key上有15亿行记录,在运行过程中特别的慢,而且在reduece的过程中遇有内存不够而报错。转载 2017-06-09 10:00:51 · 814 阅读 · 0 评论 -
MapReduce中的Shuffle和Sort分析
MapReduce 是现今一个非常流行的分布式计算框架,它被设计用于并行计算海量数据。第一个提出该技术框架的是Google 公司,而Google 的灵感则来自于函数式编程语言,如LISP,Scheme,ML 等。 MapReduce 框架的核心步骤主要分两部分:Map 和Reduce。当你向MapReduce 框架提交一个计算作业时,它会首先把计算作业拆分成若干个Map 任转载 2017-06-09 10:38:10 · 487 阅读 · 0 评论 -
HIVE中insert into 和overwrite的用法--转载
insert into 和overwrite的用法:Insert into代码 INSERT INTO TABLE tablename1 [PARTITION \ (partcol1=val1, partcol2=val2 ...)] \ select_statement1 FROM from_statement; Sq转载 2017-06-13 21:16:53 · 5423 阅读 · 0 评论 -
Hive、Hbase、mysql区别
Hive和HBase的区别Hive是为了简化编写MapReduce程序而生的,使用MapReduce做过数据分析的人都知道,很多分析程序除业务逻辑不同外,程序流程基本一样。在这种情况下,就需要hive这样的用戶编程接口。Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce,Hive中的表纯逻辑,就是些表的定义等,也就是表的元数据。使用SQL实现Hive是因为SQL大家都熟转载 2017-08-06 13:38:05 · 1134 阅读 · 0 评论 -
sql中的 between and 用法
BETWEEN指定测试范围。语法test_expression [ NOT ] BETWEEN begin_expression AND end_expression参数test_expression是用来在由 begin_expression 和 end_expression 定义的范围内进行测试的表达式。test_expression 必须与 begin_express转载 2018-01-21 11:50:35 · 76379 阅读 · 1 评论 -
hive表的存储格式 . ORC格式的使用
hive表的源文件存储格式有几类: 1、TEXTFILE 默认格式,建表时不指定默认为这个格式,导入数据时会直接把数据文件拷贝到hdfs上不进行处理。源文件可以直接通过hadoop fs -cat 查看 2、SEQUENCEFILE 一种Hadoop API提供的二进制文件,使用方便、可分割、可压缩等特点。 SEQUENCEFILE将数据以的形式序列化到文件中。序列化和转载 2018-01-24 11:37:20 · 1524 阅读 · 0 评论 -
case when then else end
sql case when then else end查询生成统计列表:[sql] view plain copy print?SELECT a.managecom, a.subtype, count(*) loadsucc, sum(case when a.state转载 2017-06-08 09:53:42 · 535 阅读 · 0 评论