zoukankan      html  css  js  c++  java
  • 硬实力

     1.left join产生的数据倾斜

    两个子集LEFT JOIN之后GROUP BY从代码角度出发更综合,但是当两个子集特别大时,会影响到效率,应该分别GROUP BY之后再进行LEFT JOIN,防止数据倾斜;

     2.维度理解

    维度太多了,有个dwd层放入多个维度,比如一个用户在不同的页面操作一个内容,这个维度就是(用户,页面,内容),若放在dws里维度是(内容,页面),相当于从dwd聚合来

     3.公司的数仓存储和压缩

    公司采用ORC存储,SNAPPY压缩,ORC存储可以让hive拥有事务,原子性,一致性,隔离性,持久性;SNAPPY压缩对于集团hive有什么好处暂时未知;

     4 .增,删,修改字段及删表分区增加表字段

      1.alter table wx_dwsdb.dws_cc_page_con_consume_dl add columns (con_title string comment '内容标题');

      2.修改表字段位置: alter table wx_dwsdb.dws_cc_page_con_consume_dl change con_title con_title string after con_id;

      3.删除表字段(hive不能直接删除字段,可以通过改变字段的性质):alter table wx_dp_adsdb.ads_cc_creator_platform_dl change column con_title a1 string comment '预留字段';

      4.删除表分区: alter table wx_dwddb.dwd_cc_like_user_details drop if exists partition(dt<='20210130',dt>='20210117');

    5.对历史大量数据需求解决方法

      经常会遇到一些需求比如从某年某月某日开始截止到当前全量数据。可以用模式调优解决-

      将历史数据明细数据通过脚本刷到a表中,之后对数据每天增量的方式增加到a表中,a表相当于每天都记录了全量的数据,对此a表进行操作就可以得到需要的数据

      扩:a可以辅助数仓建设构建dwd层或dws层

    6.EXCEL中的文件导入到hive表

      方法1:将excel文件改名为a.txt文件移动到跳板机上:mac可下载SecureCRT,win可用xshell,在跳板机中使用rz -rb,命令即可将文件放到跳板机上,在指定目录下:piconv -f gb2312 -t UTF-8 CompanyCode.txt  >  a.txt,然后再load 入表中;

      方法2:创建a.txt,直接将excel里的内容复制到a.txt里,再load即可

    7.脚本刷历史数据

      可以先 git clone 项目到跳板机上,然后 nohup run for_run.sh,后台运行刷数据的脚本,刷数据的同时,会在同级目录下创建nohup.out文件,可以cat 或者 vim 查看nohup.ou t,在vim中,可以通过 /20210316定位到刷数据的位置,

    注:数据如果需要再次回溯,需要将nohup.out清空,nohup文件会保留历史写入过多造成卡顿

     

    8.网校数仓基本上都是使用string类型

      可以在ods,buf,dwd,dim,dws层使用string类型,在ads层,为了易用性,可以使用其他字段类型,用的时候,也需要注意,比如

    从dws或者dwd到ads的时候,在有些情况下需要转换row_number() over(partition by dt,page order by cast(show_pv as bigint) desc) as num

    9.3.31号进行了4张表的优化处理

      优化点主要在于依赖表的切换,之前数仓体系没有建立或者健全,很多字段的获取要从其它多张表获取,现在通过维表或其它dwd层表关联,大大减少了表的连接,提高了效率,且由于血缘依赖,也让任务得以提前运行。

      在切换表的同时,对代码逻辑进行优化,减少了子查询,

      总结:优化在数仓体系未建立时曾创建的表,再一次感受到了数据体系建立的重要性,稳定,易用,完整,准确,安全。

  • 相关阅读:
    Java hello/hi的简单的网络聊天程序
    案例分析:设计模式与代码的结构特性
    网络相关的命令工具研究报告
    如何提高程序员的键盘使用效率
    分析一套源代码的代码规范和风格并讨论如何改进优化代码
    用例建模Use Case Modeling
    结合工程实践选题调研分析同类软件产品
    领域建模
    SecureCRT 连接虚拟机Linux
    用css固定div层在页面顶部和底部(兼容IE6)
  • 原文地址:https://www.cnblogs.com/zqfdgzrc/p/14592982.html
Copyright © 2011-2022 走看看