Smartbi+Palo实现多语言OLAP分析

浏览: 3087
Palo是一款开源OLAP服务器,多语言是它的一个特性。PaloXmla是Smartbi专门针对Palo Server开发了一个MDX查询引擎,类似Microsoft XML For Analysis SDK,提供了使用MDX语句访问Palo Server的能力。为了提供类似Microsoft Sqlserver Analysis Service的多语言能力,PaloXmla提供了一套特殊处理机制。

准备Meta Cube

在PaloXmla多语言处理机制中,多语言是存储在Palo服务器上的一个特殊Cube。这个用于存储不同语言元数据的Cube需要包含3个维度,分别是:
  • 语言维度:其成员是各种语言,常见的有:zh(中文)、en(英语)、ja(日文)、ko(韩文)、fr(法语)、de(德语)、it(意大利语)等
  • 结构维度:与要释义的Cube结构相同,通过名称与源Cube关联
  • 别名维度:指定存储的多语言内容的含义。


以Palo提供的Demo为例,准备的Meta Cube如下图

pic1.png


新建一个叫Meta的cube,包含AliasDim、LangDim、MeataDim三个维度。这里Cube的名称和维度的名称可以自由设定,没有限制。

pic2.png


AliasDim只包含一个成员caption,表示存储的是别名。

pic3.png


LangDim包含两个成员,分别是zh和en,分别对应中文和英语。

pic4.png


MetaDim与Sales的维度层次结构相同,最上层是Cube名称,下一级是维度名称,后面跟着就是一级一级的成员。这里只录入部分维度和成员,也就是多语言化了部分元数据。同时,MetaDim的层次结构也没有太大的意义,纯粹是为了方便维护。

pic5.png

 
可以通过Excel录入不同语言的元数据。如上图

配置Palo XMLA服务

PaloXmla服务需要进行配置,使得它能够读取Meta Cube的内容。修改PaloXmla\WEB-INF\paloxmla.xml文件,加入一句获取多语言数据的MDX语句。以上一步准备的Meta Cube为例,对应的语句为SELECT {[LangDim].ALLMEMBERS} ON COLUMNS, {[MetaDim].ALLMEMBERS} ON ROWS FROM [Meta] WHERE ([AliasDim].[caption])。维度名称需要与第一步中Meta Cube中的名称一致,而且语言维度必须在列区,结构维度必须在行区,其它维度限制在切片中反映。具体内容如下:
<DataSources> 
<DataSource>
<DataSourceName>PaloServer</DataSourceName>
<DataSourceDescription />
<URL />
<DataSourceInfo>{"server":"192.168.1.154","port":7777,"username":"admin","password":"admin","aliasMdx":"SELECT {[LangDim].ALLMEMBERS} ON COLUMNS, {[MetaDim].ALLMEMBERS} ON ROWS FROM [Meta] WHERE ([AliasDim].[caption])"}</DataSourceInfo>
<ProviderName>Palo</ProviderName>
<ProviderType>MDP</ProviderType>
<AuthenticationMode>Unauthenticated</AuthenticationMode>
<Catalogs />
</DataSource>
</DataSources>

配置Smartbi

Smartbi默认情况下没有打开中英文双语的切换支持,需要进入Smartbi的配置界面修改。请在IE中访问http://Smartbiserver:port/smartbi/vision/config,进入管理控制台。修改其中"中英文切换显示"的值为"是"。修改后点击"保存"按钮保存。

pic6.png


返回登录界面,可以看到语言选择框,目前Smartbi系统支持中文和英文两种语言。

pic7.png



效果展示

使用Palo建立的多维分析和多维探索无须特别设置,其资源目录树和表格内容会自动跟进当前登录时的语言环境显示不同的内容。如下图示例:

pic8.png


pic9.png


pic10.png


pic11.png




 
推荐 1
本文由 pandahu 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

2 个评论

这个也可以直接连微软的 Cube嘛?
可以的。SQL Server Analysis Services 2000/2005/2008/2012都行。

要回复文章请先登录注册