1. 如何理解数据仓库?
数据仓库 是 一个面向主题的,集成的,相对稳定的,反应历史变化的数据集合,用于支持管理决策。
2. OLAP 和 OLTP的基本概念 和 区别?
Oltp 联机事务处理,就是我们通常所说的关系型数据库,记录了实时的增删改查数据。
Olap 联机分析处理,是数据仓库的核心,是对oltp的历史数据进行加工,分析处理,用于处理商业智能,决策支持等重要的决策信息。
区别:
1.oltp 是明细的数据,olap 是汇总数据
2.oltp 记录实时的数据,olap 包含2-3年历史数据
3.oltp 可以进行增删改查操作,olap 只支持查询。
3. Bw中数据存储的最小单位是什么?他分为哪几种。哪一个用来存放主数据,主数据分类?
最小单位:infoobject
分类:特征和关键值,特征存放主数据,分为属性,文本和层级。
4. 什么是bw星形结构,与传统星形结构有什么区别?
Bw星形结构:中间一张事实表,周围连接维度表,维度表中存放了主数据sid,通过主数据sid连接到主数据的属性表,文本表和层级表。
区别:
传统星形结构维度表中存放了维度键值属性,bw星形结构中维度表中存放了主数据的sid,通过sid连接到主数据的属性,文本和层级,通过sid,可以实现多语言支持,主数据共享。
5. 如何理解bw etl的过程?
Bw的etl数据抽取,就是把从r3和外部系统或者文件中的数据通过一定的转换关系抽取到我们bw端所建的信息立方体中进行分析。
6. ETL的基本操作步骤。
1) 创建datatarget(infoobject,dso,infocube)
2) 创建数据源
3) 建立转换关系
4) 建infoobject,数据抽取到psa
5) 建dtp,从psa抽取数据到datatarget
7. DSO 与 cube 的区别。
1).从结构上,dso 是一张二维表,cube 是多维的星形结构
2).从数据上,dso存放的明细数据,cube存放汇总的数据
dso支持覆盖和累加,cube只支持累加。
Dso主要用于存储数据,cube一般用于出报表
8. Dso的分类,之间的区别,
三种:标准dso,写优化dso,直接更新dso
区别:标准dso后台有三张表,new表,active表和changelog表,数据加载时首先进入new表中,激活以后,从new表进入active 和changelog表,new表数据清空。
写优化dso 只有active表,数据不需要激活,一般用于数据量比较大时,数据抽取数据快
直接更新dso 只有active表,数据不需要激活,通过api获取数据。
9. 标准dso对应后台哪三张表,数据是如何加载的?
new表,active表和changelog表,数据加载时首先进入new表中,激活以后,从new表进入active 和changelog表,new表数据清空。
10. Dso的recordmode。
N—new 项
‘’—后项
X---前项
R—翻转项
D—删除项
A—附加项
11. Dao 和 cube 分别支持哪些镜像?
Dso:前项,后项;后项;附加项;删除项;反转项
Cube:前项,后项;附加项;反转项;
12. Cube的分类,虚拟cube的特点以及使用条件。
Cube:物理存储数据的cube 和 虚拟存储数据cube。
Virtualprovider:直接访问数据源,不需要从psa抽取。实时性要求高,但是数据量不大。
使用前提条件:
1. 数据源必须支持直接访问
2. 报表需要从sap源系统中获得即时的数据
3. 只有很少数量的数据被传输
4. 使用该查询的用户数量要少。
13. Cube的优化。
分区(物理分区,逻辑分区),聚集,压缩,索引,统计
14. Cube对应的后台表,压缩后表中数据如何变化。
Cube对应的后台表有f表和e表,f表是事实表,e表压缩表。
压缩后f表数据进入e表,f表数据清空。
15. 如何创建multiprovider 和 infoset ,他们之间的区别。
Multiprovider:选中需要使用的cube或者dso,选中所需维度拉入multiprovider中,然后分别进行识别,激活。
Infoset:选择所需2个或者2个以上的dso或者cube,然后建立之间的关系,join或者left outer join,保存,激活。
相同点:
两者都是虚拟信息提供者,本身不存储数据,只是提供了一个跨不同数据对象的一个数据视图。
不同点:
Multiprovider的连接类似于union,infoset 类似于join,一个infoset最多能有10个join。
Multiprovider可以选择infoset,反之不行。
16. Query:中如何理解限制性关键值,计算型关键值,对关键值进行限制与限制性关键值的区别。
限制性关键值:对关键值使用某一特征进行限制。如按时间对订单量进行限制。
计算型关键值:用基本关键值,限定关键值,计算后得到结果的关键值。
17. 如何压缩结果行,如何创建例外报警和条件
压缩结果行:选中 右击 属性 结果行处理。
有三种方式:从不压缩—总是显示
仅带一个值—显示一个,有汇总的才会有一个。
总是—不显示
18. 导航属性与显示属性的区别,如何设置导航属性
导航属性可以用于维度分析而显示属性只能用于辅助信息的显示,不能用于分析。
在特征的属性标签页里面有个设置是否为导航属性的开关,可以进行设置。设置以后,在cube中可以选定导航属性。
19. 如何理解数据集市和open hub
数据集市:可以将cube或者dso作为一个数据源提供给其他bw系统使用,并且不同的bw系统之间必须建立关联。创建时生成一个以8+data target名称的数据源。
Open hub:把data target的数据导出可以形成一个文本文件,提供给其他系统来用。
20. 数据源增强的步骤。
21. 如何创建自定义数据源。
1. Rso2 创建 自定义数据名称
2. 填写数据源描述信息以及选择应用组件
3. 选择从db视图/表,query或者function module 提取,定义提取结构,保存
4. 修改提取结构,设置选择或者隐藏,转换字段。
5. 设置delta 增量方式,保存。
6. bw复制数据源。
22. 数据源增强的4个function 分别用于什么时候。
Exit_saplrsap_001:定义业务数据
Exit_saplrsap_002:定义主数据属性或者文本
Exit_saplrsap_003:bw 1.2版本用于增强文本,2.0以后被002替代。
Exit_saplrsap_004:定义层级
23. i_step 分别有哪些值,及使用规则。
I_step = 0 用于权限检查。
I_step = 1 屏幕打开前赋值
I_step = 2 屏幕打开后变量赋值
I_step = 3 校验
24. LO后勤抽取步骤
1. 传输数据源(rsa5安装激活数据源)
2. 维护提取结构(lbwe)
3. 维护数据源(lbwe)
4. 复制和激活sap bi中的datasource(bw)
5. 维护数据目标(dso,cube)(bw)
6. 维护datasource和数据目标之间的转换
7. 创建数据传输流程
8. 激活提取结构(lbwe)
9. 删除setup table,填充setup table(sbiw)
10. 选择更新方法
11. 增量初始化infpackage
12. 必要时,计划v3集中运行
13. 增量上载infopackage。
25. Abr 与 aie 的区别
Abr 支持新项,前项,后项和反转像
Aie只支持后项,所以模型选择上,只支持aie的数据源,psa上层只能选择dso,支持abr的数据源既可以选择dso也可以选择cube。
26. Fi 与 Lo 数据抽取的区别。
1. Fi数据抽取时直接从r3后台表取数据,不需要设置setup table,
lo数据抽取时需要删除/填充setup table,full和初始化时从setup table 取数据。
2. fi数据源增量抽取采用pull的模式,根据时间戳进行增量抽取。
Lo数据源增量抽取采用push的模式,增量数据根据delta queue获取。
27. Fi 存放增量更新时间戳的 后台表
Bwom2_timest 增量抽取时间戳
Bwfi_aedat 存放最后抽取的时间戳
28. LO后勤抽取中数据是如何加载到delta queue中的。
首先,系统删除并填充setup table 后,bw端建立初始化infopackage,并进行抽取数据到psa后,detla增量机制就已经建立好了。
其次,在lbwe中设定好更新方式,
当采用 直接更新 时,当r3端application table中产生了一条新的凭证后,该凭证不仅保存到了后台表中,也直接更新到了delta queue。
当采用队列化更新时,设定job的执行时间,当r3端产生了一条新的凭证,该凭证信息会直接保存到抓取队列中,lbwq 查看抓取队列中数据,等待job执行后,数据会从抓取队列中进入到delta queue中。
当采用无序v3更新时,设定job的执行时间,当r3端产生了一条新的凭证,该凭证信息会直接保存到update table中,lbwq 查看update table中数据,等待job执行后,数据会从抓取队列中进入到delta queue中。
29. 三种更新抽取方式的区别。
当采用 直接更新 时,当r3端application table中产生了一条新的凭证后,该凭证不仅保存到了后台表中,也直接更新到了delta queue。
当采用队列化更新时,设定job的执行时间,当r3端产生了一条新的凭证,该凭证信息会直接保存到抓取队列中,lbwq 查看抓取队列中数据,等待job执行后,数据会从抓取队列中进入到delta queue中。
当采用无序v3更新时,设定job的执行时间,当r3端产生了一条新的凭证,该凭证信息会直接保存到update table中,lbwq 查看update table中数据,等待job执行后,数据会从抓取队列中进入到delta queue中
30. 什么是处理链,如何创建,处理链发生错误后如何处理
就是一个JOB(计划),设置一个时间,让系统在后台自动执行。
Rspc 创建 处理链,BW官方处理链标准流程:
错误处理:查看监控日志,查找错误,修复以后,执行修复或者重复功能。
31. 数据加载中非法字符如何处理
Rskc 处理
32. MM,SD,FI模型中使用过的数据源以及后台表。
33. 2lis_03_bx,2lis_03_bf,2lis_03_um 三个数据源的区别以及加载时的先后顺序。
2lis_03_bx 存放盘点数据
2lis_03_bf 存放明细数据
2lis_03_um 发票校验
加载时,首先初始化加载2lis_03_bx,然后加载2lis_03_bf,最后加载2lis_03_um
34. 使用过的abap代码。
内表的基本操作,read 读,modify 更新,Loop 循环,append 插入
Select 查询等等。
35. 使用过哪些例程,分别用于什么时候。
开始例程,结束例程,专家例程,field routine
开始例程:转换关系执行前,用于清理数据。
结束例程:转换执行后,用于赋值。
专家例程:建立后,转换关系连线消失,所有转换关系通过abap代码实现。使用比较少。
Field routine:对某一个字段进行转换赋值。
36. 如何理解error stack
当数据加载的过程中有错误数据时,错误数据会被存放到error stack中,在error stack中可以看到错误日志以及可以修改错误数据,修改后,创建error dtp ,并执行,修改后的错误数据会通过error dtp从error stack中加载到datatarget中。
37. 采购,销售基本业务流程。
采购:
1. 提交采购申请给采购部门,采购部门决定采购需求。
2. 采购部门比较采购货源,与供应商进行询价报价
3. 选定供应商,下采购订单。
4. 采购订单处理
5. 采购订单跟踪
6. 收货/库存管理
7. 发票校验。
销售:
1. 售前活动
2. 销售订单处理
3. 拣配
4. 发货过账
5. 出具发票
6. 应收账款
38. 采购模型中如何理解寄售和外协加工业务,如何保证报表的数据只是 “标准订单”的数据。
寄售:在出采购订单报表时是不包含此类型订单,在出报表时应分开处理。
流程:与供应商洽谈价格和条款,对供应商下寄售采购订单,寄售收货入库(不计库存管理),消耗供应商寄售产品,对供应商进行寄售结算。
外协加工:该订单费用为加工费,和一般订单不同,出具报表时应对其考虑细节。
流程:与供应商洽谈加工费和加工bom,下外协采购订单,发料给供应商,加工产品收货,同时计算消耗多少加工材料,发票校验。
根据凭证类别 是 f 或者 l,凭证类型 是 Nb 来出 标准订单。
39. 销售模型中报表需统计未发货的数量,如何统计,使用哪些数据源。
计算未发货:根据采购订单的目标数量 – 已发货数量
数据源:2lis_11_vaitm 采购行项目 2lis_12_vcitm 交货行项目
40. 请求号如何传输。
开发机à测试机:可以由开发人员自己来传输,也可以回答由basis来做
测试机à生产机:basis来做,开发人员填写传输申请单,表明传输内容,时间,原因,传输到位置,经项目经理批准后,交basis处理。
41. 数据加载过程中缺少了数据如何处理?
查看开始例程和dtp过滤器,看是否进行过数据过滤。
Bw权限
信息对象
0comp_code---业务浏览器---相关权限打钩---激活
user---role---权限
pfcg(角色维护)---创建角色---权限---更改授权---人工的---权限参数
维护---维护字段值---RRMX,SU53,RSA!---保存
生成
SU01 用户维护创建角色
rsecadmin 分析权限管理
主题:用户访问query最基本的权限
Query
变量
变量种类
1.特性值变量
用变量取代特性值,比如可选择的岗位目录,会计时间,报表显示货币等 。
2.文本变量
如:发生人事变动时间
3.层次结构变量
4.层次结构节点变量
5.公式变量
如:当年与上年的差额
查询设计的关键要素--变量--处理方式(1)
1.用户条目/缺省值
可以被用于各种变量,传送用户输入的或者设定的默认值
如:利润中心结构节点变量
2.替换路径
通常用于文本,公式和特性值(基于另一个查询结果取值)
3.客户退出
利用sap后台留给客户的接口进行计算,适用于各种变量
在sap标准退出中无法实现的功能,例如:输入年月的上个月所对应的年值
查询设计的关键要素--变量--处理方式(2)
4.sap出口 (客户不能定义)
在business content中发布
sap预先编制的后台处理变量
如:当前月份等
5.权限
适用于特性值类和结构节点类变量
根据用户拥有的权限得到相应的对象取值
Bw传输过程
se01 se09 传输过程请求
BD3--BTR--BP3
手工收集--转到--对象目录--创建请求;
统一收集--拷贝技术名称--传输连接--转换--选定对象(技术名称查找)--传输选择--显示(清单)--(数据源)传输对象(小车图标)
se09--释放--(小车图标)
stms --传输管理系统--(小车图标)输入概览--选中测试系统(双击)--import queue--
(双向下箭头图标)望远镜右边--import request(ctrl f11)--输入传输请求
bw传输
数据源传输
数据源传输一般在我们激活数据源结构及进行相应设置的时候就已经挂在某一个包或请求号上,只需要释放传输即可。
bw端传输
delta
delta 仓库 两部分 1. 修改的、新增的
2.上次成功的
delta 库的清空: 做两次抽取
增量更新方式:
增量队列 delta queue 方式
时间戳 time stamp 方式
delta queue 增量队列
原系统中的一个存储区域,存储了两类数据:
原系统中自从上次增量抽取后产生的新数据或更改数据
上一次增量抽取的数据(用于传输失败后的重传操作)
查看增量队列
RSA7
delta type
delta type 是决定了原系统中的数据如何传送到更新队列中的delta queue
两种方式
Push Mode 推模式
Pull Mode 拉模式
增量类型决定了采用哪种增量方式
Push Mode
当事物保存时(列入输入一个销售合同),增量数据将直接被自动保存到增量队列中
se16查看table:RODELTAM
DELTATYPE列值为 D
Pull Mode
只有bw端做delta抽取时,数据才从应用中传输到增量队列中
se16查看table:RODELTAM
DELTATYPE列值为 E
增量操作前需要考虑的问题
数据源是否支持增量更新
数据源采用何种增量更新 (决定了我们使用何种data target)
RSA6查看指定数据源是否支持增量更新
查看数据源使用的增量类型
SE16查看表ROOSOURCE,DELTA列的取值
DELTA METHOD
ABR
ABR采用前镜像,后镜像和反转镜像的更新方式,既支持覆盖又支持累加,所以数据源可以更新到dso或者cube
AIE
AIE采用后镜像模式,只支持覆盖,不支持累加,故只是用于dso,如果要加载到cube中,需先通过dso再转到cube
在FI-AR/AP中此种增量处理方式应用较多
ADD
ADD只支持累加,采用的是附加镜像的更新方式,所以既可以更新到dso又可以更新到cube
V3 update mode
V1同步更新模式,即凭证产生就更新增量,与业务数据同步更新
V2异步更新模式,就如一个两步的操作一样,第一步业务凭证更新了,然后在更新第二步的数据源增量表
V3异步更新模式,与V2的区别在于它的更新时通过后台事件来触发的,既定一个任务定是收集增量并更新至增量表
V3无序列化,凭证无序,对于覆盖模式是致命的,所以dso不能用v3
怎样进行初始化:当infopage 运行到时候,delta队列就建立了,这个和setup table 没有关系
setup table 是怎么回事儿: 在LO(logistic ,后勤)的抽取中,extractor不允许直接操作应用表,也许是为了方式读写的冲突,也许是为了保证凭证的安全,也许是为了减轻负载,反正就是不行,所以就得在initialization的时候delta然后fill setup table。仅限于LO的数据源。
FI的为什么不用setup table:因为FI的数据可以直接从table里抽取。
RSA7(delta queue),这是虚拟的,真实存放数据的是SMQ1(out bound queue)
delta 机制
time stamp
我们的R/3系统提供了这么一种功能,来标记新旧数据的差别,可以通过Time stamp,Calendar Day,Numeric Pointer来标注。
设置方法
1.数据源要提供字段,用来填充delta specific field
几张表:
roosprmsc 要了解这张表 ,还需要知道一个概念叫做LUW 逻辑单元
rsreqdone 看这些请求号
PSA
delta queue 1.delta (RSA7查看delta queue 结构
2.delta repeat SMQ1查看内容)
V3 update table sm13 job
V2 extraction queue (lbwq) job INT/FULL INT 带数据/不带数据
V1
SETUPTABLE 删除填充(SBIW) 查看RSA3
LO数据源
删除 S1DEL_IND <> ‘’ 的记录
仅保留S1PROCKEY =
DELETE SOURCE_PACKAGE WHERE /bic/s1del_ind <> ''.
DELETE SOURCE_PACKAGE
WHERE /bic/s1prockey <> '000' AND /bic/s1prockey <> '001'
AND /bic/s1prockey <> '010' AND /bic/s1prockey <> '011'
AND /bic/s1prockey <> '020' AND /bic/s1prockey <> '021'
AND /bic/s1prockey <> '004' AND /bic/s1prockey <> '005'
AND /bic/s1prockey <> '014' AND /bic/s1prockey <> '015'
AND /bic/s1prockey <> '024' AND /bic/s1prockey <> '025'
AND /bic/s1prockey <> '009'
AND /bic/s1prockey <> '019'
AND /bic/s1prockey <> '029'.
安全提示:您的好友正在异地登录,如果有涉及财产的操作,请一定先核实好友身份。查看详情
尧哥 13:40:59
DATA: it_s1ccg101 TYPE TABLE OF /bic/as1ccg10100,
is_s1ccg101 TYPE /bic/as1ccg10100.
SELECT /bic/s1po
/bic/s1po_itm
/bic/s1docdate
calday
calweek
calmonth
calmonth2
calquarter
calquart1
calyear
fiscper
fiscper3
fiscyear
/bic/s1purorg
/bic/s1vendor
/bic/s1doccate
/bic/s1doctype
FROM /bic/as1ccg10100
INTO CORRESPONDING FIELDS OF TABLE it_s1ccg101
FOR ALL ENTRIES IN RESULT_PACKAGE
WHERE /bic/s1po = RESULT_PACKAGE-/bic/s1po
AND /bic/s1po_itm = RESULT_PACKAGE-/bic/s1po_itm.
SORT it_s1ccg101 BY /bic/s1po /bic/s1po_itm.
LOOP AT RESULT_PACKAGE ASSIGNING <RESULT_FIELDS>.
READ TABLE it_s1ccg101 INTO is_s1ccg101
WITH KEY /bic/s1po = <RESULT_FIELDS>-/bic/s1po
/bic/s1po_itm = <RESULT_FIELDS>-/bic/s1po_itm
BINARY SEARCH.
IF sy-subrc = 0.
<RESULT_FIELDS>-/bic/s1docdate = is_s1ccg101-/bic/s1docdate.
<RESULT_FIELDS>-calday = is_s1ccg101-calday.
<RESULT_FIELDS>-calweek = is_s1ccg101-calweek.
<RESULT_FIELDS>-calmonth = is_s1ccg101-calmonth.
<RESULT_FIELDS>-calmonth2 = is_s1ccg101-calmonth2.
<RESULT_FIELDS>-calquarter = is_s1ccg101-calquarter.
<RESULT_FIELDS>-calquart1 = is_s1ccg101-calquart1.
<RESULT_FIELDS>-calyear = is_s1ccg101-calyear.
<RESULT_FIELDS>-fiscper = is_s1ccg101-fiscper.
<RESULT_FIELDS>-fiscper3 = is_s1ccg101-fiscper3.
<RESULT_FIELDS>-fiscyear = is_s1ccg101-fiscyear.
<RESULT_FIELDS>-/bic/s1purorg = is_s1ccg101-/bic/s1purorg.
<RESULT_FIELDS>-/bic/s1vendor = is_s1ccg101-/bic/s1vendor.
<RESULT_FIELDS>-/bic/s1doccate = is_s1ccg101-/bic/s1doccate.
<RESULT_FIELDS>-/bic/s1doctype = is_s1ccg101-/bic/s1doctype.
ENDIF.
ENDLOOP.
原文:http://www.cnblogs.com/omygod/archive/2011/09/09/2172103.html