第9章 用Java,Lua,Python和REST API开发基于SAS Viya的应用:SAS Viya开放平台介绍

Posted SAS知识

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第9章 用Java,Lua,Python和REST API开发基于SAS Viya的应用:SAS Viya开放平台介绍相关的知识,希望对你有一定的参考价值。

上一篇文章介绍CASL编程中CASL函数集和输出,今天我们介绍SAS Viya开放平台。

SAS的分析平台从SAS Viya开始具备了更好的开放性,使得众多熟悉第三方开发语言例如Python,Java和Lua等的用户和数据分析人员可以使用这些语言访问SAS Viya提供的分析服务。同时,SAS Viya还提供可用于数据分析的REST Services,让更多的不熟悉SAS语言的用户能够通过REST API来访问SAS Viya的分析服务。

本章将详细介绍如何运用Java,Lua和Python调用SAS Viya分析服务并开发基于SAS Viya的应用。本章将提供详细的样例,帮助大家理解并快速掌握使用这些语言调用SAS Viya的强大分析能力,并且以Java语言为例,详细讲解如何调用SAS Viya提供的REST Services。

在第一章介绍SAS Viya平台时,就提到了开放性。开发人员不但可以使用SAS语言进行应用的开发,而且可以利用SAS Viya所提供的第三方开发语言接口使用Python、Java、Lua、以及REST API进行应用的开发。正是这种开放性,给编程人员和数据科学家们提供了更多利用SAS业界领先的丰富且强大的分析功能的机会,也使得其他系统可以集成这种分析能力以丰富和完善其本身的功能。


分析即服务(A3S)和SAS Viya开放平台介绍

广为大家熟悉的软件即服务(SaaS)为最终用户提供了非常到位的便利。软件使用者无需关心软件的安装和维护,只需要将时间和精力重点放在如何使用软件提供的服务来解决自己的业务问题。而分析即服务 (Analytics as a Service,A3S) 是对软件即服务(SaaS)的进一步升级,最终用户只需关心如何使用分析服务进行数据分析,而不用关心分析软件的运行和维护。

SAS Viya就提供了这种分析服务,使用该服务的用户不用关心该服务是如何部署、如何配置、和如何维护的。

对不同的语言,SAS Viya提供的分析服务是通过不同的技术来实现的,具体如下。

  • 对Lua和Python语言,SAS Viya基于SWIG技术,通过SWAT客户端,提供了丰富的API供Lua和Python使用。

  • 对Java语言,SAS Viya提供了客户端jar文件。通过集成ANTLR runtime, Google Protocol Buffers,Json等技术,为Java语言提供了丰富的API调用。

  • 对其他支持REST API的第三方语言,SAS Viya提供了REST Services。使得这些语言可以通过REST Services的调用来获取SAS Viya的分析能力。和对Java、Lua、Python的支持不同的是,该技术需要第三方语言准备Json请求数据以调用REST API,并且需要解析REST Services的Json格式的响应数据以获取分析的结果。

  • 对其他语言,比如R,Ruby等, SAS Viya也会提供相应的访问接口。本书的后续版本将继续介绍。


SWAT 架构介绍

