Professional Documents
Culture Documents
CD161 CN
CD161 CN
This presentation outlines our general product direction and should not be relied on in making a
purchase decision. This presentation is not subject to your license agreement or any other agreement
with SAP. SAP has no obligation to pursue any course of business outlined in this presentation or to
develop or release any functionality mentioned in this presentation. This presentation and SAP's
strategy and possible future developments are subject to change and may be changed by SAP at any
time for any reason without notice. This document is provided without a warranty of any kind, either
express or implied, including but not limited to, the implied warranties of merchantability, fitness for a
particular purpose, or non-infringement. SAP assumes no responsibility for errors or omissions in this
document, except if such damages were caused by SAP intentionally or grossly negligent.
SQLScript 基础
R语言集成
应用函数库(AFL)
用户自定义方法
触发器
SQLScript最主要的目标:为了能够在HANA数据库内执行大量复杂的计算
从而达到性能最优:
消除了大量数据从数据库到中间层的传输成本
把计算推送到数据库层为了最大限度地发挥SAP HANA内存数据库的优势,例如:列操作, 查询优化和并行执行。
相反,若在中间层处理这些数据,将无法利用这些性能特点。
表现层逻辑
控制逻辑
HANA
计算逻辑
数据 SQLScript
应用层 应用层
代码
传输最小
大数据传输
存在瓶颈 结果集
数据层 数据层
代码
-- Query 3
out_notebook_count = select count(*) as cnt from
:product_texts where "Category" = 'Notebooks';
Q3 Q4
-- Query 4
out_pc_count = select count(*) as cnt from
:product_texts where "Category" = 'PC';
...
Notebooks PCs
END;
SELECT 语句除了在如下情况下都将并行执行:
在存储过程中有用到任何的本地标量或变量
在同一存储过程中混合读写操作,混合使用DML/DDL
在存储过程中含有命令式逻辑
存在SQL语句结果未分配给某一变量
SELECT on attribute view out = SELECT A, B, C from "ATTRIBUTE_VIEW" out = CE_JOIN_VIEW("ATTRIBUTE_VIEW", [A, B, C])
SELECT on olap view out = SELECT A, B, C, SUM(D) from out = CE_OLAP_VIEW("ANALYTIC_VIEW", [A, B, C]);
"ANALYTIC_VIEW" GROUP BY A, B, C
INNER JOIN out = SELECT A, B, Y, SUM(D) from "COLTAB1" out = CE_JOIN("COLTAB1","COLTAB2", [KEY1, KEY2], [A, B, Y, D])
INNER JOIN "COLTAB2" WHERE "COLTAB1"."KEY1" =
"COLTAB2"."KEY1" AND "COLTAB1"."KEY2" =
"COLTAB2"."KEY2"
LEFT OUTER JOIN out = SELECT A, B, Y, SUM(D) from "COLTAB1" out = CE_LEFT_OUTER_JOIN("COLTAB1","COLTAB2", [KEY1, KEY2],
LEFT OUTER JOIN "COLTAB2" WHERE [A, B, Y, D])
"COLTAB1"."KEY1" = "COLTAB2"."KEY1" AND
"COLTAB1"."KEY2" = "COLTAB2"."KEY2"
SQL Expressions out = SELECT A, B, C, SUBSTRING(D,2,5) FROM proj_tab = CE_COLUMN_TABLE("COLUMN_TABLE"); out =
"COLUMN_TABLE" CE_PROJECTION( :proj_tab, ["A", "B", "C",
CE_CALC('midstr("D",2,5)', string) ]);
bp_addresses =
select a."PartnerId", a."PartnerRole", a."EmailAddress", a."CompanyName",
a."AddressId", b."City", b."PostalCode", b."Street"
from "SAP_HANA_EPM_DEMO"."sap.hana.democontent.epm.data::businessPartner" as a
inner join "SAP_HANA_EPM_DEMO"."sap.hana.democontent.epm.data::addresses" as b
SQL
on a."AddressId" = b."AddressId" where a."PartnerRole" = :partnerrole;
lt_bp = CE_COLUMN_TABLE("SAP_HANA_EPM_DEMO"."sap.hana.democontent.epm.data::businessPartner",
["PartnerId", "PartnerRole", "EmailAddress", "CompanyName", "AddressId" ]);
变量评估
设置断点
• 数据处理和存贮: 数值的和文本的
• 矩阵计算
• 支持Hash表和正则表达式
• 提供专业的数据分析统计函数
• 编程语言:循环,分支, 子程序, 面对对象
Calc. Engine
Join OLAP
R External
OP OP
Packages
ROP (Forecasting,
Parallelism,
statistics, etc.)
RClient
1 Send data SAP RHANA
and R script
Package
AFL在SAP HANA内存数据库中执行。
AFL所带来的便利
AFL提供的算法可以直接应用与项目开发中,无需额外耗费人力财力去实现这些复杂的逻辑算法来满
足客户的业务需求,从而加快项目的开发进度。 AFL 带来更好的性能, 其根据HANA内存数据库特性
量身开发。
• 商业函数库(BFL) 是 AFL中的一大类,主要提供商业金融相关的分析算法。
• 预测分析库(PAL) 是AFL中的另一大集合,主要提供预测分析,数据挖掘领域的分析算法。
AFL 技术框架包括
HANA Clients (App Server, Analytics Technology, etc)
Application Functions
– AFL底层由C++实现
– PAL和BFL已经在HANA SPS05发布,并且在SPS06中加入了数 SAP HANA
据质量函数库(Data Quality Functions Library)
SQLScript
• 集成于HANA数据库当中
• 支持多元输入变量
• 内嵌计算引擎(calculation engine)
帮助客户解决。。。。。。
重用这些内置函数,减少额外开发成本。
快速构建应用
提高计算性能 利用内存技术真正实现实时计算。
提高商业解决能力 把决策支持功能以一种简明扼要的方式带给用户
• 集成于HANA数据库当中
• 支持的算法: K-Means, 关联分析, C4.5 决策树, 线性回归, 指数平滑…
帮助客户解决。。。。。。
深入了解业务 更深层次的商业视角: 关联规则, 客户群体, 或销售预测
科学决策 让决策更具科学性
提高计算性能 利用内存技术真正实现实时计算。
提高商务解决能力 把决策支持功能以一种简明扼要的方式带给用户
通过图形界面,更快速方便地进行AFL开发。
AFL 模型存储在资源库中,以便其他开发者使用。
功能列表
模型编辑器
SQL示例代码
参数设置
通过SQL 控制台对用户自定函数进行管理。
目前仅支持用SQL Script编写用户自定义函数。
只读,支持两种变量的输出:
表变量
标量
• 支持多个输入参数
• 返回一个表变量
• 支持各类表间操作
• 支持多个输入参数
• 返回一个标量
• 支持表达式
• 不支持游标,CE function 和数组操作
• 输入参数不能是表类型
• 一种特殊的存储过程,一旦某一数据库事件发生
(例如一条记录被插入某张表中),这一存储过
程将被自动触发执行
• 通过SQL 控制台对触发器对象进行管理。
感谢您的参与。