一个简单的ETL脚本应该包含如下内容
1.注释
2.设置字符集
3.基础路径参数
- 脚本路径
- 票据路径
- 日志路径
- 当前SHELL的脚本别名:declare SHELL_NAME=“${basename $0 |sed s/\./_/g}” eg:sss.sh =>sss_sh
- 票据文件
4.集群的相关认证 这些变量不做检查但是必须保证正确
- client基础路径
- source认证文件
- kinit的路径
- kinit的文件
5.检查程序传入参数
- 对参数个数的检查$#
- 对参数格式的检查
6.日志
- 日志的文件
- 创建日志目录方法INIT_LOG()
- 写日志的方法LOG()
- 创建日志路径和日志文件
7.载入变量
- 载入FI的环境变量
- 载入Hive的环境变量
- kerberos认证
- kinit认证
8.执行SQL
- 对sql文件的检查
- 执行sql beeline -f "${SQL_FILE}" --hivevar QUEUE='${QUEUE}' --hivevar BATCH_DATE='${BATCH_DATE}' >>${LOG_FILE} 2>&1
- 检查sql执行状态,并写出相应的状态日志