大家好一下资料是我在工作中个人的一些关于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基本用法及细节记录相关推荐

  1. Java实现CRM项目过程中的细节记录(一)

    CRM项目实现过程中的细节记录(一) 文章目录 CRM项目实现过程中的细节记录(一) 一.数据库相关细节 1. 表名 2. 表字段说明 3. 不使用主外键约束 4. 不使用主键自动增长 UUID 5. ...

  2. huggingface调用一些细节记录

    huggingface调用一些细节记录 Model Input Model Foward BertModel 写给我自己看的一些小细节,因为不是每天写代码,总是会忘 要多看文档!!! Model In ...

  3. SAP UI5 应用开发教程之七十七 - SAP UI5 动态页面路由的高级用法:路由记录 routes 和 target 的一对多关系试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  4. 利用SparkSQL(java版)将离线数据或实时流数据写入hive的用法及坑点

    1. 通常利用SparkSQL将离线或实时流数据的SparkRDD数据写入Hive,一般有两种方法.第一种是利用org.apache.spark.sql.types.StructType和org.ap ...

  5. python中continue用法案例_记录今天学习python中for与while循环针对break和continue的用法...

    python中有两个主要的循环for与while,其中针对这两个循环有两种不同的中断用法break与continue. 首先先看下面的循环代码: 1: for i in range(10):#变量i带 ...

  6. 准备离职,工作的一些细节记录

    到年底了,不知道为什么招人的公司会变多,一般员工都会留到年终奖之后才走,不管怎样了,第一份工作做了刚好一年了,是时候好好朝着规划好的方向发展了,对于未来还是很看好Apple,意味着未来变成全职iOS开 ...

  7. hive函数用法以及场景

    字符串处理 json字符串 json_tuple SELECT json_tuple('{"name":"John", "age":30, ...

  8. Antd 组件Switch用法及代码记录

    前言 switch开关按钮 android也有这个组件 最近开发web用到此组件,用法有些不同 在此记录一下 实现效果 静态数据 在vue中< template> 标签直接三木表达式即可完 ...

  9. presto hive like用法总结,使用| 和 or like多个怎么写

    –like与regexp_like的用法 presto where (address like '%广州%' OR address like '%北京%' OR address like '%上海%' ...

  10. vim的配置安装和Python安装细节记录20190109

    vim: vim记得以前版本是8.0:现在最新的版本是8.1:而且是安装版本,不是已经编译好的版本:可以直接安装 需要git vundle安装 到bundle/vundle目录下: 安装插件的命令全部 ...

最新文章

  1. (完全解决)(numba)TypingError: Failed in nopython mode pipeline( Invalid use of Function)
  2. Tengine 安装和基本使用
  3. 记录下两个孩子在MineCraft里面还原公寓的经历
  4. SAP Spartacus Ngrx 使用的一些准则
  5. python3项目源代码下载_2019年最值得关注的34个Python开源项目——Let's go!
  6. EF Core 3.0查询
  7. python报错 scrolled: false_python 元组tuple - python基础入门(14)
  8. 【空间数据库】ArcSDE 10.7+SQLEXPRESS+ArcServer 10.7.ecp企业级数据库环境搭建
  9. 华东电脑申威服务器_华东电脑(600850):申威服务器首批量产下线 国产化业务落地里程碑事件[配资公司会议室]...
  10. cbv、resful、APIView和序列化组件
  11. Proteus 8.4软件安装教程
  12. tkinter教程_Tkinter教程–第2部分
  13. Excel如何实现随机不重复抽取
  14. MATLAB函数文件的使用
  15. 全国计算机二级ms备考,全国计算机二级MS office经验分享
  16. 如何在Ubuntu 20.04上使用Seafile同步和共享文件
  17. 白泽六足机器人导航贴(开源)
  18. Java程序员修炼之道 人民邮电出版社 吴海星译
  19. 极验验证码破解之selenium
  20. 游戏企业通关秘籍:华为云游戏全场景能力,开发+部署+运营“关关难过关关过”...

热门文章

  1. 权限控制 JSR-250注解、@Secured注解、支持表达式的注解
  2. 如何使用分布式管理工具:Git
  3. Python第五周作业之选择题
  4. vue+element 压缩上传图片
  5. Visual Studio Code 官方护眼主题绿豆沙颜色修改,让你的眼睛远离疲劳!
  6. jquery根据HTML5视频播放实践,jQuery定制HTML 5视频播放器
  7. 手机关机的java代码_Android关机界面代码
  8. 云计算计算机二级,全国计算机等级考试二级MS+Office高级应用真题题库2+2020年3月-20210613095444.pdf-原创力文档...
  9. Jquery各种插件下载
  10. 提升网站权重优化方法,网站权重优化步骤