数据连接
数据连接是个大前提,搞好了连接才能继续。
但是要想连你的系统数据到SAC,需要多方努力:
这就需要个项目管理经理了,要把大家都拉过来,开个研讨会。
毕竟,这个东西一个人实在搞不起来。
根据我们的以下需求:
功能
数据隐私
数据量
选实时连接还是数据导入
然后再考虑我们的数据连接方式:
实时连接还是复制数据
如果是实时连接。那你的数据就还在自己的数据库上,无论你自己的数据库是SAP云平台,SAP S4/HANA 云,还是BW等等,都不需要复制到SAC上。
数据隐私有保障。
而且数据量没限制。query在后台跑,不过query里面可以设过滤器来限制。
如果你要用其他的功能:
你需要把数据导出到SAC上。SAC会保存这些model和数据。在SAC内部给这些model添加权限。
像Analytic / Planning model都会生成一个account type的model。
这些保存在SAC上的数据是加密保存的。
数据量有限制的:100列,800000行,维度: planning model:250000
analytic model: 超过250000那维度只能刻度。
dimention with atrributes: 150000
dimention with geo enrichment: 200000
dimention in hierarchy: 150000
hierarchy depth: 1000
实时连接怎么弄
这个图就是浏览器和我们的数据库以及SAC的交互。
实时连接的时候,SAC提供的是业务逻辑,我们建query,这个就是metadata了,包括我们的query的结构,但是不会包括data具体数据。
也就只有行名,列明,过滤器等等。具体数据还是在我们下面的数据源中。
SAC和浏览器交互了这个query结构请求,然后浏览器把这个query请求发送给数据源。数据源把data结果返回给浏览器。返回的结果数据不需要再到SAC上,所以就是数据安全有保障。
中间还有个identity这个东西是SAC默认带的身份识别。
就是说如果你在SAC上建用户和分配角色等等,那就会默认存到这个SAC的IdP上(Identity Provider)
但是用自己的第三方IdP也是可以的。前提是都得支持SAML。
浏览器和IdP之间的交互呢,就是这个SAML参数来交互的。
另外一种情况呢,就是这个浏览器如果在外网。不是内网的话,那就还有一层DMZ隔离区。
中间要用个反向代理。这个我不懂。
端到端的单点登录是用SAML2.0来实现的。
授权
关于授权这点呢,就是说SAC和数据源都得设置成信任同一个IdP.
比如说默认的SAP Could Identity或者我们自己的Active Directory(活动目录)using ADFS( Active Directory Federation Services)活动目录联合服务。
具体这个ADFS 我不懂,依稀听过。但是我不会弄。稀里糊涂的。
也就是说我数据源上的数据安全能被保障。
加密
浏览器到SAC的通信是被加密的。通过反向代理到后台数据源的通信也被TLS加密。这个TLS我也不知道是个啥协议啥的。
所有在SAC上的数据或者metadata都会被加密。
SAC和信息访问服务
Information Access Service(InA)
也用了一个协议,是一个基于REST HTTP的协议。具体是啥我也不知道。
以下数据源都支持。
同源政策和跨资源共享
CORS(cross-origin resource sharing) 跨资源共享。
就是你从浏览器上用SAC这个page就能实时访问数据。
**同源政策是web应用安全模型的一个重要概念。**这个我今天也是第一次听说。
在这个政策下。网页浏览器允许第一个网页中包含的脚本在第二个网页中获取数据。前提是这两个网页有相同的数据源。
对于潜在恶意文档,这个是个关键的安全机制。
这就有个问题,因为你的用户想去另外一个源访问数据(不是SAC),而是BW或者其他的源。
在实时连接的时候,你的浏览器需要去访问SAC的metadata,和HANA或者BW或者universe的后台数据。这就是浏览器去访问了两个不同的源。
那这个跨资源共享机制(CORS),就会允许你去访问除了你的第一要求资源的域之外的第二资源的另一个域。
像是一个链接,一个网页可以自由嵌入跨源网页,图像,样式表,脚本,iframs或者视频。
这样会有一些通信层的东西请求加header啥的,来通信。
你了解他的区别就是说SAC就是用的这个跨资源共享。就是说你就直连这个就行,浏览器直连SAC,你的I的P,后台数据源就**安全的解锁了那个同源策略。**就不用考虑什么网页的安全机制了。
网络和安全设置
在这个配置下,如果你的浏览器是公共网络。那后台数据源服务器必须得设置成白名单,并且授权入栈访问。
出栈访问到SAC和SAP Cloud Identity也得被打开。
至于这个网络上咋搞,跟上面的通信层一样,我也不懂了。
防火墙啥的。不会弄。
浏览器的设置
得允许从sapanalytics.cloud的弹出窗口
允许SAP HANA服务器域的第三方cookies。
CORS不能在HTTPS/HTTP混合方案中。
SAP HANA XS系统的SSL服务证书必须有效并且被浏览器信任。
还必须得匹配SANP HANA系统的完全限定域名。
CORS还得在SAP HANA数据库中被启用。
使用CORS直接实时连接
上图是只在内网访问SAC的连接方式。
上面讲到外网访问的话,那你得设置数据源服务器为白名单,而且授权入栈访问。
从外网到SAC和SAP Cloud Identity的出栈访问也得开。
不过如果直接内网访问,好像就不用管这些了。
但还是有以上的前提:
Prerequisites and Limitations
Mandatory browser settings:
Allow pop-up windows from the SAP Analytics Cloud domain: [*.]sapanalytics.cloud.
Allow third-party cookies from the SAP HANA server’s domain.
CORS does not work in a mixed HTTPS/HTTP scenario. The SSL server certificate of the HANA XS system must be a valid one that is trusted by your organization’s web browsers, and it must match the HANA system’s fully qualified domain name.
SAP HANA: CORS has to be enabled in the HANA database.
最佳方案
为了让基于网页的应用能通过SAP HANA XS服务发送HTTP(S)请求到多租户数据库,必须给配置内部SAP Web dispatcher。这样它才知道基于DNS别名虚拟host该分配哪些request。
在xsengien.ini配置文件中,区分不同租户服务器的URL。指定每个租户数据库的公共URL。
验证是否在客户域名服务中声明了内部SAP Web Dispatcher使用的虚拟主机名。在PSE管理中生成SSL证书会很有用。
以上这段话,对我来说像天书。
超纲了。
我到现在也是完全不知道具体该怎么实时连接数据。
就到这里吧。