追溯到icCube中的基础文本数据?

时间:2019-06-26 12:29:16

标签: iccube

当详细信息包含文本字段时,如何在icCube中设置模型以深入查看详细信息?

这个想法是得到一个列表,其列名包含文本字段(结合数量字段)。就像一条简单的SQL语句一样。

我尝试了以下方法:

  • a)添加了链接到行的技术尺寸(通过行号),并为文本字段添加了MIN Aggregation。想到在调用DRILLTHROUGH MDX语句时使用它们。 DRILLTHROUGH函数可以使用,但不会将度量的值彼此相邻。结果是这样的: enter image description here

  • b)在每个唯一行中添加一个行号,并将该行号作为其中一个维度的最低详细信息加载。为“追溯”列添加了这些文本和日期项目的属性。接下来,添加计算得出的度量以获取这些属性的属性。现在,钻取实际上是对最低细节的钻取。它可以工作,但这不好,因为它炸毁了我的尺寸。

  • c)尝试使用小部件数据源SQL,但它不适用于文本文件,并且不适用于MSAccess文件(太慢)。

首选解决方案应在仪表板和任何XMLA / REST API界面中起作用。

随附此示例

架构文件

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<schemaFactory revisionNumber="7">
    <schemaDefinition name="drilltrhough-text" description="" group="Issues" loadOnStartup="false">
        <activateIncrementalLoad>false</activateIncrementalLoad>
        <useUnknownMembersInFacts>true</useUnknownMembersInFacts>
        <autoCleanUpTableColumns>false</autoCleanUpTableColumns>
        <useFactPartitioning>false</useFactPartitioning>
        <callGarbageCollector>NONE</callGarbageCollector>
        <backup>NONE</backup>
        <nonEmptyCachePolicy>NONE</nonEmptyCachePolicy>
        <nonEmptyCacheType>REGULAR</nonEmptyCacheType>
        <nonEmptyCachePersistency>MEMORY</nonEmptyCachePersistency>
        <storagePolicy>DEFAULT</storagePolicy>
        <hierarchyUniqueNameStyle>IncludeDimensionName</hierarchyUniqueNameStyle>
        <inMemoryDS name="data">
            <memoryDataTable tableName="data" rowLimit="-1" id="d9429713-9be8-4c63-9b40-4a20388e7563">
                <column name="dimension" tableType="STRING" type="STRING" selected="true" primaryKey="false"/>
                <column name="amount" tableType="STRING" type="STRING" selected="true" primaryKey="false"/>
                <column name="text" tableType="STRING" type="STRING" selected="true" primaryKey="false"/>
                <addRowNumber>false</addRowNumber>
                <stringDateConverter></stringDateConverter>
                <trimStrings>true</trimStrings>
                <columnSeparator>,</columnSeparator>
                <commentMarker>#</commentMarker>
                <dataAsString>dimension, amount, text
a, 10,some text
b, 20, some more text
c, ,text without an amount</dataAsString>
            </memoryDataTable>
        </inMemoryDS>
        <multiLevelDimension dataTableId="d9429713-9be8-4c63-9b40-4a20388e7563" isTimeDimension="false" isDefaultTimeDimension="false" isIndexingByRange="false" id="86d118f0-71ba-4826-a6ac-343eac96fb05" name="Dimension">
            <multiLevelHierarchy hasAllLevel="true" allLevelName="All-Level" allMemberName="All" name="Dimension" isDefault="true">
                <level name="Dimension - L" nameUnique="false" nameUniqueInParent="false" keyUnique="false" ignoreNameCollision="false">
                    <nameCol name="dimension"/>
                    <orderType>BY_NAME</orderType>
                    <orderKind>ASC</orderKind>
                </level>
            </multiLevelHierarchy>
        </multiLevelDimension>
        <cube id="caa9c520-f953-4c77-9e72-76c8668170f7" name="Cube">
            <defaultFacts measureGroupName="Facts" partitioningLevelName="" partitioningType="NONE" newGeneration="true" dataTableId="d9429713-9be8-4c63-9b40-4a20388e7563" aggregateDataSourceFacts="false" unresolvedRowsBehavior="ERROR">
                <rowFactAggregationType>ADD_ROW</rowFactAggregationType>
                <measure name="Amount" aggregationType="SUM">
                    <dataColumn name="amount"/>
                </measure>
                <measure name="Text" aggregationType="MIN">
                    <dataColumn name="text"/>
                </measure>
                <links dimensionId="86d118f0-71ba-4826-a6ac-343eac96fb05">
                    <viewLinks type="LAST_LEVEL">
                        <toColumns name="dimension"/>
                    </viewLinks>
                </links>
            </defaultFacts>
        </cube>
    </schemaDefinition>
</schemaFactory>

-mdx

drillthrough
select [Measures].members on 0
, [Dimension].[Dimension].[Dimension - L] on 1
from [cube]
return Name([Dimension])
  • 结果

enter image description here

1 个答案:

答案 0 :(得分:2)

这与具有STRING类型的度量值无关。

您正在执行多单元格结果追溯(这是icCube中标准MDX的扩展)。在这种情况下,每个结果单元格的结果都是“有组织的”,这意味着每个[Measures]都属于自己的类别(您可以添加另一个Amount量度,您将看到相同的行为)。

相反,您应该执行单个单元格追溯:

drillthrough 
  select [Dimension].[Dimension].[Dimension -L].[a] on 0     
  from [cube]

结果应如下所示:

enter image description here

您可以看到[Measures]。[Info]位于同一行(与所有其他度量一样)。

希望有帮助。