文章
· 七月 21, 2022 阅读大约需 7 分钟

精华文章系列 DeepSee 的开发 - 第一部分 - Cube

创建一个透视表

  1. 在模型内容窗格中展开DiagD维度。
  2. 将Diagnoses拖放到行中,或者双击诊断。
  3. 将Patient Count(病人计数)拖放到Measure(度量)中,或双击病人数。
  4. 将 Avg Age(平均年龄) 拖至Measure(度量),或双击 "平均年龄"。
  5. 单击保存。 系统显示一个对话框,你可以指定透视表的名称。 保存透视表并给它一个名字。当你这样做时,你是在保存检索数据的基础查询,以及以你选择的方式显示数据所需的信息。你不是在保存数据。
  6. 对于文件夹,键入Test
  7. 对于透视名称,键入Patients by Diagnosis (Patients Cube)
  8. 点击确定。

注意:基表是Patients,这意味着所有的度量都是关于病人的数据总结。

 

度量和levels

  1. 点击新建。
  2. 把Patient Count和Avg Age拖到度量区。 这个简单的透视表向我们展示了这些度量中每一项的总数值,跨越基类中的所有记录。有1000名病人,他们的平均年龄(在这个例子中)是36.59岁。
  3. 使用SQL 校验
    select count(*) as "count" ,avg(age) as avgage from BI_Study.Patient
  4. 在分析器中,对前面的透视表进行如下修改。
    • 在左边展开GenD,把Gender拖到行区。现在你会看到类似下面的内容。
    • 使用SQL 校验
      group by gender
  1. 展开ProfD和Profession,把Electrician拖到行中。
  2. 使用SQL 校验
select count(*) as "count",avg(age) as avgage from BI_Study.Patient join BI_Study.PatientDetails 
on BI_Study.Patient .PatientID = BI_Study.PatientDetails.PatientID 
where BI_Study.PatientDetails.profession->profession='Electrician'

 

维度和levels

在许多情况下,你可以交替使用维度和levels。在本节中,我们将对它们进行比较,看看它们的区别。

  1. 在分析器中,点击新建。
  2. 展开AgeD维度。你会在左边的区域看到以下内容: AgeD定义了一个名为All Patients的特殊成员,它是一个All成员。一个All成员指的是基类的所有记录。 AgeD定义了多个levels。Age Group,Age Bucket,和Age。 当你拖放一个维度作为行(或列)使用时,系统会显示该维度中定义的第一层的所有成员。在这个例子中,第一层是Age Group。

 

所有成员

所有成员指的是基类的所有记录。每个维度都可以有一个All成员,但是在Patients cube中,只有一个维度有一个All成员。

本教程的这一部分演示了如何使用一个All成员。

  1. 点击新建。
  2. 展开AgeD维度。
  3. 把Age Group拖到行中。
  4. 将度量 "Patient Count"、"Avg Age "和 "Avg Test Score"拖入 "度量"。
  5. 单击 "设置透视表的选项 "按钮(扳手图标)。
  6. 在 "行选项 "区域,单击 "摘要 "复选框,在下拉列表中不选择 "总计",然后单击 "确定"。
  7. 然后系统会显示一个总数,如下所示。 

上图所示,总数值适合于病人数,但不适合于其他度量。对于平均年龄和平均测试分数,显示一个平均值而不是总和更合适。

  1. 单击 "设置透视表的选项 "按钮(扳手图标)。
  2. 在行选项区域,清除摘要复选框,然后点击确定。
  3. 将AgeD下的All Patients拖到行中。然后系统在Age Group级别的成员之后显示所有病人。 上图所示,All Patients 是一个比刚刚的总数行更有用的摘要行。它显示病人数、平均年龄和平均测试分数等指标,每个指标都是所有病人的汇总。

注意: 对于平均年龄和平均测试分数,在某些情况下,你可能更喜欢在数据透视表中显示数值的平均值。例如,对于平均年龄,该摘要行将所有病人的年龄相加,然后除以1000。你可能更喜欢把这里显示的三个成员的平均年龄值相加,然后除以3。所有成员不能帮助你做到这一点;相反,你可以创建一个计算成员。

  1. 单击 "行 "窗格中的X按钮。这个动作会清除行的定义。
  2. 展开DiagD维度, 将 "诊断 "拖放到 "行 "窗格中。
  3. 将All Patients拖到行中,在诊断的下面。然后你会看到类似下面的内容。  正如你所看到的,你可以在Age以外的维度上使用通用命名的All Patients成员,Age是它刚好被定义的维度。

 

层次结构

