拆解Open ODS View和HANA Composite Provider

news2024/11/18 12:18:08

这两个也不是新面孔了。

那么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里。

 

 

 

 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UniLM模型简单介绍

目录 一、概要 二、深入扩展 2.1 预训练任务 2.2 模型精调 一、概要 如果将基于Transformer的双向语言模型(如BERT模型中的掩码语言模型)与单向的自回归语言模型(如BART模型的解码器)进行对比,可以发现&#xff0c…

常见的注册中心Nacos、Eureka

常见的注册中心 1.Eureka(原生,2.0遇到瓶颈,停止维护) 2.Zookeeper(支持,专业的独立产品。例如:dubbo) 3.Consul(原生,GO语言开发) 4.Nacos …

中国社科院与美国杜兰大学金融管理硕士项目——在职读研的日子里藏着我们未来无限可能

人生充满期待,梦想连接着未来。每一天都可以看作新的一页,要努力去成为最好的自己。在职读研的光阴里藏着无限的可能,只有不断的努力,不断的强大自己,未来会因为你的不懈坚持而发生改变,纵使眼前看不到希望…

算法---统计参与通信的服务器

题目 这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表示没有。 如果两台服务器位于同一行或者同一列,我们就认为它们之间可以进行通信。 请你统计并返回能够与至少一台其…

【C语言】调试工具GDB简述

一、说明 GDB(GNU Debugger)是UNIX及UNIX-like下的强大调试工具,可以调试ada, c, c, asm, minimal, d, fortran, objective-c, go, java,pascal等语言。本文介绍GDB启动调试的方式。 二、Ubuntu上安装gdb。 在root用户权限下: roo…

【通过蓝牙滚动文本和Android控制】

【通过蓝牙滚动文本和Android控制】 1. 概述2. MAX72193. 电路原理图4. MAX7219基本Arduino代码5. 88 LED矩阵滚动Arduino代码6. 用于通过蓝牙控制 88 LED 矩阵的安卓应用程序1. 概述 我们将做三个例子,第一个例子我们将解释MAX7219的基本工作原理,在第二个例子中,我们将看…

scala控制抽象之传名参数(名调用)

我们在用scala定义函数时,一般参数都是各种类型的值,这是常见的值调用 但偶尔也有需要把代码块作为参数传入的情况(名调用) 匿名函数经常可以作为函数的参数传入,非匿名函数也行(函数作为返回值返回就更常见…

都说软件测试不行了,真的是这样吗?

最近在各大平台经常会听到大家说这样的话: 现在公司都不招人,测试员根本找不到工作 简历石沉大海、面试机会也没有,软件测试是不是不行了 软件测试行情到底如何? 作为软件员在如今的情况下又该怎么做? 其实现在所…

ai生成文章 免费-自动生成文章

原创文章自动生成器 随着人工智能技术的快速发展,越来越多的创新产品得以应用到我们的日常工作中。其中,原创文章自动生成器是一种高效、智能的工具,它可以帮助企业快速生成符合要求的优质文章。在本文中,我将向您介绍原创文章自…

数据结构算法leetcode刷题练习(1)

给定一个三角形 triangle ,找出自顶向下的最小路径和。 每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一…

4.2 插值多项式的求法

学习目标: 我会采取以下几个步骤来学习插值多项式的求法: 学习预备知识:插值多项式的求法需要掌握一定的数学知识,例如多项式函数的定义、导数、微积分、线性代数等等。因此,学习插值多项式的求法前,需要先…

掘金AIGC时代,开发者更需要什么样的大模型?

当前,火热的AI大模型领域需要一些冷思考。 自去年年底ChatGPT掀起一轮AIGC热潮以来,国内科技企业扎堆发布大模型和类ChatGPT产品。截止2023年4月,已公开宣布发布或即将发布AI大模型的企业达数十家。多模态大模型的能力不断迭代,市…

2023年自动化测试真有那么重要吗?内卷严重,测试技能水涨船高......

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 学习自动化测试有…

应用现代化语境下的技术重塑:谁在帮助企业自我革命?

文丨智能相对论 作者丨沈浪 在数字经济时代,应用现代化正在成为一个共识。在IDC发布的《IDC FutureScape:全球云计算2022年预测-中国启示》报告中,应用现代化就位居首位。同时,IDC也预测,到2025年,数字经…

更新 WinForms | InitializeComponent 的现代代码生成

当你使用 Visual Studio 中的 WinForms Designer 来创建一个 WinForms 表单或用户控件时,它并没有像 XML 或 HTML 那样的特殊定义或文件格式来表示用户界面。从一开始,WinForms 使用的唯一格式就是程序代码。在 WinForms Visual Basic 项目中定义的表单或…

ONES 联合中国信通院发布《中国企业软件研发管理白皮书》

4月20日,由 ONES 与中国信通院联合发起的《中国企业软件研发管理白皮书》发布会暨「软件质效沙龙一北京站」正式举行。发布会上,ONES 与中国信通院云计算与大数据研究所的各位领导、行业专家及众多软件从业者一起,聚焦研发管理热点动态&#…

【hello C++】内存管理

目录 前言: 1. C/C内存分布 2. C语言动态内存管理方式 3. C内存管理方式 3.1 new / delete 操作内置类型 3.2 new和delete操作自定义类型 4. operator new与operator delete函数 4.1 operator new与operator delete函数 5. new和delete的实现原理 5.1 内置类型 5.2…

杭州乐芯CNC 机器人采集方法汇总

杭州乐芯CNC数据采集方法及支持的系统 一,杭州乐芯CNC 机器人采集方法汇总 1,采用SDK开发包采集,比如发那科 FANUC \三菱 、海德汉、大隈OKUMA(O-API)、华中数控、凯恩帝、沙迪克、牧野电火花、台湾宝元、上海来钠克…

怎么把avi文件转换成mp4视频格式,4个高能方法

怎么把avi文件转换成mp4视频格式? 当您下载到avi格式的视频文件时,您可能会选择将其转换为MP4格式的文件。 avi是一种由微软开发的多媒体容器格式,尽管现在已经被认为是老旧的技术,但由于其简单易懂的开发API和Windows的通用性&am…

【CSS3】CSS3 2D 转换 - rotate 旋转 ② ( 使用 rotate 旋转绘制三角形 )

文章目录 一、使用 rotate 旋转绘制三角形二、代码示例 一、使用 rotate 旋转绘制三角形 使用 rotate 旋转绘制三角形 的原理 : 先绘制正方形 , 为该正方形设置边框 , 只设置 右侧 和 下方的 边框 , div {width: 40px;height: 40px;border-right: 2px solid black;border-bott…