1、 二、MSTR 产品应用演示在浏览器中演示查看 Document、Grid Report、Graph Report、图形和表格显示、旋转、钻取、分析、创建报表、保存报表、打印、导出 Excel、PDF、历史列表应用、发送 Email。四、最简单项目开发流程背景:已经有一个数据仓库,有一个最简单需求(一张报表,按年查看销售信息) ,用MSTR 如何实现。这基本上没有技术上的问题,只是步骤的问题。数据仓库使用 mstr_tutorial,这里先介绍 3 个表,order_detail(事实表)、Lu_day(时间维表)、Lu_Item(商品维表)。需求是按年查看销售金额,销售数量,成本。0 介绍元
2、数据库Microstrategy 元数据是存储在关系型数据库中的一个预定义的结构。 Microstrategy 定义了这个元数据的结构。元数据和数据仓库的 RDBMS 不必相同。当应用程序连接到这个元数据库时,所有的 框架对象、报表对象、配置对象和项目设置信息 都存储在这里。1准备空的 RDB,并定义 ODBC以 SQL SERVER 为例,在 SQL SERVER 中创建一个数据库 MstrMD。定义一个系统ODBC,命名为 MstrMD。2配置元数据库使用 Configuration Wizard(开始/程序/Microstrategy/Configuration Wizard) 第一项:
3、下一步,为简单起见,只选择创建元数据表,下一步,选择 ODBC 数据源名称:MstrMD,输入用户名和密码。 (如果使用 Access 作为元数据库,则选择在 Access 数据库配置资料库,在下面的文本框中输入 Access 文件的路径即可,系统会创建 Access 文件并配置 ODBC。 )点击下一步。如果有警告信息,点击 关闭,再点下一步。选择元数据脚本位置,一般情况下系统会根据元数据库类型选择出默认的脚本程序,如本例中系统会找到md7sql.sql。点击下一步。点击完成。点击确定。配置元数据库完毕!3连接项目源项目源对象处于 Microstrategy 对象的最高级。一个项目源代表一个
4、元数据库连接。这个连接可以由两种方式实现: 直接或两层模式 通过知道 DSN、 LOGIN、口令连接到元数据库。 服务器或三层模式 通过指向一个定义好的 Intelligence Server 连接到元数据库。这里首先使用直接方式连接,稍后再把建设好的应用配置成三层模式。启动 Microstrategy Desktop,选择菜单 工具/项目源管理器,点击添加,输入项目源名称(如 Training) ,选择连接模式为 直接,选择 ODBC:MstrMD,点击确定(两次) 。4创建项目在应用中定义的 MSTR 对象 (框架对象和用户对象等 )隶属于项目。 项目在项目源下,一个项目源下可以有多个项目
5、。在 Microstrategy Desktop 中双击进入刚才定义的项目源 Training (最初配置一个项目源时,MSTR 会创建一个内嵌的用户,用户名是 Administrator,口令为空,当进入一个项目源时,需要输入这个项目源的 user/PWD。从安全的角度考虑,进入一个新项目源后,应该修改MSTR 内嵌用户 Administrator 的口令),选择菜单 框架/ 创建新项目。Desktop 弹出项目创建助理:项目创建助理有 4 个按钮,用于创建项目和快速初始化一个项目。在这里,首先用创建项目按钮来创建项目,其余按钮的功能在后面介绍。点击创建项目按钮输入项目名称和描述,点击确定,
6、在弹出的登录窗口输入用户名(Administrator)和密码( 空)项目创建完毕后,点击确定。在项目源下出现新建的项目。5定义数据库实例数据库实例代表与数据仓库的连接。用于在某个项目中使用的数据仓库。进入项目源下的管理 / 数据库实例管理器,点击菜单文件/新建/ 数据库实例,输入一个数据库实例名称,选择数据库连接类型,输入描述 ;在数据库连接 中点击新建,输入数据库连接名称,选择一个指向所要的数据库的本地系统 ODBC 数据源;在数据库登录名中点击新建,输入数据库登录以及合法的登录 ID 和密码,点击确定;选择正确的数据库登录名,点击确定;选择正确的数据库连接名称,点击确定。这样就定义了一个
7、数据库实例,来代表物理的数据仓库。这里我们创建一个数据库实例 Tutorial 代表 MSTR 自带的 Tutorial 数据库。6选择数据仓库表刚才创建了一个项目(TestProject),我们要在项目中创建报表等 BI 应用,这些报表需要从数据仓库中的某些 TABLES 中选取数据。一个项目需要哪些数据仓库表,就在仓库目录中定义。每个项目有一个仓库目录。将焦点放置所要控制的项目上(TestProject),选择菜单框架/仓库目录,由于现在是第一次进入仓库目录对话框,系统会弹出选择数据库实例界面:选择刚刚创建的 Tutorial 数据库实例,点击确定。系统弹出仓库目录对话框。左侧是数据仓库中
8、可用的 TABLE,右侧是选中的数据仓库表。作为最简单项目,我们先选取 3 个 TABLEs:事实表 Order_detail,维表Lu_day,Lu_Item。7定义事实在 MicroStrategy 产品环境中事实是关联数据仓库中的数值和 MicroStrategy 报表环境的框架对象。他们对应到数据仓库中的物理字段, 并用以创建对事实数据进行运算的度量对象。在这个简单项目中,先定义三个事实(Fact):QTY(销售数量) ,AMT(销售金额) ,COST(成本) 。将焦点移至 TestProject 项目下的 框架对象/事实中,选择菜单文件/新建/事实,系统载入事实编辑器,并进入到创建事
9、实表达式界面。先创建 QTY 事实,QTY 事实存在于事实表Order_Detail 中,在源表下拉列表中选择 Order_Detail,把 QTY_SOLD 字段从可用的列拖到事实表达式中,在映射方法中选择手动(手动和自动的区别见附录) ,点击确定:选中 Order_Detail 表前的复选框,点击保存并新建。确认保存的路径是框架对象/事实,输入对象名称 QTY,点击 保存。再创建 AMT(销售金额) 事实。AMT 事实也存在于事实表 Order_Detail 中,与 QTY 不同的是 AMT 的表达式为:UNIT_PRICE * QTY_SOLD再创建 COST(成本)事实。COST 的表
10、达式为:UNIT_COST*QTY_SOLD8定义实体在 Microstrategy 环境中,实体 以及组成实体的元素 是业务内容的概念。你在报表中按照实体来汇总和查看数据。每个实体可能具有多个形式;每个形式可能从多个物理表中表示;实体间会有父子关系。一个实体的 实体形式 是考察实体的一个角度。每个实体至少有一个实体形式,通常有两个: ID 描述(DESC)一些实体可能会有其它描述型形式。比如,客户实体有客户名称形式,还有地址、Email 等其它描述型形式。实体形式之间必须具有一对一关系。形式有两种用途:1 显示在报表上或数据浏览时显示2 条件分析或做查询时用于限制条件。你可以用多个形式使实体
11、更加灵活。比如,零售业中的商品实体有两个基本的形式,ID在数据库中参与快速的运算;名称保存商品的名称。由于商品在不同的国家/语言中可能会有不同的名称。你可以创建另外的实体形式表示外文名称。你还可以创建其它如尺寸、规格、包装等实体形式。在这个简单项目中,先定义三个实体(Attribute) :Item( 商品) ,Day(日期),Year(年) ;其中Year 是 Day 的 Parent。(1)定义 Item 实体将焦点移至 TestProject 项目下的 框架对象/实体中,选择菜单文件/新建/实体,系统载入实体编辑器,并进入到创建实体形式(ID)表达式界面。在数据库中(已选的 3 个表)的
12、Order_Detail、LU_Item 表里记录着 Item 实体的信息,其中 LU_Item 是维表,Order_Detail是事实表。对于 Item 实体的 ID 在数据库中是用 Item_ID 字段表示的。在创建实体形式(ID)表达式界面,选择源表 LU_Item,把 Item_ID 字段从可用的列 拖到形式表达式中,在映射方法中选择手动(手动和自动的区别见附录) ,点击确定:实体的形式:ID DEC实体以及实体元素是业务内容的概念选中 Order_Detail、LU_Item 表前的复选框,点击确定:系统显示如下界面。现在对于 Item 实体已经定义好了 ID 形式(Form) ,再
13、定义 Item 实体的 DESC(描述) 形式。点击界面上的新建按钮。Item 实体的 DESC(描述)信息在数据库中是用 ITEM_NAME 表示的。把 ITEM_NAME 字段从 可用的列拖到形式表达式 中,在映射方法中选择手动(手动和自动的区别见附录) ,点击确定:选中 LU_Item 表前的复选框,点击确定:系统显示如下界面。点击保存并新建按钮。确认保存的路径是框架对象/实体,输入对象名称 Item,点击保存。(2)定义 Day 实体再创建 Day(日期)实体,Day 实体的 ID 在数据库中的 LU_Day 维表里是用 DAY_DATE字段表示,在 Order_Detail 事实表里
14、是用 ORDER_DATE 字段表示。这样 Day实体的 ID 有两个表达式。首先选择源表 LU_Day,把 DAY_DATE 字段从可用的列拖到形式表达式中,在映射方法中选择手动(手动和自动的区别见附录) ,点击确定:在界面上选中 LU_Day 表前面的复选框。由于 Day 实体的 ID 在不同的表中有两种表达式,现在需要在创建一个表达式。点击新建按钮,选择源表 Order_Detail,把 Order_Date 字段从可用的列拖到形式表达式中,在映射方法选择手动,点击确定:在界面上选中 Order_Detail 表前面的复选框,点击确定。系统回答下图界面。对于 Day 实体,不需要描述形式
15、,这样 Day 实体的定义就已经完成了。点击保存并新建按钮。确认保存的路径是框架/实体,输入对象名称 Day,点击保存。(3)定义 Year 实体再创建 Year(年)实体。Year 实体在仅在数据库中的 LU_Day 维表里出现。选择源表LU_Day,把 Year_ID 字段从可用的列拖到形式表达式中,在映射方法中选择手动,点击确定:在界面上选中 LU_Day 表前面的复选框,点击确定。到如下界面:对于 Year 实体,也不需要描述形式,但需要定义 Year 和 Day 父子关系。点击子标签,再点击添加按钮,选择 Day 实体,点击 确定。这样 Year 实体的定义就已经完成了。点击保存并关
16、闭按钮。确认保存的路径是框架/实体,输入对象名称 Year,点击保存 。9更新框架对于现在的简单项目,所有的框架对象(Schema Objects)都已经定义完了,为使框架对象最终在报表生效,需要更新框架。选择菜单框架/更新框架,点击确定来更新框架。10创建度量度量是报表组件,它代表了商业度量和关键性能指示器。用存储在数据库中的数据进行表达计算,这与电子数据表软件中的公式相似。使用事实创建度量。对于我们现在的简单项目,对应上面创建的 3 个事实,可以创建 3 个度量:销售数量、销售金额和成本。将焦点移至 TestProject 项目下的 公共对象/度量中,选择菜单文件/新建/度量,系统载入度量编辑器。将 AMT 事实拖至度量定义中:点击保存并新建按钮,确认保存的路径是公共对象/度量,输入对象名称销售金额,点击保存。将 COST 事实拖至度量定义中:点击保存并新建按钮,确认保存的路径是公共对象/度量,输入对象名称成本,点击保存。将 QTYT 事实拖至度量定义中:点击保存并关闭按钮,确认保存的路径是公共对象/度量,输入对象名称销售数量,点击保存。11创建报表下面完成一个报表的需求。将焦点移至 TestProject 项目下的 公共对象/报表中,选择菜单文件/新建/报表,系统载入报表编辑器: