从程序员到数据科学家:SAS 编程基础 (01)
2017-04-26 00:26
316 查看
SAS是英文Statistical Analysis System 的简称。首先SAS作为一家企业,它是一家由 James Goodnight和 John Sall 成立于1976年,总部位于美国北卡罗来纳州的长青藤软件公司。SAS是全球商业分析软件和服务的领导者,商业智能行业的最大独立供应商。
SAS 作为一种软件系统,它以提供“知的力量”(The Power to Know®)为己任,向全球各行各业提供全面的数据分析软件技术,包括统计分析、趋势预报、预测模型和优化。
SAS 作为一种计算机语言,是专门为数据处理和统计分析而设计的第四代计算机编程语言,主要面向数据操作,分析和报告。SAS自成立40多年来一直在帮助用户将各种数据转化为知识与智慧,发掘企业数据的商业价值。
在开始学习SAS编程之前,有必要了解一下SAS 计算服务的三大核心模块:SAS 语言,SAS 引擎,数据库服务
SAS 语言
用于编写SAS 程序,主要由一系列面向数据操作和分析的代码构成,语言元素主要包括:1) SAS 宏(SAS Macro):包括宏变量和宏函数,实现SAS代码重用,减少重复代码。
2) 数据步(DATA Step):负责数据读入,数据处理并创建SAS 能理解的数据表示(数据集和数据列)。
3) 过程步(PROC Step):负责对数据进行分析,完成各种统计功能和图表功能等。
SAS 语言是跨平台的编程语言,编写好的SAS 程序可以运行在各种主机架构的Linux、Unix、Windows、甚至IBM 大型主机上。SAS 运行环境就像JVM或CLR环境,提供平台无关的执行环境;某种意义上,SAS 公司比Java还早(1985-1989)提出革命性的“主机无关的可移植层”概念,并在其SAS运行环境(内部称为MVA架构:Multi-Vendor
Architecture)使用至今。
SAS运行环境包括一个称为输出传送系统(Output Delivery System,简称ODS)的部分,用于管理SAS 程序的输出(有点类似其他编程语言的I/O),ODS支持三种SAS格式的目标(LISTING,
OUTPUT,DOCUMEN)和多种第三方格式目标(HTML,PRINTER,MARKUP,RTF),用户也可以自定义模板输出,控制分析结果的形态。
SAS引擎
SAS 库引擎(SAS Library Engines)和远程库服务(Remote Library Services)让用户在SAS 代码中可以非常方便地访问外部数据结构、或存储于远程计算机平台(比如各种数据库)的数据。SAS 引擎可以在不同的 SAS 服务器中工作:1) 工作区服务器(Workspace Server):SAS 代码每次提交本服务器运行,都会新建一个SAS 运行环境(对应操作系统的一个进程),称为SAS会话。
2) 存储过程服务器(Stored Process Server):SAS 代码每次提交本服务器运行,会共享SAS作为服务启动时建立的那个SAS会话。
3) 连接服务器(SAS/Connect Server):可以让客户端机器在服务端机器上充分利用资源运行 SAS 程序处理结果,构建“SAS到SAS”的客户端/服务区环境。
4) 网格服务器(Grid Server):SAS应用服务器上用于桥接SAS 应用和SAS网格环境的逻辑服务器,实现将繁重的计算作业分配到网格环境上进行并行执行。
SAS 引擎对用户而言屏蔽了数据访问和执行环境的细节,让用户通过SAS 库(SAS Library)引用需要分析的数据而无需关注存储格式和数据库类型,以及计算资源的形态。因此,SAS 分析代码可以变得非常清晰可重用。
数据库服务
1) 数据访问(Data Access):对于各种各样的数据存在形态和数据库,SAS都提供对应的数据访问服务来保证对特定数据的访问,SAS支持从PC文件到关系型数据库、从分布式文件系统HDFS到云端的数据访问。2) 库内处理(In-Database Processing):SAS为改进系统性能,减少数据在数据库和SAS 之间的移动,加速分析的开发和部署而设计的一种高性能分析平台技术;它采用更加智能化的SQL来增强所选的分析过程,在一些关键用例上将SAS 函数直接部署到数据库内部。
3) 内存分析(SAS® In-Memory Analytics):随着大数据时代的到来,高级分析和可视化分析呼唤对海量数据的大规模并发访问。SAS运行在分布式计算环境(而不是单个机器)的LASR 分析服务器(LASR®
Analytics Server)能够预先将海量数据加载到内存中,提供安全,无状态的只读操作,从而实现对海量数据的分析在秒级完成。2016年,SAS再次创新性地推出了SAS 云分析服务(简称:CAS
- Cloud Analytics Services), CAS是可以SAS运行在云端的、最新的数据管理和分析运行环境,它可以直接对存储在云端(比如亚马逊云)的数据进行能够分析处理。
SAS网格计算(SAS® Grid Computing)、库内计算(SAS® In-Database)和内存计算(SAS® In-Memory Analytics)是SAS高性能分析平台传统上的三大支柱;近40年来,不管计算环境如何变化,SAS一直致力于将最好的分析技术带给用户,为客户提供从数据、信息到知识、乃至智能的“知的力量——The
Power To Know™”。
有了以上这些基础,就让我们以最简单的SAS程序Hello World结束本章,在下一章开始我们的SAS 编程之旅!
data _null_; put "THE POWER TO KNOW"; put "-- Since 1976 --"; run;
相关文章推荐
- 从程序员到数据科学家:SAS 编程基础 (08)- 表达式
- 从程序员到数据科学家:SAS 编程基础 (04)
- 从程序员到数据科学家:SAS 编程基础 (06)- DATA步与PDV
- 从程序员到数据科学家:SAS 编程基础 (05)
- 从程序员到数据科学家:SAS 编程基础 (03)
- 从程序员到数据科学家:SAS 编程基础 (07)- 常量与变量
- 从程序员到数据科学家:SAS 编程基础 (02)
- Java基础(极客)——01、Java编程基础知识入门:变量与数据类型
- SOC之安全事件分析基础01 — 数据采集
- 使用Java API压缩和解压缩数据-Java基础-Java-编程开发
- 数据处理的两个基本问题01 - 零基础入门学习汇编语言38
- 第9讲AE编程基础_数据加载与数据显示
- 01..网络工程师-数据通信基础
- 程序员编程艺术:第十章、如何给10^7个数据量的磁盘文件排序
- 数据类型,运算符和表达式01 - 零基础入门学习C语言02
- 数据类型,运算符和表达式01 - 零基础入门学习C语言02
- 第2章 Java编程基础——FAQ2.09 Java中有哪些数据类型?
- Java中将数据由UTF8转换成GB2312格式-Java基础-Java-编程开发
- 全面理解Java中的String数据类型-Java基础-Java-编程开发
- OpenGL基础图形编程 - OpenGL数据类型和函数名