语义模型 <返回 
概述

语义模型,负责把面向技术的数据组织成面向业务的数据,以供业务人员查询分析使用。,该功能点提供"左树右表+卡片"的界面展示方式,左侧展示"语义模型分类"树,右侧以列表形式展示"语义模型编码、语义模型名称、数据源"等报语义模型信息。双击列表中的语义模型,进入语义模型"卡片"界面,展示语义模型的详细基本信息。

语义模型的内部结构

语义模型主要由以下几部分构成:

  1. 元数据

    元数据是指描述数据的数据,是为了外界使用数据而对数据本身含义的阐述。拿我们最常见的二维数据(行列结构)举例来说,如果只有这些行列结构的数据,对我们来说这将毫无意义。因为我们无法知道哪一列的数据代表什么含义,无法知道如何操作这些数据,更别提由这些数据分析出有用的信息。反过来,如果针对这些数据指定了元数据,我们就可以了解哪一列代表的业务含义,并且知道该列的数据类型、长度、精度 等。这样,我们就能对这些数据进行加工处理,分析提取出有价值的信息。

    同理,语义模型的元数据是对执行语义模型后获取的二维数据的描述。元数据针对结果数据的每一列都提供了下列信息:数据类型、字段显示名、字段名、备注、长度、精度 等。有了这些信息,我们就能知道在业务应用中该如何使用语义模型。

  2. 描述器

    描述器是指对数据操作的描述,例如:过滤、排序、分页、汇总 等。在语义模型中,描述器表述了对语义提供者抽取的数据的加工处理过程。

    语义提供者负责抽取数据,同时对外提供元数据来描述这些数据。语义提供者的元数据一般是在语义模型内部使用。

  3. 语义提供者

    语义提供者,表述了一类取数方式,或者说如何提供数据的方式。在语义模型中,语义提供者负责把一类业务取数过程以语义脚本的形式描述出来。 为了能更好的理解这个概念,我们可以打这样一个比方:NC元数据、数据仓库、报表数据、总账数据 等 这些可提供数据的对象好比"数据水源",而语义提供者好比"水泵",语义模型好比"抽水机"。每种"数据水源"只支持特定的"水泵"来抽取数据。我们有了一种语义提供者"水泵",就能抽取其对应的"数据水源"里的数据。语义模型中能指定多个语义提供者,就相当于"抽水机"挂接了多个"水泵",我们就能从多个不同类型的"数据水源"来抽取数据。

    语义提供者负责抽取数据,同时对外提供元数据来描述这些数据。语义提供者的元数据一般是在语义模型内部使用。

  4. 描述器

    描述器是指对数据操作的描述,例如:过滤、排序、分页、汇总 等。在语义模型中,描述器表述了对语义提供者抽取的数据的加工处理过程。

    语义提供者负责抽取数据,同时对外提供元数据来描述这些数据。语义提供者的元数据一般是在语义模型内部使用。

  5. 首选项

    语义模型中的首选项包括三类数据:参数、宏变量、配置项。

        参数: 参数是模型中代表动态信息的元素,用于响应用户的输入。参数给用户提供了控制模型执行过程的机会。

        宏变量: 宏变量与参数类似,区别是,参数在模型执行时需要用户输入值;而宏变量不需要与用户交互,系统后台会根据上下文计算该值。

        配置项: 配置项用于控制语义模型的执行方式。

操作指引

语义查询模型,语义层的建模工具,将应用在三个方面:

业务报表: 语义模型作为报表的取数接口,通过iUFO的可扩展区域、取数函数等形式,将语义模型应用到自由报表和采集表。

分析报表: 语义模型作为事实表或维度表,构建在OLAP模型中,应用到透视表或透视图。

数据集成: 语义模型作为数据集成的主要数据输入接口,提供数据集成的原始数据,进行ETL操作。

语义模型的执行流程如下图所示:

语义模型执行过程可分为以下步骤:

第一步:语义模型脚本化

语义模型中的对象结构将转变为字符串形式的语义脚本。

第二步:脚本对象化

通过脚本引擎把语义脚本解析为脚本模型,即把字符串形式的脚本 对象化。

第三步:脚本模型翻译为SQL

基于脚本模型,处理其中的语义函数,把脚本模型翻译为标准SQL语句。

运行态描述器会在这一步被处理。

