拆解Open ODS View和HANA Composite Provider

这两个也不是新面孔了。

那么OODS和HCPR到底他俩怎么用?既然大家都是虚拟的,不占地方。那这俩infoprovider到底有啥区别?

首先就是目的不同。

HCPR是可以用Union和Join。也就是老的Multiprovider和InfoSet。Union就是说两个数据集的行能被互相添加到彼此身上,然后你有我有大家有。Join就是把一个表的列加到另一个表上,但前提是两个表的相同列中有相同值做过滤。

HCPR这么牛哄哄的,那OODS是来干啥的?

OODS的能力就是它能连外部的表。比如你有外围系统的数据存在Oracle数据库上,毕竟咱现在BW都在HANA上了。那么我既想去拿它的数据,又不想多存一份在我BW这里。那咱就可以用SDA连接到Oracle数据库,然后创建一个虚拟表。(这个是Basis帮忙建连接)

基于这个虚拟表,我们就可以建一个OODS ,至此你也就有了一个到Oracle表的虚拟连接。在这个OODS上建的query在运行时就会去直接访问外部表。当然如果你想保存数据,那就接着建ADSO就好了。不保存的好处就是省空间,等于省钱。但是如果数据量很大,显然性能不会太好。

HCPR

先到HCPR瞅一瞅,你新建的时候就能发现,它能添加两种part provider:

Infoprovider或者HANA view,也就是说calculation view能用来混合建模。你想用的前提是得把你的HANA attach到这个BW project里面。

 选择union或者join,这些part provider都会在跑query的时候被关联起来。

Union的话,你想加多少个part provider都行,但是前提是,第一个part provider得是交易数据,此后你能union很多次。

 Union里面是把相似的数据源的字段映射到相同的一个字段里。这些字段得是相同数据类型,长度,技术名的。描述不一定要一样。描述会从第一个映射的数据源的字段读取。

建好的HCPR看output里能看到所有字段的属性,这些字段按逻辑组分类。这个组可以自己修改的。 

OODS

OODS的主要功能是连接外部数据,可以是以fact表或者主数据或者文本。

也就是说你有在外部数据库的数据想要在BW里面用,但是又不想冗余保存一遍在BW里面,那么你就设置一个SDA连接到外部数据库,创建一个Virtual Table。

建好了一个Virtual Table之后,也就是你对外部数据库的表有了一个虚拟连接,然后就可以去建一个OODS了。如果在这个OODS上直接建query,那就会在query执行的时候直接访问外部数据库表。这样就是剩下HANA空间了,不用保存一遍,但是数据量大的话会耗时。但是如果你想保存一遍到BW上,比如保存历史数据的话,那就在OODS上建一个CP,然后在CP和ADSO间建转换和DTP,把数据拉到ADSO里面。

建一个OODS,可以选择很多数据源类型。

DataSource(BW)

的话,就是得有个数据源,可以是ECC的数据源,也可以是你自己建在BW里面的一些数据源。

 Database Table or View就是在HANA数据库里的表,选这个会把你带到下一层:

如果选了

existing BW Source System

呢,就是你的BW对应的HANA系统了。接下来是到你的BW对应的HANA系统去选Schema了。建好了之后呢,就可以

 这个HANA Source System   其实是早就建好了的。你自己可以RSA1看到的,在eclipse里面也能看到的:

看不到就自己建一个。

 

 建好了之后就可以从HANA系统进去选择Schema下面的表来建OODS了。

如果选的是

Owner/Schema

就是直接去HANA下面的所有Schema去找表了。那么这两个有啥不同呢?

如果你选现存的BW源系统,它其实是指向保存BW的表的HANA数据库Schema,然后可以去这些Schema下面去选表。

 如果选Owner/Schema,也就是你会先选一个Schema,然后选表。但是之后,你还得选一个源系统。没有源系统BW没办法搞数据。

那么这个源系统要么是选一个这个Schema已经在的源系统,要么就是新建一个。

 这些都搞好了之后,就能建一个OODS了,如果你建好了,激活出现错误:

 那么可能你的用户没有在这个Schema上建OODS的权限。

让你的HANA管理员给你GRANT Select on Schema 'Schema_name' to 'user_name'.

如果选了

Virtual Table Using SAP HANA SDA

那就是连接到外部表。不需要数据源了。提前建好SDA数据源,然后就和从HANA的表建OODS一样的步骤。这个让有CREATE REMOTE SOURCE权限的Basis做。作为BW只要有CREATE VIRTUAL TABLE的权限就行。

 

如果选了远程数据源,那就是远程连接。最后也需要建一个源系统。这个咱没搞过。

ADSO 

选了Data Store Object的,意义何在呢?

不是说去拿外部数据的么。

有个用处就是把底层基于字段的ADSO的一些数据类型给转换掉,咋转换呢,就用和infoobject关联来转换。这是一个用法吧。

 

 Transformation

