Hive开发规范.docx

上传人:小** 文档编号:86374595 上传时间:2019-03-19 格式:DOCX 页数:20 大小:1.63MB
返回 下载 相关 举报
Hive开发规范.docx_第1页
第1页 / 共20页
Hive开发规范.docx_第2页
第2页 / 共20页
Hive开发规范.docx_第3页
第3页 / 共20页
Hive开发规范.docx_第4页
第4页 / 共20页
Hive开发规范.docx_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《Hive开发规范.docx》由会员分享,可在线阅读,更多相关《Hive开发规范.docx(20页珍藏版)》请在金锄头文库上搜索。

1、ABC项目Hive开发规范目录ABC项目1Hive开发规范11.ABC架构图22.Oracle包或过程转换成Hive脚本图23.项目文件夹命名规范34.shell脚本文件命名规范45.sql脚本文件命名规范46.临时表命名规范47.基表命名规范48.结果表命名规范69.配置表命名规范710.维度表命名规范711.日志记录格式812.注释913.Partition列914.字符集915.Shell脚本编写规范916.SQL程序体编写规范1117.Sqoop数据同步1318.Sqoop手功同步脚本1619.Hive程序优化1620.常用工具代码171. ABC架构图2. Oracle包或过程转换成

2、Hive脚本图具体案例:A、 Oracle建表脚本.sql Hive建表脚本.sh Hive程序脚本1.sql B、Oracle程序包.sql shell调度脚本.sh Hive程序脚本2.sql C、Oracle存储过程.sql shell调度脚本.sh Hive程序脚本.sql 3. 项目文件夹命名规范 项目文件夹命名规范项目英文名称缩写如ABC作业成本项目:abc_cost 程序文件夹命名规范p_项目名称_模型名称_Param_Job如ABC作业成本项目:p_abc_waybill_model_Param_Job4. shell脚本文件命名规范 shell建表脚本文件命名规范p_项目名称

3、_模型名称_Tab.sh如ABC作业成本项目:p_abc_waybill_model_Tab.sh shell调度脚本命名规范一级调度脚本:p_项目名称_程序名称_Param_Job.sh (只调sql脚本)二级调度脚本:p_项目名称_程序名称_Param_Job_run.sh (只调一级shell脚本)总调度脚本:p_项目名称_模型名称_Param_Job_Total_run.sh (只调二级shell脚本)如ABC作业成本项目:一级调度脚本:p_abc_ waybill_input_Param_Job.sh二级调度脚本:p_abc_ waybill_input_Param_Job_run.

4、sh总调度脚本:p_abc_ waybill_model_Param_Job_Total_run.sh5. sql脚本文件命名规范 Sql程序体脚本文件命名p_项目名称_模型名称_程序名称_Body.sql如ABC作业成本项目:p_abc_ waybill_model_input_Body.sql6. 临时表命名规范 项目名称_模型名称_程序名称_TMP如ABC作业成本项目:abc_waybill_model_input_tmp01注意:在hive中临时表建成内部表,需要时创建不需要时删除。数据类型如下:时间:STRING整形:INT, BIGINT字符串:STRING浮点:DOUBLE7.

5、基表命名规范 项目名称_BSL_模块名称_程序名称如ABC作业成本项目:abc_bsl_waybill_model_input 基表数据存放路径:/result/系统编码/数据库/bsl/表名如ABC作业成本项目:/result/fin_abc/fin_abc/bsl/ abc_bsl_waybill_model_input案例如下:注意:在hive中基表建成外部表,因为外部删除表结构不会删除数据。数据类型如下:时间:STRING整形:INT, BIGINT字符串:STRING浮点:DOUBLE8. 结果表命名规范 项目名称_fact_模块名称_程序名称如ABC作业成本项目:abc_fact_

6、waybill_model_input 结果表数据存放路径:/result/系统编码/数据库/fact/表名如ABC作业成本项目:/result/fin_abc/fin_abc/fact/ abc_fact_waybill_model_input案例如下:注意:在hive中结果表建成外部表,因为外部删除表结构不会删除数据。数据类型如下:时间:STRING整形:INT, BIGINT字符串:STRING浮点:DOUBLE9. 配置表命名规范 项目名称_rel_表名称如ABC作业成本项目:abc_rel_product_split_rule 配置表数据存放路径:/ods /系统编码/数据库/rel

