1

我试图了解 SAS 和 Hadoop 之间的集成。据我了解,像 proc sql 这样的 SAS 进程只能针对 SAS 数据集工作,我不能针对 hadoop 节点上的文本文件发出 proc sql。这是正确的吗?

如果是,那么我需要使用一些 ETL 作业首先将数据从 HDFS 中取出并将其转换为 SAS 表。但是如果我这样做,我将失去 Hadoop 的并行处理能力,对吗?

那么,集成 SAS 和 Hadoop 并仍然使用 Hadoop 的并行处理能力的理想方式是什么?

我知道您可以从 SAS 内部调用 map reduce 作业,但是可以用 SAS 编写 map reduce 作业吗?我想不是。

4

1 回答 1

2

SAS 全球论坛 2015 的主要推动力之一实际上是连接到 Hadoop 和 Teradata 的新选项。 FEDSQLDS2SAS 9.4 中的新功能,部分是为了让 SAS 更好地与 Hadoop 一起工作。您可以直接在 Hadoop 节点中执行代码,也可以直接在 SAS 中进行更高效的处理。

假设您拥有最新版本的 SAS (9.4 TS1M3),您可以查看SAS 发行说明(截至 2015 年 9 月 3 日;将来这将指向更高版本)。这包括如下信息:

在 SAS 9.4 的第二个维护版本中,用于 Hadoop 的 SAS In-Database Code Accelerator 运行 DS2 数据程序以及数据库内的线程程序。添加了几个新功能。HTTP 包使您能够构建一个 HTTP 客户端来访问 Web 服务,并且一个新的记录器可以记录 HTTP 流量。实例化 SQLSTMT 包时可以使用连接字符串参数。

SAS FedSQL 是 ANSI SQL:1999 核心标准的 SAS 专有实现。它提供对新数据类型和其他 ANSI 1999 核心合规性功能和专有扩展的支持。FedSQL 提供的数据访问技术带来了一种可扩展的、线程化的、高性能的方式来访问、管理和共享多个数据源中的关系数据。FedSQL 是一种供应商中立的 SQL 方言,它可以访问来自各种数据源的数据,而无需在特定于数据源的 SQL 方言中提交查询。此外,单个 FedSQL 查询可以针对多个数据源中的数据并返回单个结果表。FEDSQL 过程使您能够从 Base SAS 会话提交 FedSQL 语言语句。SAS 9.4 的第一个维护版本增加了对内存数据存储 (MDS)、SAP HANA 和 SASHDAT 数据源的支持。

在 SAS 9.4 的第二个维护版本中,SAS FedSQL 支持 Hive、HDMD 和 PostgreSQL 数据源。数据类型可以转换为另一种数据类型。您可以将特定于 DBMS 的子句添加到 CREATE INDEX 语句的末尾,并且可以编写压缩格式的 SASHDAT 文件。

在 SAS 9.4 的第三个维护版本中,FedSQL 增加了对 Hadoop 的 HAWQ 和 Impala 发行版的支持、对 Impala 的增强支持、新的数据类型等等。

Hadoop 支持

SAS 9.4 的第一个维护版本使您能够使用 SPD 引擎通过 HDFS 读取、写入和更新 Hadoop 集群中的数据。此外,您现在可以使用 HADOOP 过程将配置属性提交到 Hadoop 服务器。

在 SAS 9.4 的第二个维护版本中,提高了 SPD 引擎访问 Hadoop 的性能。Base SAS 和 SAS/ACCESS 的 SAS Hadoop 配置指南可从 support.sas.com 第三方 Hadoop 站点获得。

在 SAS 9.4 的第三个维护版本中,通过新的分布式锁管理器增强了对存储在 HDFS 中数据的访问,因此使用 Hadoop 配置文件可以更轻松地访问 Hadoop 集群。

除此之外,还有关于该主题的大量文档和论文;例如, SAS Connector for Hadoop的文档。

于 2015-09-03T19:58:56.653 回答