接下来,要建基于转换的OODS。首先这个OODS不能被用做转换的源或目标。那么我们需要建一个数据源。数据源之上要有一个infosource,在数据源和信息源之间建一个转换:

接下来要建的OODS就是基于这个数据源和信息源之间的转换了。

 

 不过这种做法有什么用处?就是用来传输virtual table的数据?我觉得还不如直接建一个OODS来的快。具体用法还有待考究。

接下来看一个OODS的不同语义。

如果一开始你选的是Fact表,也就是你要把它当做交易数据来用。那你建好之后可以把source fields拖到view fields里面的不同的folder下面。特性关键值和单位等等。你也可以关联特性字段到一些infoobject。这样在跑query的时候能用到信息对象的导航属性和主数据啥的。也可以设置Key,最后用成ADSO的主键。

 如果选的是主数据表,那就是说它的功能是个主数据表,在HCPR里面你就可以把它关联到一些信息对象上,这个信息对象能够用你建的主数据OODS的属性了。

那么在这个主数据OODS里面,有个Representative Key Field是用来和HCPR做关联的。除了这个Key Field之外的其他字段你都能用作导航属性。

这个主数据OODS的folder就和主数据表有点像了,你可以把对应的source字段放到时间相关的folder下面,或者是单位,文本folder下面。同时,还有除了Represetative Key Field之外的Charecteristic Key是用来做联合主键的。compounding的意思。

如果是选了Text的呢,那就是跟主数据的OODS有一点不一样了,Text的会包含Language这个folder。

 

也就是他能设置语言相关。

但是Text的OODS就只能在HCPR的信息对象关联里面用到。这个里面也要用到关联字段:Representative key Field.用来和HCPR的字段做关联。

而且Text字段要放到Short Text或者Medium Text等的folder下面。

Text的OODS还可以被添加到主数据的OODS下面去。在General下面New就能把Text加到主数据里,或者把主数据加到Text里。

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/13814.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【OS实验】【学习笔记】

文章目录 零、实验参考实验1 熟悉实验环境实验2 操作系统的引导实验3 系统调用实验4 进程运行轨迹的跟踪与统计实验5 基于内核栈切换的进程切换实验6 信号量的实现和应用实验7 地址映射与共享实验8 终端设备的控制实验9 proc文件系统的实现Reference 零、实验参考 &#x1f52…

【华为机考】专题突破 第一周:单调栈 739 、503 、901、84

刷题顺序参考于 《2023华为机考刷题指南:八周机考速通车》 前言 单调栈:分为单调递增和单调递减栈。(栈内元素成递增或者递减性): 单调递增栈:从栈底到栈顶数据是从大到小,即 栈内的元素从栈顶 到栈底 是递增的&#x…

【手把手刷CCF】202303-2-垦田计划100分(超简单思路,含详细解释注释与代码)

文章目录: 故事的开头总是极尽温柔,故事会一直温柔……💜一、🌳代码如下:二、🌵解题思路❤️❤️❤️忙碌的敲代码也不要忘了浪漫鸭! 故事的开头总是极尽温柔,故事会一直温柔……&am…

SpringBoot集成WebSocket实现及时通讯聊天功能!!!

1&#xff1a;在SpringBoot的pom.xml文件里添加依赖: <!-- websocket --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency> 2&#xff1a;在配置中…

java 拼接字符串的方法

1.拼接字符串的方法&#xff0c;先要将字符串转化为数字类型&#xff0c;再根据需要拼接。这样可以避免直接拼接导致的错误。 2.将字符串转化为数字类型&#xff0c;这个就是一个循环。可以使用循环的方法&#xff0c;但是循环次数不宜太多&#xff0c;否则容易出错。 3.可以使…

ERTEC200P-2 PROFINET设备完全开发手册(7-1)

7. 配置模块及自定义模块 7.1.1 PN设备的基本模型 初次接触PN的开发者&#xff0c;最容易出现的错误就是设备的实际配置与TIA的组态不一致。为了开发的过程更加顺利&#xff0c;非常有必要掌握PN设备的基础模型。PN设备的基本模型如下图描述&#xff1a; PN设备的基本构成是插…

论文的总体结构及质量控制

要写出一篇高质量AI领域的论文&#xff0c;首先要搞清楚论文由哪几部分组成&#xff0c;即论文的总体结构。同时&#xff0c;还要了解AI论文的质量评价与质量控制的指标。这样做的目的是为了弄明白AI论文的结构以及什么样的AI论文才是好的论文。 通常一篇AI论文的总体结构主…

ZVL3网络分析仪

ZVL3 Rohde&Schwarz ZVL3 3G矢量网络分析仪|罗德与施瓦茨 9KHz至3GHz 罗德与施瓦茨Rohde&Schwarz 性能特点&#xff1a; 频率范围 9kHz至3GHz/6 GHz(典型值为5kHz) 测量时间(201个测量点&#xff0c;以校准的双端口) <75ms 数据传输(201个测量点) 在100Mbit/sLAN…

