hive
SunWuKong_Hadoop
人和人之间的能力是在8小时之外拉开的。
Notoriously torture the data until it confessed
展开
-
HIVE关键字清单
因项目需要识别出Hive的关键字,特从Hive官网中扣下来的。如坚持使用关键字,文章最末有解决方案。Keywords, Non-reserved Keywords and Reserved KeywordsKeywords ADD,ADMIN,AFTER,ALL,ALTER,ANALYZE,AND,ARCHIVE,ARRAY,AS,ASC,AUTHORIZATION,BEFORE,BETWEEN, BIGINT,BINARY,BOOLEAN,BOTH,BUCKET,BUCKETS,转载 2020-05-13 10:15:30 · 4057 阅读 · 0 评论 -
Hive日期函数总结
--1.时间戳函数--日期转时间戳:从1970-01-01 00:00:00 UTC到指定时间的秒数select unix_timestamp(); --获得当前时区的UNIX时间戳select unix_timestamp('2017-09-15 14:23:00'); select unix_timestamp('2017-09-15 14:23:00','yyyy-MM-dd HH...转载 2018-11-08 18:26:12 · 480 阅读 · 0 评论 -
如何每日增量加载数据到Hive分区表
加载数据数据加载到Hive分区表(两个分区,日期(20181129 )和小时(10))中每日加载前一天的日志文件数据到表db_track.track_log1. 数据存储数据日志文件,放入某个目录下,每天日志文件放入同一个目录eg: 20181129 - 目录名称日志文件数据,每个小时生成一个文件,一天总共有二十四个文件eg: 20181129 202. shell脚本编...转载 2018-11-29 16:29:19 · 818 阅读 · 0 评论 -
智慧医疗
门诊就诊人次select a.year_id,count(a.count_id) as ORDER_ITEM_COST from (select substr(DLASTM,1,4) as year_id,CSFRMC,DJZRQ,count(1) as count_id from lqioc_ioc_ods.TBMZFYMX group by substr(DLASTM,1,4),CSFRM...原创 2018-12-14 14:43:05 · 614 阅读 · 0 评论 -
跟我一起学【Sqoop】之——Sqoop导oracle数据到hive中并动态分区
静态分区:在hive中创建表可以使用hql脚本:test.hqlUSE TEST;CREATE TABLE page_view(viewTime INT, userid BIGINT, page_url STRING, referrer_url STRING, ip STRING COMMENT 'IP Address of the User') COMMEN...转载 2018-12-27 14:33:22 · 1183 阅读 · 0 评论 -
跟我一起学【Hive】之——静态分区、动态分区
虽然之前已经用过很多次hive的分区表,但是还是找时间快速回顾总结一下加深理解.举个栗子,基本需求就是Hive有一张非常详细的原子数据表original_device_open,而且还在不断随着时间增长,那么我需要给它进行分区,为什么要分区?因为我想缩小查询范围,提高速度和性能.分区其实是物理上对hdfs不同目录进行数据的load操作,0.7之后的版本都会自动创建不存在的hdfs的目录,不...原创 2018-12-28 17:19:31 · 533 阅读 · 0 评论 -
Hive与HBase整合(实例)
实例11.先在Hbase中创建表(三列族):create 'ceshi7',{NAME=>'TIME',VERSIONS=>1,BLOCKCACHE=>true,BLOOMFILTER=>'ROW',COMPRESSION=>'SNAPPY',DATA_BLOCK_ENCODING => 'PREFIX_TREE', BLOCKSIZE =&...原创 2019-01-04 11:48:33 · 508 阅读 · 0 评论 -
Hive与HBase整合 (不附过程图-自测成功)
Hive与HBase整合文档1、 Hive整合HBase配置1.1 拷贝hbase 相关jar包将hbase 相关jar包拷贝到hive lib目录下hbase-client-0.98.13-hadoop2.jarhbase-common-0.98.13-hadoop2.jarhbase-serve...转载 2019-01-02 17:02:29 · 330 阅读 · 0 评论 -
hive的hive.exec.parallel参数说明
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 su...转载 2019-01-09 15:39:22 · 1107 阅读 · 0 评论 -
跟我一起学【Hive】之——常用参数调优(较全)
1、limit限制调整一般情况下,Limit语句还是需要执行整个查询语句,然后再返回部分结果。有一个配置属性可以开启,避免这种情况---对数据源进行抽样set hive.limit.optimize.enable=true --- 开启对数据源进行采样的功能set hive.limit.row.max.size --- 设置最小的采样容量set hive.limit.opti...转载 2019-01-09 16:49:15 · 1827 阅读 · 0 评论 -
spark-beeline导出hive表数据到csv方法,乱码原因及解决方案
亲测语句1: spark-beeline -u jdbc:hive2://10.254.1.1:13002,10.254.1.1:13002,10.254.1.1:13002 --verbose=true --outputformat=csv -e "select * from lqioc_ioc_ods.wghhjrkxx limit 100000">wghhjrkxx.csv...原创 2019-02-14 17:41:16 · 3467 阅读 · 0 评论 -
Hadoop Archives Guide(hdfs文件归档介绍和例子)
Hadoop Archives Guide(hdfs文件归档介绍和例子)一、概括介绍:1)、简介英文:Hadoop archives are special format archives. A Hadoop archive maps to a file system directory. A Hadoop archive always has a *.har extension. A...转载 2019-03-14 14:53:03 · 255 阅读 · 0 评论 -
Hive应用:设置字段自增
语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以后的每条xlh记录返回一个序号。以上是row_number() over()的基本用法...转载 2019-03-14 21:17:56 · 1862 阅读 · 0 评论 -
Sqoop将数据从oracle导入到hive时,数据错位的问题解决
问题一:导入的列有换行符等其他字符如何解决在使用sqoop将数据从oracle导入hive时,对数据进行验证,发现hive中的数据比oracle的多,然后发现多出来的数据严重错位,大量字段为null怀疑是某些字段含有了hive默认的分隔符,如“\n”,“\r”,“\01”解决办法是增加参数--hive-drop-import-delims来解决Hive will have prob...转载 2019-04-25 11:55:17 · 1770 阅读 · 2 评论 -
跟我一起学【Hadoop】之——Hive和HBase有哪些区别与联系及适用场景
在学大数据分析的过程中,Hive和HBase是两个非常重要的内容,对于初学者而言容易混淆。所以比较两者的联系与差别,能够帮助我们对这两个组件有一个清晰的认识和定位。那么,Hive和HBase有哪些区别与联系以及适用于哪些场景呢?首先还要从两者的概念入手:Hive是运行在Hadoop上的一个工具,准确地讲是一个搜索工具。当对海量数据进行搜索时,Hadoop的计算引擎是MapRe...转载 2019-06-19 00:14:49 · 567 阅读 · 0 评论 -
跟我一起学【数据仓库】之——hive数据仓库设计中的拉链表、增量表、全量表
1)存量、流量、增量(1)存量:系统在某一时点时的所保有的数量;(2)流量:是指在某一段时间内流入/出系统的数量(3)增量:则是指在某一段时间内系统中保有数量的变化(4)增量=流入量--流出量(5)本期期末存量=上期期末存量+本期内增量2)拉链表:注意事项(1)记录一个事物从开始,一直到当前状态的所有变化的信息;(2)拉链表每次上报的都是历史记录的最...转载 2019-06-04 18:29:07 · 466 阅读 · 0 评论 -
跟我一起学【Hadoop开发】之—— hadoop的GenericOptionsParser类
GenericOptionsParser 命令行解析器是hadoop框架中解析命令行参数的基本类。它能够辨别一些标准的命令行参数,能够使应用程序轻易地指定namenode,jobtracker,以及其他额外的配置资源有篇日志写的很好,自己就不赘述了:传送门例子:最简单的在WordCount中用到了:Configuration conf = new Configuration(...转载 2019-07-12 17:58:20 · 1050 阅读 · 0 评论 -
Hive中三张表数据合并成一行,并插入另一张表
知识点:时间戳转化,当前时间,左连接,查询的字段相同可以直接插入另一张表 insert into lqioc_ioc_dw.kkjcselect a.*,b.CLL,e.JZT from (select FROM_UNIXTIME(UNIX_TIMESTAMP(),'yyyy') as YEAR_ID,'鹿泉' as AREA_NAME,'130185000000' as AREA_...原创 2018-11-08 17:58:44 · 4701 阅读 · 1 评论 -
sqluldr2 报错ora-24345: A Truncation or null fetch error occurred
source /etc/profile;source /root/.bash_profile;unset NLS_LANG;sqluldr2 user=sjgj/sjgj@10.254.4.196:1521/client query="select ZJ as ZJ,TIME as TIME,DHHM as DHHM,XM as XM,LDNR as LDNR,BLLC as B...原创 2018-11-07 17:57:38 · 3494 阅读 · 4 评论 -
hive 内部表和外部表的区别和理解
1. 内部表create table test (name string , age string) location '/input/table_data'; 注:hive默认创建的是内部表此时,会在hdfs上新建一个test表的数据存放地load data inpath '/input/data' into table test ;会将hdfs上的/input/data目录下的数据转移到...转载 2018-06-05 13:42:17 · 721 阅读 · 0 评论 -
hive中order by, sort by, distribute by, cluster by的用法和区别
1、order by hive中的order by 和传统sql中的order by 一样,对数据做全局排序,加上排序,会新启动一个job进行排序,会把所有数据放到同一个reduce中进行处理,不管数据多少,不管文件多少,都启用一个reduce进行处理。如果指定了hive.mapred.mode=strict(默认值是nonstrict),这时就必须指定limit来限制输出条数,原因...转载 2018-06-14 14:00:32 · 1718 阅读 · 0 评论 -
hive中管理表(内部表)和外部表的区别是什么,及分区表使用场景
⑴区别:①Hive创建内部表时(默认创建内部表),会将数据移动到数据仓库指向的路径;创建外部表(需要加关键字external),仅记录数据所在的路径,不对数据的位置做任何改变;⑵Hive删除表时,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据; ⑵场景:①外部表:比如某个公司的原始日志数据存放在一个目录中,多个部门对这些原始数据进行分析,那么创建外部表是明智...转载 2018-06-14 14:13:38 · 2383 阅读 · 0 评论 -
hive的查询注意事项以及优化总结
一、控制Hive中Map和reduce的数量Hive中的sql查询会生成执行计划,执行计划以MapReduce的方式执行,那么结合数据和集群的大小,map和reduce的数量就会影响到sql执行的效率。除了要控制Hive生成的Job的数量,也要控制map和reduce的数量。1、 map的数量,通常情况下和split的大小有关系,之前写的一篇blog“map和reduce的数量是如何定义的”有描述...转载 2018-06-14 14:16:33 · 1028 阅读 · 0 评论 -
数据库中的视图理解和优点介绍
数据库中视图的概念:视图是从一个表或是多个表导出的表,视图与表不同,视图是一个虚表,即视图所对应的数据不进行实际存储,数据库中指存储视图的定义,在对视图的数据进行操作时,系统根据视图的定义去操作与视图相关联的基本表。视图是虚表,是从一个或是几个基本表导出的表。可以将视图看做是移动的窗口,通过它可以看到自己感兴趣的数据,视图是从一个或是多个表中获得的,这些表的数据存放在数据库中,那些用户产生视图的表...转载 2018-06-14 14:21:18 · 1076 阅读 · 0 评论 -
impala与hive的比较以及impala的优缺点
Impala相对于Hive所使用的优化技术没有使用MapReduce进行并行计算,虽然MapReduce是非常好的并行计算框架,但它更多的面向批处理模式,而不是面向交互式的SQL执行。与MapReduce相比:Impala把整个查询分成一执行计划树,而不是一连串的MapReduce任务,在分发执行计划后,Impala使用拉式获取数据的方式获取结果,把结果数据组成按执行树流式传递汇集,减少了把中间结...转载 2018-06-14 15:41:17 · 2985 阅读 · 0 评论 -
hive使用技巧(三)——巧用group by实现去重统计
相关文章推荐:hive使用技巧(一)自动化动态分配表分区及修改hive表字段名称hive使用技巧(二)——共享中间结果集hive使用技巧(三)——巧用group by实现去重统计hive使用技巧(四)——巧用MapJoin解决数据倾斜问题Hive使用技巧(五)—— 一行转多行,多行转一行网站统计中常用的指标,pv ,uv , 独立IP,登录用户等,都涉及去重操作。全年的统计,PV超过100亿以上。...转载 2018-06-14 18:00:51 · 2514 阅读 · 0 评论 -
hive中udf、udaf、udtf开发
Hive进行UDF开发十分简单,此处所说UDF为Temporary的function,所以需要hive版本在0.4.0以上才可以。一、背景:Hive是基于Hadoop中的MapReduce,提供HQL查询的数据仓库。Hive是一个很开放的系统,很多内容都支持用户定制,包括:a)文件格式:Text File,Sequence Fileb)内存中的数据格式: Java Integer/Stri...原创 2018-06-15 11:04:11 · 865 阅读 · 0 评论 -
hive函数合集
1.数值运算函数取整函数: round指定精度取整函数: round向下取整函数: floor向上取整函数: ceil取随机数函数: rand2.日期函数UNIX时间戳转日期函数: from_unixtime获取当前UNIX时间戳函数: unix_timestamp日期转UNIX时间戳函数: unix_timestamp指定格式日期转UNIX时间戳函数: unix_timestamp日期时间转日期...原创 2018-06-15 11:24:00 · 614 阅读 · 0 评论 -
Impala与hive相关知识点摘录
Impala与hive相关知识点摘录Impala架构Impala是Cloudera在受到Google的Dremel启发下开发的实时交互SQL大数据查询工具,Impala没有再使用缓慢的 Hive+MapReduce批处理,而是通过使用与商用并行关系数据库中类似的分布式查询引擎(由Query Planner、Query Coordinator和Query Exec Engine三部分组成),可以...转载 2016-12-12 10:51:13 · 374 阅读 · 0 评论 -
hive学习推荐书籍+官方网址
参考书籍:《Hive编程指南》Hive--官方参考文档:1.用户手册https://cwiki.apache.org/confluence/display/Hive/Home#Home-UserDocumentation2.管理员手册https://cwiki.apache.org/confluence/display/Hive/Home#Home-AdministrationDocum...原创 2018-08-01 10:40:43 · 8742 阅读 · 0 评论 -
Hive自定义函数开发
1.udf函数类开发开发步骤:①给hive.ql.exec.UDF包开发一个自定义函数类,从UDF继承。自定义函数类实现evaluate方法②在FunctionRegistry类中注册开发的自定义函数类③打包发布至Hive客户端2.自定义函数注册在/hive-1.2.1/src/ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRe...原创 2018-08-01 11:37:52 · 450 阅读 · 0 评论 -
动态分区导入数据
静态分区不指定分区,数据插入不进去,如图:使用insert...select 往表中导入数据时,查询的字段个数必须和目标的字段个数相同,不能多,也不能少,否则会报错。但是如果字段的类型不一致的话,则会使用null值填充,不会报错。而使用load data形式往hive表中装载数据时,则不会检查。如果字段多了则会丢弃,少了则会null值填充。同样如果字段类型不一致,也是使用null值填充...原创 2018-08-01 17:15:33 · 1117 阅读 · 0 评论 -
hive使用动态分区插入数据详解
往hive分区表中插入数据时,如果需要创建的分区很多,比如以表中某个字段进行分区存储,则需要复制粘贴修改很多sql去执行,效率低。因为hive是批处理系统,所以hive提供了一个动态分区功能,其可以基于查询参数的位置去推断分区的名称,从而建立分区。 1.创建一个单一字段分区表create table dpartition(id int ,name string )partitione...转载 2018-08-01 17:19:23 · 6511 阅读 · 0 评论 -
在Oracle、MySQL中执行sql脚本生成hive建表语句
python3脚本:#mysqlfor i in range(len(table_name)): sql1 = """SELECT CONCAT('create table ','%s','(')UNION ALLSELECT CONCAT( COLUMN_NAME, ' ', CASE WHEN DATA...原创 2018-11-01 13:36:19 · 566 阅读 · 0 评论 -
shell中spark-sql语句调试、执行方式
1.命令方式执行sparksql查询SQL="use mydatatable;;select count(1) from tab_videousr_onlne where p_regiion=101 and p_date='2017-04-05' and p_hour=21;"/home/mr/spark/bin/beeline -u jdbc:hive2://localhost:18...转载 2018-11-09 16:02:02 · 3086 阅读 · 0 评论 -
hive.groupby.skewindata与负载均衡
Group By 语句1.Map 端部分聚合:并不是所有的聚合操作都需要在 Reduce 端完成,很多聚合操作都可以先在 Map 端进行部分聚合,最后在 Reduce 端得出最终结果。基于 Hash参数包括:hive.map.aggr = true 是否在 Map 端进行聚合,默认为 Truehive.groupby.mapaggr.checkinterval = 100000 在 Map 端进行...转载 2018-06-05 17:07:04 · 1177 阅读 · 0 评论