一个维度包含一个或多个层次结构,每个层次结构可以包含多个级别。模型内容区按照层次结构指定的顺序列出各层,但(为了节省空间)不显示该cube的层次结构名称。用户可以利用层次结构的优势,钻取到更低的层次。

  1. 点击新建。
  2. 展开BirthD维度。
  3. 将Decade拖放到Rows中,或者双击Decade。
  4. 显示的度量是Count,是对病人的计数。
  5. 双击1950年代行(或任何其他有相对较多病人的行)。点击"<<"符号右边的任何地方。系统就会显示出该十年出生的病人,按年份(层次结构的下一个最低层次)分组。
  6. 再次双击某行。系统会显示该年出生的病人,按年份和季度分组。
  7. 再次双击某一行。系统显示该年及该季度出生的病人,按年份及月份分组。
  8. 再次双击某一行。系统显示该年、该月出生的病人,按实际日期分组。
  9. 反复点击<符号,回到透视表的原始状态。

 

属性

一个level可以有属性,你可以在透视表中显示这些属性。

  1. 点击新建。
  2. 展开HomeD维度。
  3. 展开City层面,将城市拖放到行中。
  4. 显示的度量是Count,是对病人的计数。
  5. 拖动Population到列。
  6. 将Principal Export拖到列中。
  7. 单击 "行 "窗格中的X按钮。
  8. 将ZIP拖到行中,显示 ‘@NOPROPERTY’,这些属性没有这个级别的值。

在透视表中,属性在几个方面与度量不同。

  • 属性可以有字符串值。
  • 属性只对它们被定义的那一层有值。

根据cube的定义方式,属性也可以影响它们所属层次的排序和成员名称。

 

列表

本教程的这一部分演示了列表,它从选定的一个或多个单元格的最低级别数据中显示选定的记录。

  1. 点击新建。
  2. 将 "Patient Count "和 "Avg Test Score "拖放到 "度量 "中。
  3. 展开AgeD维度,展开Age层。
  4. 将成员0拖到列中。这个成员指的是所有年龄小于1岁的病人。
  5. 把成员1拖到列中,在成员0的下面。
  6. 展开BirthTD维度,将Birth Time层拖放到行中。
  7. 点击一个单元格。例如,单击1am行中的病人计数单元格,在0下面。
  8. 点击 ‘显示当前所选单元格的详细列表(Listing)’ 按钮(放大镜图标) 。
  9. 点击 ‘显示透视表’ 按钮(三个点 + 三个横线图标) ,以原始状态重新显示透视表。 默认情况下,Patients立方体使用一个叫做Patient details的列表,其中包括PatientID、Age、Gender和其他字段,正如你刚才看到的。你也可以显示其他列表。
  10. 点击 ‘设置透视表的选项’ 按钮(扳手图标)。
  11. 在列表下拉列表中,选择 ‘Doctors Details’,然后单击确定。
  12. 医生详情列表显示所选病人的主治医生的信息。
  13. 点击 ‘显示透视表’ 按钮(放大镜图标) ,以原始状态重新显示透视表。
  14. 点击 ‘显示当前所选单元格的详细列表(Listing)’ 按钮 (三个点 + 三个横线图标)。即可以看到医生详情的列表。

 

过滤器和成员

在一个典型的透视表中,成员可以作为行、列或两者都使用。成员的另一个常见用途是使你能够过滤数据。

  1. 在分析器中,点击新建。
  2. 展开ColorD和Favorite Color,将最喜欢的颜色拖到过滤器中。
  3. 显示的度量是计数,是对病人的计数。分析器现在只显示最喜欢的颜色级别的一个成员。
  4. 点击 "行 "框中的X按钮。
  5. 展开AgeD,把Age Group拖到行中。
  6. 点击‘设置透视表选项‘按钮(扳手图标)。
  7. 在 "行选项 "区域,点击 "摘要 "复选框,在下拉列表中选择 "总计",然后点击确定。
  8. 总数行显示该列中数字的总和。
  9. 你可以使用任何成员作为任何透视表的过滤器,不管透视表的行(或列)使用什么。你可以使用多个成员作为过滤器,你也可以组合过滤器。

 

过滤器和可搜索的度量

在DeepSee中,你可以定义可搜索度量。

  1. 点击新建。
  2. 系统显示所有病人的计数。
  3. 点击过滤器框中的’将高级过滤器添加到表中‘选项(配置图标)。
  4. 点击添加条件。然后你看到这个。
  5. 点击Age Group,这使你能够编辑表达式的这一部分。
  6. 点击左边的下拉列表,向下滚动,并点击 Measures.Encounter Count。只要你这么做,表达式就会被更新。
  7. 点击=运算符,这使你可以编辑表达式的这一部分。
  8. 点击>=运算符。只要你这样做,表达式就会被更新。
  9. 点击0,这使你能够编辑表达式的这一部分。
  10. 在该字段中输入10,然后点击应用。
  11. 单击 "确定"。系统显示所有至少有10次就诊的病人的总计数。
  12. 在模型内容窗格中展开AgeD维度。
  13. 将Age Group拖放到行中。
  14. 点击‘设置透视表选项‘按钮(扳手图标)。
  15. 在 "行选项 "区域,单击 "摘要 "复选框,在下拉列表中不选择 "总计",然后单击 "确定"。
  16. 总数行显示该列中数字的总和。注意,这里的总数与前面显示的相同。
讨论 (0)1
登录或注册以继续