统计211

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7659|回复: 3
打印 上一主题 下一主题

【hash】SAS hash介绍updating

  [复制链接]
跳转到指定楼层
1
发表于 2012-1-31 11:23:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 凤鸾 于 2012-1-31 12:21 编辑
  1. Hashing
  2. 搜索(Searching)是用的最广泛的一种技术。搜索技术包括:merges ,joins,formats,indexs以及一些特别的操作和functions.
  3. 对于merge,sql,conditional logic等都是基于comparsion:也就是将key与表里面的一个或多个keys进行比较。这种方法因为是跟key的value进行比较进而判断是相等或不等,是一种速度很慢,耗费内存的一种做法。而且对于merge,得事先对data进行排序,如果数据集比较大的话,那么更是一种低效率的选择。
  4. Hashing哈希是一种基于DIRECT-ADDRESSING的方法。
  5. 对于direct addressing,有3种:key –indexing, BITMAPPING, HASHING.
  6. 1)        key-indexing
  7. 用表中的key的值作为index的方法。
  8. 例子:
  9. 假设我们不能对2个数据集进行排序,但想将saml中的信息根据key,加到large中。我们该怎么操作呢?下面是用key-indexing的方法解决。
  10. data smal;
  11. input key s_sat;
  12. cards;
  13. 2 1
  14. 3 2
  15. 5 3
  16. 2 0
  17. 7 4
  18. 9 5
  19. 5 6
  20. 7 9
  21. 3 7
  22. ;
  23. data large;
  24. input key l_sat;
  25. cards;
  26. 1 7
  27. 2 3
  28. 2 6
  29. 9 1
  30. 9 3
  31. 7 1
  32. ;

  33. data match ;
  34. array hkey (-4000000 : 4000000) _temporary_ ;
  35. do until ( eof1 ) ;
  36. set smal end = eof1 ;
  37. if missing (hkey(key)) then hkey(key) = s_sat ;  /*第一个do-unitl:将表smal中的key加载到key-index*/
  38. end ;
  39. do until ( eof2 ) ;
  40. set large end = eof2 ;
  41. s_sat = hkey(key) ;       
  42. if s_sat > . then output ;  /*第二个do-unitl:在large中搜索每个key,匹配的话,就将其输出来*/
  43. end ;
  44. stop ;
  45. run ;
  46. 值得注意的:1)在smal中的变量s_sat,必须用s_sat=hkey(key)的计算然后output.否则会很诡异的bug.2)saml中的key有重复观测,自动只保留第一条,重复的观测行被删掉。
  47. Key-indexing缺点:key-index必须是有限的整数。而且存储这些key-index,如果key-index是很大的数的话,那么存在这些index是要消耗很大的内存的。从而就有了bitmapping,它存储key-index是以bits存储的。减少了空间。
  48. 2)bitmapping, bitmapping是key-indexing的一个进步。在此省略。
  49. 3)hashing
  50. [color=Red]还在更新中[/color]
复制代码

评分

参与人数 1威望 +1 统计币 +10 贡献 +10 收起 理由
275932488 + 1 + 10 + 10 支持原创,赞一个!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 支持支持1 反对反对
2
发表于 2012-1-31 22:56:22 | 只看该作者
年过了,都开始上班了
3
 楼主| 发表于 2012-2-8 11:12:44 | 只看该作者
winsentess 发表于 2012-2-7 17:15
hash,好样的,先顶再看

写得不详细,写得也不好,还没写完。近期有点小忙。等忙完了把它完善。:  )
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


免责声明|关于我们|小黑屋|联系我们|赞助我们|统计211 ( 闽ICP备09019626号  

GMT+8, 2025-4-19 11:45 , Processed in 0.079991 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表