7、/表名/表名如ABC作业成本项目:/ods/fin_abc/fin_abc/rel/abc_rel_product_split_rule /abc_rel_product_split_rule案例如下:注意:在hive中配置表建成外部表,因为外部表删除表结构不会删除数据。10. 维度表命名规范 项目名称_dim_表名称如ABC作业成本项目:abc_dim_asu_prod 配置表数据存放路径:/ods /系统编码/数据库/dim/表名/表名如ABC作业成本项目:注意:在hive中维度表建成外部表,因为外部删除表结构不会删除数据。11. 日志记录格式Hive日期表结构如下:记录方式如下:12.

8、注释表和字段的注释都必须使用comment语句加以注释。例如:WAYBILLNO STRING COMMENT 运单号13. Partition列Hive Partition列在Data中并不存储,这会导致当以文件形式对外提供数据时,数据会有缺失,为此,我们对所有的Partition列冗余存储。示例:当以列名为type的列作为partition列时,我们除了保存type列外,增加一列hp_type列做为partiiton列。14. 字符集Hadoop和Hive都是用UTF-8编码的,所有导入文件的字符必须为UTF-8格式。15. Shell脚本编写规范 一级shell脚本格式如下: 二级she

9、ll脚本格式如下:注意:如果要接收参数据,总调度和一级调度shell脚本只接收两个参数(开始日期、结束日期)。格式:yyyy-mm-dd总调度shell脚本只调用一级shell脚本,一级shell脚本只调用二级shell脚本,二级shell脚本调用具体的程序体SQL。(主要是方便脚本的并行调度)16. SQL程序体编写规范 SQL程序体格式如下:注意:基本和结果表一个月的数据量在500万以上需建分区表。 17. Sqoop数据同步 数据库连接配置 Sqoop同步到Hadoop的shell脚本格式注意:同步数据存储路径tar_dir 变量一定要有值,不然会删除hadoop下的所有目录。 Sqoo

10、p同步到Ora的shell脚本格式注意:同步数据存储路径tar_dir变量指定为同步表的数据存储路径或具体分区。 Sqoop同步Ora数据到hadoop案例 Sqoop同步hadoop数据到Ora案例18. Sqoop手功同步脚本 Sqoop手功同步Ora数据到hadoop Sqoop手功同步hadoop数据到Ora19. Hive程序优化 Hive参数优化 SQL脚本优化1、 多表关联优化一:针对主表A关联B关联C关联D,这时将多表拆分成两个大表关联生成一个临时表,再与其它小表关联。2、 多表关联优化二:针对主表A关联B表,B表再关联C表,这时可以需要将B表与C表先关联生成临时表,然后再与A

11、关联。 表分区优化1、 大表需按分区进行扫描,不要走全表扫描。2、 数据量在5000W以上,需建成天、月、年的分区。 表分区优化1、 数据量大的尽量多使用临时表简化关联条件减少每个程序运行时间,因为数据量大运算的时间肯定大大的长于map启动时间。2、 如果在一个程序脚本中有大量相同的表之间的关联提炼出来做成临时表。3、 关联表的条件时不能有空值,有空值得时候要处理成。如 nvl(a.id, rand() 给一个随机数或者一个固定的特殊的常数。4、 空值处理方法:A. 直接过滤掉B. 空值加上随机数分散到不同的reduce20. 常用工具代码 Liunx常用命令1. 文件拷贝2. 查看文件大小h

12、adoop fs -du -h /result/fin_abc/fin_abc/3. 查看进程ps -ef|grep 文件名4. 杀掉进程sudo -u fin-abc kill -9 8885. 杀掉Jobsudo -u fin-abc hadoop job -kill job_1452352207225_8585456. 查找文件grep -i rpt_revenue_sharing_waybill ./*grep -r abc_rel_cc_abc_code *7. 后台运行shell脚本 Hive常用语句1. 查看外部表结构、分区、文件目录desc formatted fvp_pack

13、agetransfer;2. 查看hdfs下外部表文件目录sudo -u hdfs hadoop fs -ls /staging/xxx/xxxdb/fvp_packagetransfer在hdfs下创建目录sudo -u hdfs hadoop fs -mkdir /staging/xxx/xxxdb/fvp_packagetransfer3. 查看目录及文件dfs -ls /result/fin_abc/fin_abc/fact/abc_fct_ro_driv_tb;4. 删除目录及文件dfs -rm -r /result/fin_abc/fin_abc/fact/abc_fct_ro_driv_tb/hq_month_code=201508; Ora常用语句1. 自建Hive分区

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号