我试图理解sas和hadoop之间的集成。据我所知,像procsql这样的sas进程只能针对sas数据集工作,我不能针对hadoop节点上的文本文件发出procsql。对吗?
如果是,那么我需要使用一些etl作业首先从hdfs中取出数据并将其转换为sas表。但是如果我这样做,我将失去hadoop的并行处理能力,对吗?
那么,集成sas和hadoop并仍然使用hadoop的并行处理能力的理想方式是什么呢?
我知道您可以从sas内部调用map reduce作业,但是map reduce作业可以在sas中编写吗?我想不是。
1条答案
按热度按时间sf6xfgos1#
sas全球论坛2015的主要推动之一实际上是hadoop和teradata连接的新选择。
FEDSQL
以及DS2
sas9.4中的新特性,部分是为了使sas能够更好地与hadoop一起工作。您可以直接在hadoop节点中执行代码,也可以直接在sas中执行更高效的处理。假设您拥有最新版本的sas(9.4 ts1m3),您可以查看sas发行说明(截至2015年9月3日的最新版本;将来这将指向更高版本)。包括以下信息:
在sas9.4的第二个维护版本中,sas-in-database-code-acceleratorforhadoop运行ds2数据程序以及数据库中的线程程序。增加了几个新功能。http包使您能够构造一个http客户机来访问web服务,而新的记录器使您能够记录http通信量。在示例化sqlstmt包时,可以使用连接字符串参数。
sas fedsql是ansi的sas专有实现sql:1999 core 标准。它提供了对新数据类型和其他ansi1999核心遵从性特性以及专有扩展的支持。fedsql提供了数据访问技术,它提供了一种可伸缩的、线程化的、高性能的方式来访问、管理和共享多个数据源中的关系数据。fedsql是一种与供应商无关的sql方言,它访问来自各种数据源的数据,而不提交特定于数据源的sql方言中的查询。此外,单个fedsql查询可以以多个数据源中的数据为目标,并返回单个结果表。fedsql过程使您能够从基本sas会话提交fedsql语言语句。sas9.4的第一个维护版本增加了对内存数据存储(mds)、saphana和sashdat数据源的支持。
在sas9.4的第二个维护版本中,sasfedsql支持hive、hdmd和postgresql数据源。数据类型可以转换为其他数据类型。您可以将dbms特定的子句添加到CREATEINDEX语句的末尾,并以压缩格式编写sashdat文件。
在sas9.4的第三个维护版本中,fedsql增加了对hawq和impala发行版的支持,增强了对impala、新数据类型等的支持。
hadoop支持
sas9.4的第一个维护版本允许您使用spd引擎通过hdfs读取、写入和更新hadoop集群中的数据。此外,现在可以使用hadoop过程将配置属性提交到hadoop服务器。
在sas9.4的第二个维护版本中,对访问hadoop的spd引擎的性能进行了改进。基本sas和sas/access的sas hadoop配置指南可从support.sas.com第三方hadoop站点获得。
在sas9.4的第三个维护版本中,使用新的分布式锁管理器增强了对hdfs中存储的数据的访问,因此使用hadoop配置文件更容易访问hadoop集群。
除此之外,还有大量关于这个问题的文献和论文;例如,sas连接器hadoop的文档。