第一章:Designer简介
- 变量 $INSTALLDIR 是指 Designer 和 Web Intelligence
所使用的数据访问文件的安装根路径。这是带有操作系统子目录的 Business
Objects 安装路径,其中包含 Designer 可执行文件和数据访问驱动程序。
在 Windows 下,$INSTALLDIR = \\...\Business Objects\BusinessObjects Enterprise 12\win32_x86。
2.Universe 是一个包含以下内容的文件:
- 一个或多个数据库中间件的连接参数
- 称为对象的 SQL 结构,映射到数据库中的实际 SQL 结构.对象按类分组.。Web Intelligence 用户既可以看到对象,也可以看到类
- 在数据库中使用的表和联接的模式。。Web Intelligence 和Desktop Intelligence 用户看不到该模式。
3. 类和对象
- 类是 Universe 中的对象的逻辑分组。它表示对象的类别。
- 对象是映射到数据库中的数据或数据派生的命名元素。
对象类型 | 说明 |
维 | 用于分析的参数。维通常与诸如 地理、产品或时间的层次相关。 |
明细 | 提供维的说明,但并不是分析的 焦点。 |
度量 | 传递用于确定维对象数量的数值 信息 |
4.Universe 设计方法
- 业务问题的分析和规划 Universe 解决方案
- 设计模式
- 构建 Universe
- 将 Universe 分发给用户
开发阶段 | 说明 |
准备 |
|
分析 |
|
规划 | 确定项目策略。例如,应创建多少个 Universe、哪些 Universe 应 具有被链接的能力以及被链接的程度。 |
实施 |
|
测试 | 组织一小组用户,最好是 Web Intelligence 的超级用户,这些用 户在一定程度上了解他们期望从Universe 获得的信息。要求这些用 户执行模拟 Universe 的实际使用的彻底测试。 |
部署 | 通过将 Universe 导出到中央管理系统(CMS)资源库来分发 Uni- verse,最终用户可在资源库中访问它们。 |
发展 |
在数据源与用户需求更改和发展时更新和维护 Universe
|
第 2 章 执行基本操作
1、取消激活“快速设计向导”
- 选择“工具” > “选项”
- 清除“显示欢迎向导”复选框
- 清除“文件/新建启动快速设计向导”复选框
- 单击“确定”
2.使 Universe 可供所有 Designer 用户访问
- 验证希望可供所有用户使用的 Universe 并未具有安全连接
- 必须具有安全连接才能将 Universe 导出到 CMS。
- 另存为 选择“为所有用户保存”复选框。
- 可以从文件系统中直接打开 Universe。当您保存此 Universe 时,只会
将它保存到文件系统,而不会在 CMS 中更新此 Universe。此 Universe 的
更新不可供Web Intelligence 用户使用。 - 当导入 Universe 时,会将资源库中的最新可用版本提供给 Designer。
当您完成修改 Universe 时,可将其导出到资源库。CMS 即会被最新的更改
加以更新。
- 选择“文件” > “导出”
- 从文件夹下拉列表框中选择一个 Universe 文件夹。
或
单击“浏览”按钮,并在文件夹浏览器中选择一个 Universe 文件夹。 - 在“组”列表框中单击某个组。
- 在“Universe”列表框中单击某个 Universe。
- 如果想导出其他未打开的 Universe,请单击“添加 Universe”按钮,然
后使用浏览器选择其他 Universe。
- 选择“文件” > “另存为”
- 从“另存为类型”下拉列表框中选择“可移植文档格式 (*.pdf)”
- 选择“工具” > “选项”
- 单击“保存”选项卡
- 在“缺省 Universe 文件夹”文本框中键入文件路径。
或 浏览到包含 .unv 文件的文件夹 - 如果想指定自动保存时间,则选择“自动保存”复选框,然后在“选择
分钟值”框中选择或键入时间间隔数字。
6.设置 Universe 参数
- 标识 Universe
标识符 | 使用方 |
文件名 (8 个字符) | 要引用 Universe 的文件系统和 Web Intelligence。 |
长名称 (35 个字符) | Web Intelligence 用户。Web Intelligence |
说明 | Web Intelligence 用户。 |
唯一的数字 ID | 要标识 Universe 的 CMS。在第 一次将 Universe 导出到 CMS,将为 其分配此数字。 |
- 连接包含三个元素:数据访问驱动程序 连接和登录参数 连接类型
连接和登录参数
参数 | 说明 |
类型 | 连接的类型(个人、共享或安全) 个人连接(不安全):将对数据的访问限制为 Universe 创建者和在上面创建它的计算机。
共享连接(不安全):允许访问所有用户的数据。
安全连接:集中管理并控制对数据的访问。
|
名称 | 标识连接的名称。 |
用户名 | 您的数据库用户名。 |
密码 | 您的数据库密码。 |
在查看时刷新报表期间使用单一 登录 |
选中时,将自动使用用于访问 CMS 的用户名和密码作为数据库登录参 数。 |
使用与 BusinessObjects 用户帐 户关联的数据库凭据 |
选择此选项后,将会强制用户输 入与其 BusinessObjects 帐户关联 的数据库用户密码以刷新报表。此选 项是在中央管理控制台级别设置的。 |
数据源/服务 | 数据源或数据库名称。如果使用 了 ODBC 驱动程序,则数据源名称标 识目标数据库。如果使用本机驱动程 序,则数据库名称标识目标数据库。 |
7.针对个人连接和共享连接设置密码
- 选择“工具” > “选项”
- 单击“保存”选项卡。
- 在“保护密码”或“写保护密码”文本框中键入密码。最多可以输入
40 个字母数字字符。
8.摘要信息
信息 | 说明 |
创建时间 | Universe 的创建日期和创建者名称。 |
修改 | 上次修改的日期和修改者的名称 |
修订 | 指出已将 Universe 导出到 CMS的次数的修订次数 |
注释 | 供您自己或另一位设计员参考的Universe 相关信息。此信息只在Designer 中可用。 |
统计信息 | Universe 中包含的类、对象、表、别名、联接、上下文和层次的数量的列表。 |
9.策略
内置策略
策略 | 用于... |
对象 |
在表模式中创建表时,自动创建默认类和对象。*
|
联接 |
|
表 | 过滤可用于表浏览器中的表的信息 |
使用策略的自动创建功能:选择时自动创建,不选择时手动创建
- 选择“工具” > “选项”
- 单击“数据库”选项卡
- 选择对应于要用于策略的默认创建功能的复选框
查询限制 | 说明 |
限制结果集的大小为指定的值 | 在查询中返回的行数被限制为您指定的数量。这限制了返回到 Web Intelligence 的行数,但并不限制RDBMS 处理查询中的所有行。 |
限制执行时间为指定值 | 查询执行时间被限制为您指定的分钟数。 这限制了将数据发送到 Web Intelligence 的时间,但不会停止数据库上的进程。 |
限制长文本对象的大小为指定值 | 为长文本对象指定最大字符数 |
11.指明 SQL 限制
- 查询控制
- 多个 SQL 语句控制:为每个上下文使用多个 SQL 语句 为每个度量使用多 个 SQL 语句 允许选择多个上下文
- 笛卡儿积控制 阻止 警告
12.SQL参数
- 文件” > “参数” > “参数”
1.模式
2.优化表浏览器的性能
插入表很慢,原因是 | 优化插入表的操作,通过 |
数据库中有大量的表。Designer 会查询系统目录,因此当目录很大 时,检索表就可能会很慢。 |
使用想插入到单独的数据库帐户 的表构建数据仓库。创建与新的仓库 的连接。 |
正在自动插入联接和检查所插入 的表的基数。 |
只插入表。可以按如下方式执行 此操作: 1。 选择“工具” > “选项”。 将出现“选项”对话框。 2。 单击数据库选项卡。 此时将显示“数据库”页面。 3。 清除下列复选框:“用表抽取联 接”和“检测联接中的元组数 目”。 4。 单击“确定”。 |
3.自动排列“结构”窗格中的表
选择“查看” > “排列表”
4.派生表
添加派生表
单击“插入”菜单上的“派生表”
编辑派生表
右键单击 Designer 模式中的表,然后从快捷菜单中选择“编辑派生表”
5.嵌套派生表......基于派生表的派生表
- 在示例目录中打开 Universe
- 右键单击“Universe 结构”窗格,从上下文菜单中选择“派生表”。
- 键入嵌套派生表的名称
- 键入 SQL 表达式。可以键入整个文本,也可使用编辑器助理键入。
- 双击对象(表、派生表、列、函数)
- 使用 @DerivedTable 函数,语法如下:@DerivedTable(派生表名称) 以选
择派生表。 - 单击“检查语法”
6.显示键
- 选择“工具”>“选项”
- 单击“图形”选项卡。
- 选择“列”组框中的“为键加下划线”复选框。
- 选择“查看”>“刷新结构”。
7.使用公式栏
8.定义特定的联接类型
联接类型 | 说明 |
相等联接 |
根据一个表的列中的值和另一个表的列中的值之间的相等性链接表。因为同一列均出现在两个表中,所以联接使两个表同步。
|
Theta 联(条件联接) |
根据两个列之间的关系(相等性除外)链接表。
|
外部联接 |
链接两个表,其中一个表包含与另一个表的共有列中的行不匹配的行。
|
快捷联接 |
在两个表之间提供替代路径的联接,此连接忽略中间表,并且不管是什么方向结果都一样。通过尽可能切短较长的联接路径来优化查询时间。
|
自我限制的连接 |
用于在表上设置限制的单一表联接。
|
创建复合相等联接
- 双击某个现有联接。
- 在“表 1”列表框中选择多个列
- 在“表 2”列表框中选择匹配列
- 从“运算符”下拉列表框中选择“Complex”
- 双击该联接。
- 单击“表 1”列的列表框中的一列
- 按住 Ctrl 键并单击“表 2”列的列表框中的两列
- 选择相应的运算符
第 4 章 解决模式中的联接问题
1.查找表:查找(或维)表包含与特定实体或主体关联的信息。
2.事实表:事实表包含有关事务的统计信息。
3.
联接路径的类型 | 返回 | 说明 |
环路 | 太少行 |
联接在查找表之间形成多个路径。
|
会聚式多对一联接 | 太多行 | 两个事实表中的多对一联接会聚在单一查找 表上。此类型的联接会聚可能会导致名为断层 陷阱的联接路径问题。 |
系列式多对一联接 | 太多行 | 一对多联接链接了依次由一对多联接链接的 表。一对多联接这种类型的分散方式可能会导 致名为扇形陷阱的联接路径问题。 |
4.检测和解决联接问题
联接问题 | 检测方式 | 解决方式 |
环路 | 检测别名 检测上下文 检测环路 检查完整性 模式的直观分析 |
创建别名和上下文以中断环路。 |
断层陷阱 | 表模式的直观分析 |
|
扇形陷阱 | 表模式的直观分析 |
|
5.定义上下文:上下文是一组联接的集合
自动创建上下文
- 选择“工具”>“自动检测”>“检测上下文”
- 单击“候选上下文”列表中的一个上下文,然后单击“添加”按钮。
- 单击“确定”。
- 当列表模式(“查看”>“列表模式”)处于活动状态时,这些上下文
列在“上下文”窗格中。
手动创建上下文
- 选择“插入”>“上下文”
- 在“上下文名称”文本框中键入上下文的名称。
- 在“当前上下文联接”列表中选择定义上下文的所有联接。
- 单击“检测”按钮,以便显示和上下文名称一起组成建议上下文的联接。
- 选择“仅显示选定项”复选框,以便仅查看选定的联接。
- 单击“检查”按钮。
- 键入上下文所返回数据的说明。
6.上下文如何影响查询
- 不明确查询:提示最终用户在一个查询路径和另一个查询路径之间进行选择。
- 推导式查询:Web Intelligence 查询在运行时不会提示最终用户选择上下文。
- 不兼容查询:来自两个不同上下文的对象合并在一个查询中
为每个上下文使用多个 SQL 语句
- 选择“文件”>“参数”
- 单击“SQL”选项卡
- 选择“为每个上下文使用多个 SQL 语句”复选框
7.别名如何解决环路
先前:
最后:
8.上下文解决环路
先前
最后:
9.直观地标识环路
如果环路包含... | 则可以通过以下方式解决环路... |
唯一一个查找表 | 别名 |
仅接收联接的“一”端的查找表 | 别名 |
两个或两个以上事实表 | 上下文 |
10.什么是断层陷阱
- Universe 结构中的三个表之间存在“多对一对多关系”。
- 查询包括基于两个表的对象,这两个表均位于其各自连接的“多”端。
- 单一维返回了多个行。
11.解决断层陷阱
- 为每个事实表创建一个上下文。此解决方法适用于所有情况。
- 修改 Universe 的 SQL 参数,以便能够为每个度量生成单独的 SQL 查询。此解决方法仅适用于度量对象。它不会为维或明细对象生成单独的查询。
是否使用多个 SQL 语句 | 场合 |
为每个度量使用多个 SQL 语句 | 在只包含为两个事实表同时定义 的度量对象的 Universe 中。使用多 个 SQL 语句的优点在于可以避免使 用需要稍后维护的上下文。 |
不为每个度量使用多个 SQL 语句 | 适用于为一个或两个事实表定义 了维或明细对象的情况。如果基于使 用此解决方法的 Universe 在查询中 包括了维或明细对象,则将会返回笛 卡尔积。 由于此解决方法可能会减慢查询 的响应时间并产生不正确的结果,您 应考虑创建上下文来解决断层陷阱 |
12.什么是扇形陷阱
当“一对多”连接链接了依次由另一个“一对多”连接链接的表时,扇形
陷阱是三个表之间的一种连接路径。当查询包括同时基于两个表的对象时,
“一对多”连接的分散影响可能会导致返回不正确的结果。
陷阱是三个表之间的一种连接路径。当查询包括同时基于两个表的对象时,
“一对多”连接的分散影响可能会导致返回不正确的结果。
13.如何解决扇形陷阱?
为包含初始聚合的表创建别名,然后使用“检测上下文”(“工具”>“检
测上下文”)来检测和建议用于别名表的上下文和用于原始表的上下文。
这是解决扇形陷阱问题的最有效方式
- 通过分析模式中的“一对多对一对多”联接路径关系来确定可能的扇形
陷阱。 - 为产生增殖性聚合的表创建一个别名。
- 在原始表和别名表之间创建一个联接。
- 构建在别名表上进行聚合的对象。
- 选择“工具”>“检测上下文”
- 单击一个候选上下文,然后单击“添加”
- 为其他候选上下文重复该步骤。
- 选择“文件”>“参数”。
- 单击“SQL”选项卡。
- 选择“为每个上下文使用多个 SQL 语句”复选框。
第 5 章 构建 Universe
1.对象
对象限定 | 说明 |
维 | 查询中分析的焦点。维将映射到数据库中的一个或多个列或函数,这些列或函数是查询的关键所在。 |
明细 | 提供有关维的描述性数据。明细始终会附加到维。它映射到数据库中的一个或多个列或函数,这些列或函数提供了与维相关的详细信息。 |
度量 | 包含映射为数据库中的统计数据的聚合函数。 |
2.设置对象外键或主键感知
对象属性-->键-->插入
3.源信息
- 技术说明:Universe(从 Data Integrator 中生成)中可用的技术说明。
- 映射信息:在 Data Integrator 内的源表和目标表之间应用的映射。
- 数据沿袭信息:目标列中包含的源列的列表。
4.定义对象格式
在对象点击右键-->对象格式
5.度量返回何种类型的信息?
Sum
Count
Average
Minimum
Maximum
6.度量与维和明细有何不同?
- 度量是动态的
- 度量能够投影聚合
7.使用 Where 子句时的问题
问题 | 说明 | 解决方法 |
产生大量的相似对象。 | 如果通过创建若干对象(每个对象推导出一个数据部分的 Where 子 句)限制对象数据,您可能会使用相似的名称作为多个对象的结尾。 例如,法国客户、美国 客户和日本客户。对于 看到多个看起来相似的 对象的用户而言,这可 能会产生混淆。 |
为每个限制创建条件 对象。 |
难于创建层次。 | 如果有多个在相同数据上推导出 Where 子句的对象,用户将难于构建用于向下钻取的逻辑缺省层次。 | 为每个限制创建条件对象。 |
对象名称和应用的限制之间出现混淆。 | 除非对象采用非常精确的命名方式,否则,仅从对象的名称来看,限制对于用户来说可能并非显而易见。用户可以通过查看查询的 SQL 来查看 Where 子句,但 并非所有用户都会在运 行查询之前查看 SQL。 |
为每个限制创建条件 对象。 以适当的方式命名每 个对象。 |
Where 子句之间出现冲突。 | 如果同一查询中包括了两个或两个以上采用类似方式加以限制的对象,则 Where 子句之间的冲突将导致不会返回任何数据。 | 为每个限制创建条件对象,并确保用户在报 表级别合并或同步了查 询。 |
8.设置层次
- 从层次编辑器中,单击“新建”按钮
- 键入层次的名称。
- 按 RETURN 键应用该名称
- 选择新的层次。
- 展开左边窗格中的默认层次结构节点。
- 单击一个维。
- 单击“添加”按钮。
您还可以通过拖放来移动维对象或层次
9.创建级联值列表
- 选择“工具” > “值列表” > “创建级联的值列表”
- 单击“默认层次结构”或“定制层次结构”单选按钮。
- 单击或展开类,然后选择一个或多个对象。
- 单击向右箭头。
- 为每个对象键入提示文本。
- 如果要在“级联的值列表”中更改对象的位置,请单击该对象,并使用向
上和向下箭头在列表中向上或向下移动它。
如果要删除对象,请单击对象,然后单击向左箭头。 - 选中或清除“层次视图”复选框。
- 单击“生成 LOV”。
10.值列表:包含与对象关联的数据
值列表数据源 | 说明 |
数据库文件 | 当您创建对象时,Designer 会自 动将值列表与对象关联。在用户或您 (设计员)选择为“查询”窗格中的 对象显示值列表之前,将不会创建值 列表。然后,依据对象推导出的一个 或多个列运行 SELECT DISTINCT 查 询。 返回的数据存储在 universe 子 文件夹(在与存储 Universe 文件的 相同文件夹下创建)中的一个扩展名 为 .LOV 的文件中。该 .LOV 文件随 后将用作列表的值来源。 |
外部文件 | 个人数据(例如文本文件或 Excel 文件)可与值列表关联。 基于外部文件的值列表是固定的。 无法与外部文件建立动态链接。如果 更改了外部文件,您必须刷新 .LOV 文件。 |
第 7 章 创建存储过程 Universe
1.使用存储过程
- 单击“快速设计向导”工具栏按钮。
- 单击窗格底部的复选框“单击这里选择存储过程 Universe”
- 单击“开始”。
此时将出现“定义 Universe 参数”面板。 - 在“输入 Universe 名称”字段中键入 Universe 名称。
- 在“选择数据库连接”列表的下拉列表中选择数据库连接。
- 单击“下一步”。
此时将出现“创建初始类和对象”面板。 - 单击存储过程。
- 单击“添加”。
“Universe 类和对象”窗格中将创建此存储过程。 - 单击“下一步”。
- 单击“完成”。出现“配置”面板。
2。根据带输入参数的存储过程创建 Universe。
- 单击“快速设计向导”工具栏按钮。
此时将出现“欢迎”窗格。 - 单击窗格底部的复选框“单击这里选择存储过程 Universe”。
- 单击“开始”。
此时将出现“定义 Universe 参数”面板。 - 在“输入 Universe 名称”字段中键入 Universe 名称。
- 在“选择数据库连接”列表的下拉列表中选择数据库连接。
单击“下一步”。
此时将出现“创建初始类和对象”面板。 - 单击存储过程。
- 单击“添加”。
当存储过程需要输入参数时,将显示“存储过程编辑器”。 - 单击参数列表中的某个参数。
- 在提示中或在“值”字段中输入参数值。
- 选择“使用此值”或“提示我输入值”。
- 在输入值后,当执行此过程时,它会检索列和结果集结构,从而将此值传
递给过程。 - 如果选定了“提示我输入值”,请在提示中键入值。
用户可以输入提示消息,也可以浏览以选择一个现有对象(例如,表中的
“预订 ID”列表)。 - 单击“确定”。
- 单击“下一步”。
- 单击“完成”。出现“配置”面板。
第 9 章 优化 Universe
使用 @函数
@函数 | 说明 | 通常用于对象的以下语句中 |
@Aggregate_Aware | 在对象中结合包含聚合和维数据的列。 | SELECT 语句 |
@Prompt | 每次在查询中包括使用 @Prompt 函数的对象时,提 示用户输入限制的值。 |
SELECT 语句 WHERE 子句 |
@Script | 每次在查询中包括使用 @Script 函数的对象时运行脚本。 |
WHERE 子句 |
@Select | 允许使用另一个对象的SELECT 语句。 | SELECT 语句 |
@Variable | 调用内存中存储的变量 的值,比如在引用的文本 文件中调用。 |
WHERE 子句 |
@Where | 允许使用另一个对象的 WHERE 子句。 |
WHERE 子句 |
1.Aggregate_Aware 函数
语法:
@Aggregate_Aware(sum(agg_table_1), ...sum(agg_table_n))
agg_table_1是最高聚合级别下的聚合
agg_table_n是最低聚合级别下的聚合
2.@Prompt 语法
@Prompt('Displayed text ','A',,,)
将 @Prompt 与不带默认值的值列表一起使用:
@Prompt('Displayed text ','A',{'Paris','London','Madrid'},,)
将 @Prompt 与值列表和一个默认值一起使用:
@Prompt('Displayed text ','A',{'Paris','London','Madrid'},,,,{'Paris'})
将 @Prompt 与所有可能的设置一起使用
@Prompt('Displayed text ','A','Store\City',Mono,Constrained,Persis
tent,{'Paris'})
tent,{'Paris'})
将 @Prompt 与包含值对、但不包含默认值的值列表一起使用
@Prompt('Displayed text ','A':'N',{'Paris':'12','Lon
don':'7','Madrid':'15'},,)
don':'7','Madrid':'15'},,)
将 @Prompt 与包含值对及一对默认值的值列表一起使用
@Prompt('Displayed text ','A':'N',{'Paris':'12','Lon
don':'7','Madrid':'15'},,,,{'Paris':'12'})
don':'7','Madrid':'15'},,,,{'Paris':'12'})
3.Script 函数
@Script('var_name', ['var_type'], 'script_name')