DFS与BFS|树与图的遍历:拓扑排序

深度优先搜索DFS DFS每次往最深处搜&#xff0c;搜到叶子节点就返回&#xff0c;然后继续搜&#xff0c;特点&#xff1a;走到头才返回&#xff0c;返回并不是返回最开始&#xff0c;而是每次返回上一层之后&#xff0c;再看这一层能不能往下搜 DFS有回溯和剪枝。返回上一层的过…

OpenCV实例(七)汽车检测

OpenCV实例&#xff08;七&#xff09;汽车检测 1.概述2.代码实例3.代码功能 作者&#xff1a;Xiou 1.概述 对于图像和视频检测中的目标类型并没有具体限制&#xff0c;但是&#xff0c;为了使结果的准确度在可接受范围内&#xff0c;需要一个足够大的数据集&#xff0c;包括…

《Spring MVC》 第四章 域对象、视图、转发和重定向

前言 介绍Spring MVC的域对象、视图、转发和重定向 1、域对象共享数据 Spring MVC 提供了多种域对象共享数据的方式&#xff0c;其中最常用的方式如下&#xff1a; 1.1、使用 Servlet API 向 request 域对象中共享数据 服务端代码&#xff1a; RequestMapping("toLo…

为什么企业都需要搭建搭建一个内部知识库?

企业内部知识管理是指企业通过各种手段收集、整理、管理和传播企业内部的知识&#xff0c;以提高企业的竞争力和创新能力。在实践中&#xff0c;企业内部知识管理往往需要建立一个内部知识库&#xff0c;以更好地实现知识的共享和管理。本文将从以下几个方面探讨为什么企业内部…

【SWAT水文模型】ArcSWAT输入准备

ArcSWAT输入准备 1 必需的ArcSWAT空间数据集1.1 数字高程模型&#xff08;DEM&#xff09;1.2 土地覆盖/土地利用类型1.3 土壤数据 2 可选的ArcSWAT空间数据集2.1 DEM Mask2.2 Streams2.3 User- Defined Watersheds 3 ArcSWAT表格和文本文件3.1 子流域出口位置表(dBase 表)3.2 …

掏空腰包,日子难过,机缘转岗软件测试,这100个日夜的心酸只有自己知道...

我今年27岁&#xff0c;原本从事着土木工程相关的工作&#xff0c;19年开始有了转行的想法... 大学刚毕业那年&#xff0c;我由于学的是土木工程专业&#xff0c;自然而然的从事了和土木工程相关的工作&#xff0c;房贷、车贷&#xff0c;在经济的高压下&#xff0c;当代社会许…

Idea 配置 maven 离线使用

首先&#xff0c;项目中的依赖已经下载到本地仓库&#xff0c;在没有网络或者没办法连通公司的maven仓库时&#xff0c;需要配置离线使用。 1. 配置 setting.xml 在 maven 使用的 setting.xml 文件中&#xff0c;加入以下配置。 默认在 maven安装目录下的 conf 文件夹下 。 &…

没看错!一行python代码就可以帮您获取图片中的文字信息

最近工作中有需求需要用python对图片中的文字进行识别&#xff0c;调研了一下&#xff0c;选择了tesseract&#xff0c; 目前在github上有50.5k个star&#xff01;python可以调用&#xff0c;安装也十分方便&#xff0c;pip install pytesseract 即可。如果没有Pillow 包&…

关于yolov8的一些理解

文章目录 1.前言2.创新点及工作3. 网络结构3.1 BackBone3.1.1 C2F3.1.2 结构微调3.1.2 SPPF 3.2 Neck3.3 Head 4.正样本匹配策略4.1 静态分配策略&动态分配策略4.2 TaskAlignedAssigner 5.损失函数5.1 概述5.2 Distribution Focal Loss 6.总结 1.前言 YOLOv8 是 ultralyti…

vCener 配置 vSan 网络

文章目录 1. 准备2. 创建vsan网络2.1 创建 vSphere Distributed Switch &#xff08;vds&#xff09;2.2 添加管理主机2.3 添加 networking 3. 删除3.1 删除 vmkernel adapter3.2 删除 hosts3.3 删除 DSwitch 1. 准备 三台物理机搭建 exsi一台部署 vcenter 管理三台 exsi每台物…

如何计算连续变量的熵

背景 做特征选择时&#xff0c;有时候会用到计算特征的信息熵&#xff0c;可是离散的好计算&#xff0c;但连续的呢&#xff1f;按照把连续变量离散的方法设置阈值点吗&#xff1f;好像比较麻烦&#xff0c;需要排序&#xff0c; 计算阈值。没有能自动的方法吗&#xff1f; 找…