全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2640 1
2013-01-24
High Performance Analytic 是SAS近年来最重视的一个方面,因而也推出了自己的一系列产品和平台(SAS HPA), 准确的说它不是一个产品,而是应该叫做suit, 里面涵盖了软件和硬件,并蕴含了一套完整的高性能计算的方法论。这里主要从软件方面进行介绍。

软件:
SAS 之前的版本就已经实现了统计和数据挖掘中的很多经典算法,而SAS HPA中不同的是如何将这些算法准确,高效,完整的移植到High performance的平台上来,
说白了就是如何在并行计算下实现这些算法。
像回归,决策树,神经网络等这些算法已经移植到这个平台上了,但还有很多没有实现,以后会逐步迁移过来。
如果把High Performance Analytic单纯的认为是这些算法的优化和提升,就未免太不拿豆包当干粮了,除了这些算法的优化外,数据分析前的数据准备(ETL)也需要进行优化和改造,
同时数据分析结果的呈现也要实现High Performance. 最后还有一点很重要,就是人的思维也要High Performance,HPA带来了一场软硬件的变革,更需要一场思维的变革。
并不是说有了High Performance,就可以不用抽样了,就要换模型,永远记住,所有技术变革都仅仅是一个工具,人,才是这场变革的主角。

回到正题,那SAS如何实现并行计算呢,采用了三种方式,
  • In-Database:就像这个名称所暗示的那样,SAS好比一个插头,插在Teradata这样高性能的database上,并利用其多节点多线程的优势,将数据分散到各个节点,然后上面进行计算。SAS的程序如何在数据库中运行的呢?其实就是以UDF(User Defined Function)的机制进行运算的,类似使用sql server是,用户可以通过C#之类的语言写一个自定义函数的dll,并注册到数据库中,这样就可以像使用系统函数一样使用它了。SAS就是将SAS的Language转换成C语言包,并注册到数据库中供用户使用。但这里有两个很明显的缺点:
    • UDF存在于用户的数据库中,大数据的计算下,会占有数据库的资源,从而影响数据库日常的管理维护。
    • SAS Language到C程序包的转换依赖于各种数据库的底层接口,不同的数据库各不相同,而且同一数据库也存在版本之间的差异,这些都将SAS置于一个十分被动的地位,即使再好的合作伙伴也难免有翻脸的时候,虽然说没有永远的敌人,只有永远的利益,你还是有变成敌人的危险的。

  • Alongside Database:这一方式正是为了克服上面所说的缺点,它和In-Database的主要区别就是不再进行SAS Language和C程序之间的转换了,而是开发了SAS的第二代语言SAS DS2。SAS将自己的内核安装部署在Dababase上的各个节点上,DS2就是运行在这些内核上的,而不是以UDF的方式插入Database中,这就是名称中alongside的含义,SAS内核和DataBase是相互协作,但彼此又不依赖。(过不下去就离!)这一招有点像当年微软借力IBM起家一样,之前是白给,后来就反客为主了。
  • In-Memory:这个主要是针对数据展现的,一般进行展现的数据都不会太大,所以将这一部分固化到内存中就可以极大的提高查询的速度。SAS中有一个VA(visual analytic)的产品就主要使用了这种技术,可以快速的返回查询结果并生成各种图表,千万级的数据只需要1秒,甚至更少的时间。当然,这要求服务器的内存比较大,但在国外几十G到100多G的内存的机器还是很常见的,而且价格也比较便宜。


以上就是SAS在软件上的一些动作,而硬件上主要还是通过与第三方的数据库厂家进行合作,像Teradata和GreenPlum,这些在高性能数据库领域比较有优势的公司合作,利用他们数据库分布式计算的特点,再结合SAS在分析上的优势,从而实现"高级分析+分布式计算"的强强联合。



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-1-29 23:43:20
先留着以后看..
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群