SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 828|回复: 9
打印 上一主题 下一主题

求教大数据merge效率的问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-4-26 14:07:14 | 只看该作者

求教大数据merge效率的问题

两个数据集进行merge,一个为主表数据较大(billion级别record,20-30variables),另一个从表数据较小(thousands级别record,<=5variable)当对两个表进行merge或者bridge的时候,使用哪种方法的效率更高呢?
我现在能想到的有
proc sql
data merge(with and without index)
hash (内存有限,不确定)
proc format cntlin and put format
求大牛指点一下,哪种方法的效率最高,能排个顺序就更好了,多谢!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-4-27 03:23:08 | 只看该作者

Re: 求教大数据merge效率的问题

what your datasets looks like and what your target is(append two datasets together, or update some values, or add variables,...).
usually, proc sql is better than data step for huge data, also, proc sql can sort the data in the same time.
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2011-4-27 06:58:22 | 只看该作者

Re: 求教大数据merge效率的问题

这个问题令我想起自己四年以前的一个面试:可以讲一下data step和proc sql的优劣吗?我说:“。。。。sql更高效。。。”。面试的人没有发表很多的意见,只是说:“really,really?”。现在我的回答差不多是,“在更多的情况下,data step要比proc sql更令人满意舒适。”我估计面试的人依然会说:"really, really?".在sas公司有个叫ms。sql的人,她把sql和data step做了大量的比较,但是从来没有明言哪个更好。不过她似乎暗示,如果其中的一个效率很不好,那么另外的一个也一定不行。
京剧
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2011-4-27 10:56:59 | 只看该作者

Re: 求教大数据merge效率的问题

:)sql和data step,还是要看具体问题的 <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2011-4-27 17:40:39 | 只看该作者

Re: 求教大数据merge效率的问题

sql和data set感觉SAS公司的两个团队,并且他们一直在PK。

关于这两个的效率问题,SASor上的讨论也由来已久:

2004年    <!-- m --><a class="postlink" href="http://sasor.feoh.net/viewtopic.php?f=1&amp;t=461">http://sasor.feoh.net/viewtopic.php?f=1&amp;t=461</a><!-- m -->
2006年    <!-- m --><a class="postlink" href="http://sasor.feoh.net/viewtopic.php?f=1&amp;t=102">http://sasor.feoh.net/viewtopic.php?f=1&amp;t=102</a><!-- m -->
2006年    <!-- m --><a class="postlink" href="http://www.feoh.net/sasor/viewtopic.php?f=1&amp;t=2549">http://www.feoh.net/sasor/viewtopic.php?f=1&amp;t=2549</a><!-- m -->

2008年 我的一个[url=http&#58;//saslist&#46;com/sxlion/2008/05/06/%E4%B8%A4%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86%E7%9A%84%E6%93%8D%E4%BD%9C%EF%BC%8D%E6%A0%B9%E6%8D%AE%E4%B8%80%E4%B8%AA%E5%85%B3%E9%94%AE%E8%AF%8D%E4%B8%BB%E8%A1%A8%E8%BF%9E%E6%8E%A5%E4%BB%8E%E8%A1%A8/:odvubdg7]博文[/url:odvubdg7]也提到这个问题。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2011-4-27 17:44:41 | 只看该作者

Re: 求教大数据merge效率的问题

当然,还有很多,没找出来。

我印象中,一直在PK,随着时间,各有输赢。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2011-5-3 22:07:18 | 只看该作者

Re: 求教大数据merge效率的问题

<!-- m --><a class="postlink" href="http://www.nesug.org/proceedings/nesug05/pm/pm16.pdf">http://www.nesug.org/proceedings/nesug05/pm/pm16.pdf</a><!-- m -->
<!-- m --><a class="postlink" href="http://support.sas.com/resources/papers/proceedings09/071-2009.pdf">http://support.sas.com/resources/papers ... 1-2009.pdf</a><!-- m -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2011-5-4 07:01:49 | 只看该作者

Re: 求教大数据merge效率的问题

这个跟硬件配置很相关

同样是SAS 9.22,我给我同事写了两个程序做many-2-many table lookup

一个用DATA STEP key=,一个用SQL,在不同配置的机器上表现差别很大。我用了两台来试验,一台是普通PC,一台是unix box,高端I/O,双路4核服务器。我的数据是一个表150万个观测值,大约50万个不同的key值,另外那个表大约90万个观测值,平均每个key30个观测。输出总观测数还是跟主表一样,主要是对应所有附表的值进行一些累计的计算。

PC上DATA STEP 用时2分36秒,几乎一半是CPU时间,SQL用时4分半钟,CPU只用了30秒;
在服务器上DATA STEP用时1分58秒,99%几乎全是CPU时间(可见I/O之强悍);而SQL只用了32秒,但是CPU时间是1分16秒,因为SQL可以多线程。

所以还是要看硬件配置。

不过楼主这种一个超大的表对一个很小的表做查找的话,个人经验,HASH,数组,INDEX,format都可以很快,SQL不一定,要具体问题具体分析,因为有可能SAS没能够优化SQL的查找,尤其9。2以后FORMAT也用的hash表,而不是树来查找了。

个人愚见
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
9#
 楼主| 发表于 2011-5-4 22:07:42 | 只看该作者

Re: 求教大数据merge效率的问题

TO oloolo, 学习了。 <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
10#
 楼主| 发表于 2011-5-4 22:07:42 | 只看该作者

Re: 求教大数据merge效率的问题

TO oloolo, 学习了。 <!-- s:lol: --><img src="{SMILIES_PATH}/icon_lol.gif" alt=":lol:" title="Laughing" /><!-- s:lol: -->
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-10 09:35 , Processed in 0.106436 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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