MicroStrategy培训教程.docx
《MicroStrategy培训教程.docx》由会员分享,可在线阅读,更多相关《MicroStrategy培训教程.docx(84页珍藏版)》请在冰豆网上搜索。
MicroStrategy培训教程
二、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_SOLD
8.定义实体
在Microstrategy环境中,实体——以及组成实体的元素——是业务内容的概念。
你在报表中按照实体来汇总和查看数据。
每个实体可能具有多个形式;每个形式可能从多个物理表中表示;实体间会有父子关系。
实体的形式:
IDDEC
实体以及实体元素是业务内容的概念
一个实体的实体形式是考察实体的一个角度。
每个实体至少有一个实体形式,通常有两个:
⏹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和Day父子关系。
点击子标签,再点击添加按钮,选择Day实体,点击确定。
这样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,就可以从浏览器看到报表。
使用ConfigurationWizard(开始/程序/Microstrategy/ConfigurationWizard)第二项:
下一步,
选择ODBC数据源:
MstrMD,输入数据库用户名、密码,点击下一步。
输入MicroStrategy管理员用户名和密码,点击下一步。
输入一个服务器定义名称,点击下一步。
选中TestProject项目,点击下一步。
点击完成。
(如果系统显示警告信息,点击确定即可)
13.Web浏览
选择开始/程序/Microstrategy/Web/Web进入MicrostrategyWEB界面,点击TestProject,输入用户名和密码(现在只有Administrator用户,密码为空),点击登录,点击共享报表,再点击报表Rep1。
这样就可以在Web上看到刚才做好的报表了。
五、完整项目开发
现在来完善刚才的简单项目。
将使用到数据仓库中多个TABLE,创建丰富的报表。
0.TutorialDW及项目介绍
详见2_MicroStrategyTutorial介绍.ppt
1.以服务器方式连接元数据库
刚才已经把元数据库MstrMD配置给I-SERVER,现在可以用服务器方式连接元数据库,以后的项目开发就在3层结构下完成,这种方式Desktop和I-SERVER不必在同一台HOST。
实际的开发过程通常是3层结构。
在Desktop中选择菜单工具/项目源管理器,点击添加,输入项目源名称(如Training(server)),选择连接模式为服务器,输入I-SERVER服务器名称,点击确定(两次)。
这四个事实表也有销售信息,只是销售数量的字段可以不一样
2.添加数据仓库表
为完善项目,首先需要更多的数据仓库表。
双击进入Training(server)项目源,再进入TestProject项目,确认焦点在TestProject项目中。
选择菜单框架/仓库目录。
基于对Tutorial数据仓库的理解,并为简单起见,在上一章中建设的项目上添加14个维表、5个事实表。
从仓库中可用的表中选择:
事实表:
OrderFact
轻度汇总表
Yr_Category_SLS
年-商品类别聚合表
Qty_Category_SLs
季度-商品类别聚合表
MNTH_Category_SLs
月-商品类别聚合表
Day_Ctr_SLS
天-呼叫中心聚合表
维表:
时间维表
Lu_Year
年维表
Lu_Quarter
季度维表
Lu_Month
月维表
商品维表
Lu_Category
商品类别维表
Lu_Subcateg
商品子类别维表
地理维表
Lu_Country
国家维表
Lu_Region
地区维表
Lu_Call_CTR
呼叫中心维表
Lu_Employee
员工维表
客户维表
Lu_Cust_Region
客户所在地区维表
Lu_Cust_State
客户所在州维表
Lu_Cust_City
客户所在城市维表
Lu_Cust_Customer
客户维表
Lu_Order
定单维表
选择完毕后,如下图:
点击保存并关闭。
3.修改事实
现在系统中有3个事实(Fact),由于添加了新的数据仓库表(包含事实表),这3个事实(Fact)的定义需要修改,以使事实(Fact)和数据仓库表关联。
关于事实的详细文档参考AdvancedReporting.pdf217~232页(FACT章节)。
(1)修改QTY(销售数量)事实
事实保存在框架对象/事实文件夹下。
双击QTY(销售数量)事实进入事实编辑器:
原来在只有一个事实表Order_Detail时,QTY的表达式是QTY_SOLD,注意到源表中多出了一个表ORDER_FACT,这是因为在ORDER_FACT表中也有一个表示销售数量的字段并且字段名称也是QTY_SOLD,由于映射方法为手动,这个表没有选中,现在的工作是选中这个表,是表达式QTY_SOLD在这个表中有效。
考察刚才添加的事实表中的聚合表,发现这4个聚合表中也有销售数量信息,只是销售数量的字段名称为TOT_UNIT_SALES。
为完整定义QTY事实,现在点击界面上的新建按钮添加新的表达式。
在创建新事实表达式界面的源表中选择一个聚合表(如DAY_CTR_SLS),将TOT_UNIT_SALES字段拖至事实表达式中,点击确定。
选中源表中4个聚合表前的复选框,这样就定义好了QTY事实。
点击保存并关闭。
(2)修改AMT(销售金额)事实
双击AMT(销售金额)事实进入事实编辑器:
考察刚才添加的事实表中的聚合表,发现这4个聚合表中也有销售金额信息,只是销售金额的字段名称为TOT_DOLLAR_SALES。
为完整定义AMT事实,现在点击界面上的新建按钮添加新的表达式。
在创建新事实表达式界面的源表中选择一个聚合表(如DAY_CTR_SLS),将TOT_DOLLAR_SALES字段拖至事实表达式中,点击确定。
选中源表中4个聚合表前的复选框。
另外还有一个事实表ORDER_FACT,在这个事实表中的销售金额信息是ORDER_AMT字段。
为完整定义AMT事实,现在再点击界面上的新建按钮添加新的表达式。
在创建新事实表达式界面的源表中选择聚合表ORDER_FACT,将ORDER_AMT字段拖至事实表达式中,点击确定。
选中源表中ORDER_FACT表前的复选框。
这样就定义好AMT事实。
点击保存并关闭。
(3)修改COST(成本)事实
COST与AMT事实非常相似,见下图:
4.修改实体
实体保存在框架对象/实体文件夹下。
(1)Item(商品)实体
新添加的数据仓库表(事实表和维表)没有Item(商品)信息,Item实体不用修改。
(2)Day(日期)实体
双击Day(日期)实体进入实体编辑器:
点击修改按钮进入Day实体的ID形式编辑界面:
选择表达式Day_Date,在右边的源表中选中DAY_CTR_SLS表;再选择表达式ORDER_DATE,在右边的源表中选中ORDER_FACT表,点击确定。
点击保存并关闭。
(3)Year(年)实体
双击Year(年)实体进入实体编辑器,点击修改按钮进入year实体的ID形式编辑界面:
选中源表中的5个表;将焦点放在LU_YEAR表上,点击设为查找表按钮。
点击确定。
点击保存并关闭。
5.创建新实体
创建实体可以用实体编辑器,也可以用实体创建向导。
但只能用实体编辑器来修改实体。
实体创建向导可以同时创建多个实体。
当你使用实体创建向导时,你需要定义下列内容:
⏹ID和描述字段
⏹定义查找表
⏹父子关系
实体创建向导是非常好的初始化实体的工具,但是你不能用它来编辑已经存在的实体。
用实体创建向导创建实体
现在用实体创建向导来创建其它实体。
选择菜单框架/实体创建向导。
点击下一步。
因为已经有了3个实体,现在需要再创建13个实体。
时间维上的实体
Quarter
季度
Month
月
商品维上的实体
Category
商品类别
SubCat
商品子类别
地理维上的实体
Country
国家
Region
地区
CallCtr
呼叫中心
Emp
员工
客户维上的实体
CustRegion
客户所在地区
CustState
客户所在州
CustCity
客户所在城市
Customer
客户
Order
定单
在实体创建向导-ID列选择界面选择这13个实体的ID列,从可用的列选择
Quarter_Id
Month_Id
Category_Id
SubCat_Id
Country_Id
Region_Id
Call_Ctr_Id
Emp_Id
Cust_Region_Id
Cust_State_Id
Cust_City_Id
Customer_Id
Order_Id
点击》按钮添加到实体中。
点击下一步。
在这个界面为每个实体选择代表描述的字段。
MSTR会根据字段名称找到可能的列用于实体的描述,如果没有合适的字段会用使用ID作为描述。
在这里系统找到了大部分实体的描述,其中某些实体的描述字段不正确,修改一下即可。
对于CallCtr(呼叫中心)实体选择CENTER_NAME作为描述列;
对于Custormer(客户)实体,希望的描述是客户的姓和名,但是在实体创建向导中只能选择一个字段,所以这里先选择CUST_FIRST_NAME作为描述列,稍后用实体编辑器来修改它;
对于Emp(员工)实体,和Customer实体类似,先只用EMP_FIRST_NAME作为描述列;
对于Order(定单)实体,不必有描述形式,所以选择使用ID作为描述即可。
检查其它实体的描述列选择是否正确。
点击下一步。
在这个界面为每个实体选择查找表(维表)。
这里,系统帮助找的查找表都是正确的。
检查查找表名称和实体名称是否对应。
点击下一步。
在这个界面为这13个实体定义父子关系。
为思路清晰起见,下面按顺序建立它们的父子关系。
选择实体中的Quarter实体,点击右面的加入按钮,选择Month实体,点击确定。
再选择实体中的Category实体,点击右面的加入按钮,选择Subcat实体,点击确定。
再选择实体中的Country实体,点击右面的加入按钮,选择Region实体,点击确定。
再选择实体中的Region实体,点击右面的加入按钮,选择CallCtr实体,点击确定。
再选择实体中的CallCtr实体,点击右面的加入按钮,选择Emp实体,点击确定。
再选择实体中的CustRegion实体,点击右面的加入按钮,选择CustState实体,点击确定。
再选择实体中的CustState实体,点击右面的加入按钮,选择CustCity实体,点击确定。
再选择实体中的CustCity实体,点击右面的加入按钮,选择Customer实体,点击确定。
再选择实体中的Customer实体,点击右面的加入按钮,选择Order实体,点击确定。
点击下一步。
点击完成。
用实体创建向导13个实体已经创建完成。
在Desktop中选择框架对象/实体文件夹,在这里已经有了16个实体。
选择菜单框架/图型查看/层系检查这16个实体的父子关系是否正确:
注意到先前创建的3个实体Item、Day、Year为孤立的实体,没有和相关实体建立父子关系。
现在修改一下这3个实体的定义,是系统层系完善。
在Desktop中的框架对象/实体中双