第四步:执行sql,把结果集封装为DataSet,返回DataSet。

由于运行态描述器的存在,每次执行语义模型时获取的最终sql都是不同的,但是,语义模型本身对应的脚本模型是相同的。基于性能考虑,我们可以把语义模型对应的脚本模型缓存起来。这样一来,只有第一次执行语义模型时,我们需要完整执行上述四个步骤,接下来的每次执行,我们只需取得该缓存的脚本模型,再做第三、四步的处理即可。

关键应用
语义模型查询列表界面

左侧"语义模型分类"页签

提供〖新增语义模型分类〗、〖修改语义模型分类〗、〖删除语义模型分类〗和〖刷新语义模型分类〗按钮。

右侧语义模型列表

展示当前语义模型分类中所有语义模型的列表情况。

语义模型卡片界面

在语义模型列表界面双击任一语义模型,进入该语义模型的卡片浏览态界面,同时提取相关字段的默认值。

卡片浏览态提供〖首张〗〖上一张〗〖下一张〗〖末张〗翻页工具栏按钮。

语义模型卡片界面功能按钮

与列表界面按钮相同。

其中:

〖新增〗:新增一个语义模型;

〖修改〗:修改该语义模型的基本信息;

〖删除〗:删除选定语义模型;

〖编辑〗:提供语义模型的剪切、复制、粘贴功能;

〖语义模型〗:提供语义模型设计和执行功能;

〖工具〗:提供导入、导出、性能监控、批量修改执行数据源、执行物化策略、结构概览和执行评估等功能。

语义模型设计、数据预览

语义模型设计:

在语义模型卡片界面,点击【语义模型】→【设计】按钮,打开语义模型设计窗口,按"选择表→选择条件→选择字段→描述器→选项"五个步骤设置语义模型的详细设置。

语义模型数据预览:

在语义模型卡片界面,点击【语义模型】→【执行】按钮,对设置的语义模型进行数据预览操作,显示当前语义模型的数据结果。

物化策略管理与执行

物化策略管理:

在语义模型卡片界面,点击【工具】→【物化策略管理】按钮,打开语义模型物化策略管理窗口进行设置。

执行物化策略:

在语义模型卡片界面,点击【工具】→【执行物化策略】按钮,选中语义模型后点击该按钮,如果模型已经定义了物化策略,则会执行该语义模型,并把数据写入到指定的物理表中。

批量修改执行数据源、结构预览、执行评估

批量修改执行数据源:

在语义模型卡片界面,点击【工具】→【批量修改执行数据源】按钮,选中语义模型目录后点击该按钮,可为所选的目录下的所有语义模型切换数据源(对子目录进行递归)。

结构预览:

在语义模型卡片界面,点击【工具】→【结构预览】按钮,进行对选中语义模型的结构进行预览操作。

执行评估:

在语义模型卡片界面,点击【工具】→【执行评估】按钮,进行对选中语义模型的执行情况进行评估工作。

按钮

〖编辑〗:剪切、复制、粘贴现有语义模型;

〖语义模-设计〗:设计语义模型详细属性;

〖语义模型-执行〗:预览语义模型的数据结果;

〖工具〗:进行物化策略、结构概览、执行评估等操作。

〖全局变量〗:维护全局性的宏变量,在分析平台所有模型中都可以使用。

注意

  1. 新增语义模型时,语义模型编码和名称为必填项;
  2. 语义模型编码必须以字母开头,不能以数字开头,且至少输入两个字符;
  3. 各语义模型之间,语义模型编码不能重复。
  4. 宏变量包括两种类型:sql类型、公式。Sql类型即指编写sql脚本,把该sql脚本执行后的数据集中第一行第一列作为该宏变量的值;公式类型指的是NC公式,即编写NC公式,并把该NC公式执行后的值作为宏变量的值。
常见问题

新增一个语义模型的基本流程是什么?

在语义模型查询列表界面,点〖新增〗按钮,输入语义模型编码和名称,点〖保存〗,在弹出询问是否进行设计的窗口中点〖是〗,按流程逐步设计语义模型后,点〖完成〗按钮,完成一个语义模型的新增流程。

新增一个语义模型点保存时报错,最可能的原因有哪些?
  1. 新增语义模型的编码与现有语义模型重复;
  2. 语义模型编码没有以英文字母开头;
  3. 语义模型编码录入长度应该在两位以上。