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