hive基本用法及细节记录
大家好一下资料是我在工作中个人的一些关于hive的工作心得
查看历史输入过的指令
cat .hivehistory
在LINUX中直接运行脚本到hive数据库运行(在这里通过指令rz吧创建表的shell脚本上传到了LINUX文件中)
hive -f hive-script.sqlhive -f 后面直接+要执行的创建表的脚本就可以创建到hive数据库当中了
表建好以后要插入数据
注意:以下指令要在hive数据库里面执行,目录要重根目录识别
load data local inpath '/home/hive/xj/lx/abc.txt' into table ods_xj;ods_xj为插入数据的表
在本地加载
set hive.exec.mode.local.auto=true;
hive里面跳过hadoop直接插入数据的方法
set hive.exec.mode.local.auto=true; insert into ods.ods_xj values('123');
如果有分区则进行以下代码
set hive.exec.mode.local.auto=true; insert into ods.ods_d_evt_cb_tradefee_device partition (month_part='202011',day_part='11')values('1','a','abc','qs','js','50','60','70');
存储过程在执行中会少点代码(以下是补全的)
#!/bin/bash
#业务逻辑输入参数,此处很重要,需要根据实际业务情况认真设定!!!!
v_date=$1
v_month=${v_date:0:6}
v_day=${v_date:6:2}
v_l_date=`date -d "- 1 day $v_date" "+%Y%m%d"`
v_l_month=${v_l_date:0:6}
v_l_day=${v_l_date:6:2}
hive -e "
set hive.exec.mode.local.auto=true;
set hive.exec.mode.local.auto.input.files.max=5;
insert overwrite table dwd.dwd_d_evt_cb_trade_devfee partition (month_part = '$v_month', day_part = '$v_day')
SELECT '$v_month','$v_day',A.TRADE_ID ,--STRING comment '业务流水号',A.FEE_TYPE_CODE ,--STRING comment '费用类型编码',A.DEVICE_TYPE_CODE ,--STRING comment '设备类型编码',A.DEVICE_NO_S ,--STRING comment '起始设备编码',A.DEVICE_NO_E ,--STRING comment '结束设备编码',A.DEVICE_PRICE ,--DECIMAL(20,3) comment '设备单价',A.SALE_PRICE ,--DECIMAL(20,3) comment '实售价格',A.DEVICE_NUM ,--DECIMAL(20,3) comment '销售数量', C.DEVELOP_STAFF_ID ,-- '发展人',C.DEVELOP_DEPART_ID ,-- '发展渠道', B.ACCEPT_DATE ,-- '受理时间(台账主表历史)',B.TRADE_STAFF_ID ,-- '受理员工(台账主表历史)',B.TRADE_DEPART_ID ,-- '受理渠道(台账主表历史)',B.IN_MODE_CODE ,-- 'CBSS接入方式编码(台账主表历史)',B.CANCEL_FLAG ,-- '返销标志(台账主表历史)',B.CANCEL_time ,-- '返销时间',B.TRADE_AREA_ID ,-- '总部统一受理地州(台账主表历史)',B.AREA_ID -- '归属地市(台账主表历史)'FROM (SELECT *FROM ods.ODS_D_EVT_CB_TRADEFEE_DEVICEwhere month_part = '$v_month'and day_part = '$v_day') Aleft join(SELECT T.*,
按照分区查询表
select * from table_name where month_id='202012' and day_id='12';month_id 为主分区,day_id为子分区
linux shell(bash)测试表达式中"==“和”-eq"的区别
“==”:他是用来判断字符串是否相等
“-eq”:它是用来判断字符串对应的值是否相等
举个例子
#!/bin/bash
num1=123 #num1是长度为3的字符串
num2=0123 #num2是长度为4的字符串echo "======================================"echo -n "用==比较时:"
if [ $num1 == $num2 ]
thenecho "$num1和$num2相等"
elseecho "$num1和$num2不相等"
fiecho "======================================"echo -n "用-eq比较时:"
if [ $num1 -eq $num2 ]
thenecho "$num1和$num2相等"
elseecho "$num1和$num2不相等"
fi
结果为
======================================
用==比较时:123和0123不相等
======================================
用-eq比较时:123和0123相等
hive脚本的crontab定时调度
创建一个脚本文件
vi jb.txt
进行定时删除
先输入llinux指令:crontab -e
*/1 * * * * rm -rf /home/hive/xj/jb.txt
下图为参考
后台定时启动
34 16 * * * sh /home/hive/fqw/jiaoben/xunhuan.sh表示每天的16点34分执行
data用法
date命令可以按照指定格式显示日期,只输入date则以默认格式显示当前时间。如下:
[root@server1 files]# date
Wed Oct 28 18:20:00 CST 2020
指令 作用
%n 下一行
%t 跳格
%H 小时(00-23)
%I 小时(01-12)
%k 小时(0-23)
%l 小时(1-12)
%M 分钟(00-59)
%p 显示本地 AM 或 PM
%r 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S 秒(00-60)
%T 直接显示时间 (24 小时制)
%X 相当于 %H:%M:%S
%Z 显示时区
%a 星期几 (Sun-Sat)
%A 星期几 (Sunday-Saturday)
%b 月份 (Jan-Dec)
%B 月份 (January-December)
%c 直接显示日期与时间
%d 日 (01-31)
%D 直接显示日期 (mm/dd/yy)
%h 同 %b
%j 一年中的第几天 (001-366)
%m 月份 (01-12)
%U 一年中的第几周 (00-53)
%w 一周中的第几天 (0-6)
%W 一年中的第几周 (00-53)
%x 直接显示日期 (mm/dd/yy)
%y 年份的最后两位数字 (00.99)
%Y 完整年份 (0000-9999)
上述格式只需要掌握几个常用的即可。
例如%Y表示年,%m表示月,%d表示日,%H表示小时,%M表示分钟,%S表示秒,%s表示从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数,相当于time函数,%w表示一周中的第几天。实例见下:
[root@server1 files]# date "+now is %Y-%m-%d %H:%M:%S"
now is 2020-10-28 17:30:02[root@server1 files]# date "+现在时间是: %Y-%m-%d %H:%M:%S"
现在时间是: 2020-10-28 17:31:10
在hive中获取当前配置文件
if [ -f ~/.bash_profile ];then
. ~/.bash_profile
fi~/:表示当前用户
配置文件
bash配置文件分为 profile(全局局部)、bashrc(全局局部)
.~/.bash_profile:表示当前用户下profile的配置文件(因为是局部配置文件,所以只适用于当前配置文件)
profile配置文件,每当进入用户启动,开启新shell或者子shell不会执行
在当前目录获取日志文件
DIR=$(cd `dirname $0`;pwd)
LOG=$DIR/xj.log
循环查询月数据
1.建一个data.txt脚本
[hive@hadoop-238 xunhuan]$ cat data.txt
20201111
20201212
20201010
2.创建xunhuan.sh脚本,在里面遍历月账期,并执行目标脚本
#!/bin/bash
DIR=$(cd `dirname $0`;pwd)
LOG=$DIR/xj.log
if [ -f ~/.bash_profile ];then
. ~/.bash_profile
fifor v_date in `cat /home/hive/xj/xunhuan/data.txt`do sh /home/hive/xj/p_dwd_d_evt_cb_trade_devfee.sh $v_date > $LOG &echo "shell p_dwd_d_evt_cb_trade_devfee.sh $v_date successed"|tee -a $LOG
doneecho "shell p_dwd_d_evt_cb_trade_devfee.sh successed all"|tee -a $LOG
3.定时启动后台脚本
后台定时启动
34 16 * * * sh /home/hive/fqw/jiaoben/xunhuan.sh表示每天的16点34分执行
—z表示
—z表示(判断当前字符串长度是否为0)
hive基本用法及细节记录相关推荐
- Java实现CRM项目过程中的细节记录(一)
CRM项目实现过程中的细节记录(一) 文章目录 CRM项目实现过程中的细节记录(一) 一.数据库相关细节 1. 表名 2. 表字段说明 3. 不使用主外键约束 4. 不使用主键自动增长 UUID 5. ...
- huggingface调用一些细节记录
huggingface调用一些细节记录 Model Input Model Foward BertModel 写给我自己看的一些小细节,因为不是每天写代码,总是会忘 要多看文档!!! Model In ...
- SAP UI5 应用开发教程之七十七 - SAP UI5 动态页面路由的高级用法:路由记录 routes 和 target 的一对多关系试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
- 利用SparkSQL(java版)将离线数据或实时流数据写入hive的用法及坑点
1. 通常利用SparkSQL将离线或实时流数据的SparkRDD数据写入Hive,一般有两种方法.第一种是利用org.apache.spark.sql.types.StructType和org.ap ...
- python中continue用法案例_记录今天学习python中for与while循环针对break和continue的用法...
python中有两个主要的循环for与while,其中针对这两个循环有两种不同的中断用法break与continue. 首先先看下面的循环代码: 1: for i in range(10):#变量i带 ...
- 准备离职,工作的一些细节记录
到年底了,不知道为什么招人的公司会变多,一般员工都会留到年终奖之后才走,不管怎样了,第一份工作做了刚好一年了,是时候好好朝着规划好的方向发展了,对于未来还是很看好Apple,意味着未来变成全职iOS开 ...
- hive函数用法以及场景
字符串处理 json字符串 json_tuple SELECT json_tuple('{"name":"John", "age":30, ...
- Antd 组件Switch用法及代码记录
前言 switch开关按钮 android也有这个组件 最近开发web用到此组件,用法有些不同 在此记录一下 实现效果 静态数据 在vue中< template> 标签直接三木表达式即可完 ...
- presto hive like用法总结,使用| 和 or like多个怎么写
–like与regexp_like的用法 presto where (address like '%广州%' OR address like '%北京%' OR address like '%上海%' ...
- vim的配置安装和Python安装细节记录20190109
vim: vim记得以前版本是8.0:现在最新的版本是8.1:而且是安装版本,不是已经编译好的版本:可以直接安装 需要git vundle安装 到bundle/vundle目录下: 安装插件的命令全部 ...
最新文章
- (完全解决)(numba)TypingError: Failed in nopython mode pipeline( Invalid use of Function)
- Tengine 安装和基本使用
- 记录下两个孩子在MineCraft里面还原公寓的经历
- SAP Spartacus Ngrx 使用的一些准则
- python3项目源代码下载_2019年最值得关注的34个Python开源项目——Let's go!
- EF Core 3.0查询
- python报错 scrolled: false_python 元组tuple - python基础入门(14)
- 【空间数据库】ArcSDE 10.7+SQLEXPRESS+ArcServer 10.7.ecp企业级数据库环境搭建
- 华东电脑申威服务器_华东电脑(600850):申威服务器首批量产下线 国产化业务落地里程碑事件[配资公司会议室]...
- cbv、resful、APIView和序列化组件
- Proteus 8.4软件安装教程
- tkinter教程_Tkinter教程–第2部分
- Excel如何实现随机不重复抽取
- MATLAB函数文件的使用
- 全国计算机二级ms备考,全国计算机二级MS office经验分享
- 如何在Ubuntu 20.04上使用Seafile同步和共享文件
- 白泽六足机器人导航贴(开源)
- Java程序员修炼之道 人民邮电出版社 吴海星译
- 极验验证码破解之selenium
- 游戏企业通关秘籍:华为云游戏全场景能力,开发+部署+运营“关关难过关关过”...
热门文章
- 权限控制 JSR-250注解、@Secured注解、支持表达式的注解
- 如何使用分布式管理工具:Git
- Python第五周作业之选择题
- vue+element 压缩上传图片
- Visual Studio Code 官方护眼主题绿豆沙颜色修改,让你的眼睛远离疲劳!
- jquery根据HTML5视频播放实践,jQuery定制HTML 5视频播放器
- 手机关机的java代码_Android关机界面代码
- 云计算计算机二级,全国计算机等级考试二级MS+Office高级应用真题题库2+2020年3月-20210613095444.pdf-原创力文档...
- Jquery各种插件下载
- 提升网站权重优化方法,网站权重优化步骤