收藏 分享(赏)

数据挖掘数据处理中小技巧.ppt

上传人:精品资料 文档编号:11276258 上传时间:2020-03-08 格式:PPT 页数:19 大小:489KB
下载 相关 举报
数据挖掘数据处理中小技巧.ppt_第1页
第1页 / 共19页
数据挖掘数据处理中小技巧.ppt_第2页
第2页 / 共19页
数据挖掘数据处理中小技巧.ppt_第3页
第3页 / 共19页
数据挖掘数据处理中小技巧.ppt_第4页
第4页 / 共19页
数据挖掘数据处理中小技巧.ppt_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、Traps and Tips in Data Mining Developement,主要内容,开发过程中对于新手常见又容易忽略的小问题,表面好还不够,基础也很重要,相关问题,查询的逻辑正确性查询性能数据挖掘操作问题工具小问题等等,失败乃成功之母但.“Only a fool learns from his own mistakes. The wise man learns from the mistakes of others.“ Otto von Bismarck,(All examples are real; just dont take it personally. ),查询的逻辑问题,

2、join错误 分清Inner/left/right/full JOIN,弄清应用场景。 三个或以上表FULL JOIN的时候要更小心。 Join的表有重复号码 历史表、转品牌、多维表等 如果两个要JOIN的表表有重复号码,生成的表就叉乘出更多重复号码 尽量先Aggregate再join,保持粒度一致,sel a.c_usr_nbr,b.si_b_brnd_cd,count(distinct a.c_b_area_cd)as area_cnr from pmarttemp. tmp_usr_toll_b_area_200901 a left joinpmart.TB_MID_FRD_INFO20

3、0901 bon a.c_usr_nbr=b.c_usr_nbr group by 1,2,Traps,查询的逻辑问题,被除数为0: a/(b+0.0001) 只有在b=0的时候才适用 Coalesce(a/nullifzero(b), y) b=0时用y作为结果整数相除 integer/integer - integer 在算比率时会出问题。101000 必须先转为float类型,Traps,查询的性能问题,现象:慢、skewed。通过TM监控。 常见原因:Primary Index(PI)的问题。 建新表时没有指定PI,结果将month作为PI了 Bad PI (not specified

4、), skew 大表不是按PI关联(交往圈表) 关联条件错误 没写关联条件!或漏了(倒如缺了月份的关联条件),Traps,查询的性能问题,Optimizer不能找出最好的运行方案 通过explain查看运行方案 用Collect stat,让数据的新状况告诉Optimizer中止有问题的脚本 如果用perl运行,ctrl-c只是中止了perl,bteq脚本仍在运行。要将窗口关掉,才能完全中止。,Traps,查询性能问题,JOIN和Aggregation 先Join再 aggregate vs. 先agrregate再joinsel a.c_usr_nbr,b.si_b_brnd_cd,coun

5、t(distinct a.c_b_area_cd)as area_cnt from pmarttemp. tmp_usr_toll_b_area_200901 a left joinpmart.TB_MID_FRD_INFO200901 bon a.c_usr_nbr=b.c_usr_nbr group by 1,2运筹:理清计算过程,为多次使用的中间数据建立临时表,不用重复计算。,Traps,逻辑清晰的程序运行效率也通常高,数据处理性能问题,尽量不要随意Insert, update, delete 慢、资源多、拖累其它作业。(日志资源很有效) cancel后要rollback,也会影响很大。

6、有时搞到要将整个表废掉。 基本上不要update 改变C编程的思维 i=0; if (长途) i+; a+=i; X 不适用于DW编程 DW思维:使用 sum(case when .end)考虑用Partitioned Primary Index(PPI)优化insert/deleteUnion vs. union all Union 需要进行重复记录检查,慢 如果可预知是没重复记录的,则用union all(不作重复检查)。例如几个地市的数据集合并。,Traps,数据处理性能问题,同步执行,效率更高 Insert into t . ;insert into t .对同一个表的多条delete

7、/insert/update在同一步运行时会得到优化,速度比分开时快很多。 (SQL Assistant里要点并发执行按钮)全表删除用 delete from t all,Tips,注意分号的位置,在下一个insert的行首,数据挖掘的问题,Z-score(标准化) 在Variable Transformation模块中 消除数据不同月份间的季节性差异。 消除量纲。如果一个变量可能是全0(根据月份不同而变),则可能出错除以0错误。 解决:将score代码取出来,全部变量进行替换: (a-avg)/stdev zeroifnull (a-avg) / nullifzero (stdev),Tip

8、s,数据挖掘的问题,NULL值处理 在分析算法中,包括NULL值的记录会被删除。 注意:许多变量中NULL值是有意义。比如没有相应的话单时,会产生NULL值变量,其实是表示“0” 最好在生成数据集里就用zeroifnull(.)进行替换。异常值处理 例如排除消费量最大的10条记录。,Traps,模型投产的问题,注意:脚本需要每个月都运行 保存每次运行的结果,以便评估和跟踪。 不要把以前的数据覆盖掉。 尽量不要依赖以前的数据。例如。名单数据抽取后进行检查 使用TWM的value和Statitics模块,检查名单的取值是否合理 缺失值?异常值? 搞反了取得是最不会流失的用户? 变量的均值是否合理,

9、流失名单用户的ARPU是否偏低。,Traps,工具的问题,字符集 大部分表是uft-8,小部分是ascii。 字段Title的字符集多数是ascii。 最好建两个ODBC数据源。如果中文看不到,就切换。自己建新表尽量用utf-8,Traps,工具的问题,BTEQ脚本 块注释 字段注释 .Goto and .label:分块化,断点运行。 .set maxerror 1 .set errorlevel 3803 severity 0 -忽略表已存在错误古怪错误的应对 * Failure 3704 ? (A3X) is not a valid Teradata SQL token. - 是否将标点

10、或字符输成中文全角? 缺“;”,引号不匹配,会导致”end of file unexpected”,Tips,工具的问题,TWM 需要使用asc字符集,否则会不能正确识别数据类型(字段前的小方块应该是绿色的,红色就问题) (新版TWM不知有没有这个问题) Project 里的analysis可以复制、粘贴,便于在之前的工作上作调整。 第一次用TWM时先把metadata等配置好,建了project后再改就不能保存结果。,Tips,工具的问题,常用的EXCEL技术 公式 绘图:所有的图、格式设置。 透视图 贴进PPT里时,用“选择性粘贴”,EMF格式,这样PPT文件较小。,Tips,工作习惯,T

11、rackability 版本控制: Team (VSS):写comment,告许别人变更原因和改动的地方。 个人 (Me: SVN) 邮件 filename_20090701_v2 ,并在邮件中说明变更的地方 Word,使用“修订”模式,记录变更 PPTEXCEL 使用标注。统一的命名习惯工作计划 工作日志: 挖掘过程中有许多试验,之间的代码和参数差异很小。将有意义的中间步骤和结果记录下来,便于日后查看,或与别人交接。,Tips,工作习惯,“Nothing is certain but Death and Taxes.” 如果不确定,就要查文档或问别人,特别是业务问题常用的工具,凭感觉和试验可能会出意想不到的错。 系统阅读相关文档,也会更全面学到新的技巧。 Teradata SQL References 2 WBT Courses TWM User Guide Teradata BTEQ Reference Teradata Fastload Reference Teradata Multiload Reference EXCEL,Tips,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报