经验总结
记录项目开发过程中遇到的问题及解决方法,避免再次啋坑
剁椒鱼不要头
这个作者很懒,什么都没留下…
展开
-
经验总结7—数据准确性
1、一个版本开发过程,可能琐碎的需求比较多,一定要记下来,否则后面可能会忘记或遗漏,不要太自信自己的记忆力2、A left join B on 1=1 ,一般用来把B表的字段加到A表的每一行上,比如B表计算出当天是否是工作日,这是一个常量,和A表没有关系,所以就直接加到A表的每一行3、数据报表开发是件很严谨的事,有的报表是全国各机构的人都在看的,一旦数据准确性出现问题,会引来很多人的质问,一定要重视4、如果A和B是相同的表结构,只是名称不同,则两张表在关联取数的时候一定要写出具体的字段名并加表名,如.原创 2021-02-17 12:47:53 · 2019 阅读 · 0 评论 -
经验总结6—数据发散
1、取分区数据时,如果后续需要回刷历史数据,且可以一次取多天的数据,则可以写成where dt >= ‘start_date’ and dt < ‘end_date’,这样可以根据传入的开始、结束时间取多天的数据,如果只需取一天的数据,则where dt = ‘start_date’2、做join或left join时一定要检查左表的关联字段是否有null值,如果有则要进行nvl(col_1,concat(‘hive’,rand()))处理,如果右表关联字段有重复值则要去重,否则数据会发.原创 2021-02-17 12:42:57 · 4616 阅读 · 0 评论 -
经验总结5—集市迁移
1、在写多个union all的时候,一定要注意每个union all都要写select,在复制的时候很容易丢掉2、运算时注意null的情况,sum(null)会将null当0处理,但是+ - * / 有null时结果为null3、做迁移的时候对于同一个字段,一定要确认维值是否相同,如果不一样数据会对不上4、迁移的时候如果数据对不上,则先核查脚本逻辑,因为在写的过程中很容易写错,尤其是复制粘贴过来的,然后再看维值是否有差异,最后看上游数据是否对得上,每次对比都要认真落到实处,不要有应付的心态,否则还.原创 2021-02-17 12:34:52 · 245 阅读 · 0 评论 -
经验总结4—沟通协作
1、复制分区表数据时可以使用动态分区,如果写死分区会报错,显示多出一个字段,因为分区也是一个字段insert overwrite into table tab_name partition (dt) select * from scr_tab where dt = ‘2021-02-17’2、在excell里面进行数据核对的时候,一定要保存好数据,删除不需要的的sheet页更要小心,删除就无法恢复,尽量把临时的sheet页放到最后3、做迁移的时候一定要留意数据加工过程中做了哪些转换,尤其是数据加工链.原创 2021-02-17 12:30:45 · 207 阅读 · 0 评论 -
经验总结3—字段别名
1、hive建表时,如果表已经存在,则脚本运行会报错,但是任务显示成功,所以建表完成后要看下日志详情2、如果需要在测试环境里面测任务3,但是又依赖任务1,2,也就是必须等1,2跑完才能跑3,则可以从生产中取1,2的表数据,这样可以节省时间,前提是有权限3、新建任务或字段名的时候,一定要先查下生产是否已存在任务或表中已有字段名,不要跟已有的重名4、取字段的时候要加上别名,否则如果2张或多张表有相同的字段,容易混淆,还容易报错5、在测试脚本时,如果需要配置系统变量,则一定要确定系统变量中是否包含了脚本中原创 2020-10-21 00:12:27 · 364 阅读 · 0 评论 -
经验总结2—任务时效性
1、如果开发的脚本较多,哪些数据完成了对比,一定要确认并记录下来,别鸡爪似的东挠一下西挠一下,否则后面又要返回去确认一下,有一是一,落到实地2、在开发前先制定一个命名规范,比如验证数的excell,可以是车队指标集合_二级机构_日表_数据验证3、对于已经完成的新旧表结构和脚本,如果后续需要经常复制粘贴,又怕不小心损坏原脚本,可以对脚本进行权限设置,设为只读或加密码4、建表前一定要确认表是否已经存在,尤其是修改生产已有的任务,否则会删除已有表数据,在测试环境做开发测试的时候,最好复制原表结构并加上_XX原创 2020-10-21 00:03:42 · 827 阅读 · 0 评论 -
经验总结1—数据核对
1、做数据核对的时候,要具体情况具体分析,不要思维固化,不要一看到少数据,就各种查上游表2、先动脑再动手,深度思考,抽丝剥茧,一步步到位,最终定位问题3、如果数据对不上,看上游表的跑数日期的任务是否跑成功了(看任务日志是否有报错),或者是否有重跑数据4、从SVN上取生产脚本时,要确定是否与生产环境日志中的一致,有可能开发同事修改过脚本,然后直接替换了生产脚本,但是没有更新到SVN,这样你从SVN拿到的就不是最新的5、如果hive跑任务失败了,可以在hadoop日志页面点击不同的看不同的日志,有3个c原创 2020-10-20 23:58:40 · 1785 阅读 · 0 评论