SWAT (SAS Scripting Wrapper for Analytics Transfer),是用不同语言开发的用于访问CAS并与之交互的一系列模块的通用名称,比如SWAT Lua客户端、SWAT Python客户端等。SWAT是基于SWIG (Simplified Wrapper and Interface Generator)开发的。简单地说,SWIG是一种开发工具,它能够帮助使用C或者C++开发的软件与其它各种高级编程语言进行嵌入联接。SWIG能应用于各种不同类型的语言包括常用的脚本编译语言(例如Python和php),和非脚本编译语言(比如C#和Lua)。

SAS提供了SWAT Python和SWAT Lua客户端。具体的下载和配置方法,请参考9.3和9.4章节的描述。

以Lua为例,在配置SWAT Lua客户端之后的环境中,其目录结构为:

第9章 用Java,Lua,Python和REST API开发基于SAS Viya的应用(一):SAS Viya开放平台介绍

可以看到SAS提供的SWAT的支持文件,包括.so文件、swat.lua文件、还有第三方的程序包,比如middleclass.lua、csv.lua、ee5_base64.lua等。

打开swat.lua文件,可以看到该文件提供了非常多的函数。其中包括第9.3.3节用到的数据加载函数upload。SWAT封装了比较多的底层技术细节,提供给开发人员的是简洁易用的API。


基于ACTION及ACTION集合的数据挖掘和机器学习

在SAS Viya平台中,把所有提交给CAS服务器处理的任务都称为ACTION。ACTION按照实现的功能进行了分组,进而定义每个组为一个ACTION集合。

SAS Viya为第三方开发语言提供的分析服务也是通过不同的ACTION来完成的,比如进行描述性统计的ACTION summary,进行回归分析的ACTION regression。最终用户可以通过CASL、JAVA、,Lua、Python、或者REST API来调用ACTION进行数据分析。

基于ACTION和ACTION集合,SAS Viya为外部语言的调用提供了清楚易识别的命名规则。

在使用Lua调用描述性统计分析的ACTION时候,其命名规则为s:simple_summary,其中,s为Lua客户端和CAS服务器端建立的连接对象,可以通过该对象调用CAS服务器端的ACTION。simple为ACTION集的名字,summary为ACTION的名字。进行回归分析的命名规则为s:simple_regression。使得编程人员很方便的识别并使用ACTION进行统计分析。

对Python开发人员来讲,调用ACTION也是相同的命名规则,比如使用Python进行描述性统计分析的语法为conn.simple.summary。

在使用REST API对ACTIOIN进行调用时,其endpoint中也是很清楚地写出了ACTION集和ACTION的名字。比如使用REST API进行描述性统计分析的endpoint中就包含了ACTION集合和ACTION的名字simple.summary:

String endpoint = "http://host:8777/cas/sessions/session UUID/actions/simple.summary";

Java客户端稍微有些不同。在用Java客户端API调用ACTION进行统计分析的时候,需要初始化ACTION类,该类的名字虽然不和ACTION完全一致,但也可以很清楚地看出要使用是哪一个ACTION。比如,在进行描述性统计分析时,需要调用summary ACTION,初始化的类为SummaryOptions:

SummaryOptions options = new SummaryOptions();

而进行回归分析的时候,需要调用regression ACTION,初始化的ACTION类为RegressionOptions:

RegressionOptions options = new RegressionOptions();

具体的ACTION和Java类的对应关系,在9.2.2节有更详细的描述。

最后,对每个不同ACTION,其参数有较大的不同。具体细节可以参考SAS Viay提供的ACTION以及其具体的参数使用文档,可以在下面的链接中找到:

https://developer.sas.com/apis/cas/actions.html



本文结束,下一篇文章将介绍用Java开发基于SAS Viya的应用

第9章 用Java,Lua,Python和REST API开发基于SAS Viya的应用(一):SAS Viya开放平台介绍

查询往期文章,请回复下列关键字:

深入解析】==>【深入解析SAS】系列文章

第9章 用Java,Lua,Python和REST API开发基于SAS Viya的应用(一):SAS Viya开放平台介绍

小贴士


读者可以从以下链接获取SAS公司提供的免费版环境:


SAS大学版(SAS® University Edition)是SAS为在校大学生免费提供的基于虚拟机和网页的SAS环境。回复关键字【大学版】,可以查看详细介绍。

下载路径:

https://www.sas.com/en_us/software/university-edition/download-software.html


SAS学术版(SAS® OnDemand for Academics)是 SAS 为学术届人士免费提供的、在线的、基于SAS 私有云上的应用服务环境。

用户首先需要注册,然后按照提示信息就可登录。

注册路径:

http://odamid.oda.sas.com


本文转自《SAS Viya》


如若转载本文,请在文章顶部标注 “本文转自SAS知识 (ID: SASAdvisor),摘自《SAS Viya》”


第9章 用Java,Lua,Python和REST API开发基于SAS Viya的应用(一):SAS Viya开放平台介绍


第9章 用Java,Lua,Python和REST API开发基于SAS Viya的应用(一):SAS Viya开放平台介绍

作者介绍

潘红莲

《深入解析SAS — 数据处理、分析优化与商业应用》作者之一。现任索信达(北京)数据技术有限公司高级技术经理,提供基于大数据分析、数据挖掘和机器学习,以及知识图谱的风险和营销解决方案。曾先后就职于SAS软件研究开发(北京)有限公司和SAS中国公司,分别担任软件分析师和高级咨询顾问,提供SAS解决方案及产品的技术验证和最佳实践、售前支持和专业实施服务。在SAS Viya和SAS 9智能平台其架构、系统管理、安全性、可用性规划和实现等方面有着丰富的知识和经验。参与过多家银行大数据分析平台、反欺诈系统和营销平台的规划和实施。


杨光辉

现任SAS软件研究开发(北京)有限公司解决方案架构师。对SAS基于内存分析和基于Hadoop的高性能分析的产品的架构有着深入和独到的理解。对SAS产品的企业级应用和部署有着丰富的经验。在承担研发工作的同时为SAS项目在中国市场的实施提供技术支持,为多个大型银行Hadoop大数据项目提供了专家级的支持和帮助。在加入SAS研发(北京)之前,有丰富的基于Linux系统的开发经验,对Linux操作系统架构有深入的理解。


张涛

现任SAS软件研究开发(北京)有限公司高级经理。在承担产品研发工作的同时,负责提供SAS解决方案对本地市场的技术支持,负责SAS解决方案项目在中国本地市场的咨询与实施,并且为国内外多个客户解决方案项目提供咨询与实施服务。对SAS解决方案和SAS技术实现有着丰富的知识和经验。有超过10年SAS研发工作经验。在加入SAS研发(北京)之前,有多年J2EE开发经验。


夏坤庄

《深入解析SAS — 数据处理、分析优化与商业应用》第一作者, SAS软件研究开发(北京)有限公司客户职能部总监。在承担研发工作的同时,夏及其团队负责对SAS非英语市场提供技术支持,并且与在美国及其它地区的团队一起,服务于SAS的SaaS/RaaS业务,同时提供和验证关于SAS产品和技术在应用领域的最佳实践。在加入SAS软件研究开发(北京)有限公司之前,夏就职于SAS中国公司,历任资深咨询顾问、项目经理、首席顾问、咨询经理,拥有丰富的咨询和项目实施经验。在长期的从业经历中,不但为SAS的金融行业客户成功实施了众多深受好评的项目,而且在近年领导实施了非金融行业的多个大数据分析项目。


SAS知识    微信:SASAdvisor     长按二维码关注

欢迎大家投稿,一起分享SAS的点滴

投稿邮箱:  sasadvisor@outlook.com


以上是关于第9章 用Java,Lua,Python和REST API开发基于SAS Viya的应用:SAS Viya开放平台介绍的主要内容,如果未能解决你的问题,请参考以下文章

Redis | 第9章 Lua 脚本与排序《Redis设计与实现》

Lua_第 14 章 Packages

java_第9章:多线程

python数据分析实战-第9章-数据分析实例气象数据

第9章 多态和抽象

python核心编程第9章习题:9-7