SAP HANA 提供以下可以在 BI(商业智能)系统建模场景中使用的视图:
BIMC_ALL_CUBES和BIMC_CUBES:包含CUBE的信息,其中BIMC_CUBES取自BIMC_ALL_CUBES,限制条件是 INTERNAL_CUBE = 0,排除了内部CUBE。
BIMC_DIMENSION_VIEW和BIMC_DIMENSIONS:虽然两个都包含维度的信息,但其实是有区别的,详见后边。
BIMC_MEASURES:包含度量的信息。
如何使用?很简单。加上_SYS_BI的Schema,如下边示例。
SELECT * FROM _SYS_BI.BIMC_ALL_CUBES
平时用得不是很多,这次也是看了官方文档整理一番,有一些常用的用法如取得模型的中文释义、字段类型。
SELECT
CUBE_NAME, --视图名称
DIMENSION_COLUMN_NAME, --字段名
COLUMN_SQL_TYPE, --字段类型
COLUMN_CAPTION --字段描述
FROM _SYS_BI.BIMC_DIMENSION_VIEW
WHERE CUBE_NAME LIKE '想要查的视图名称'
一、BIMC_ALL_CUBES和BIMC_CUBES
该视图包含CUBE的信息,具体字段释义如下。
英文名称 | 中文描述 |
---|---|
CUBE_ID | 视图的唯一标识符(此 ID 不稳定,仅用于内部用途) |
CATALOG_NAME | 以 <运行时容器>.<命名空间> 的格式表示的目录名称,例如,RTC1.sap.fi。如果是自由样式名称,仅为 <运行时容器>,例如,RTC1。 |
SCHEMA_NAME | 部署模式。对于 XSA 或 HDI,它包含运行时容器的名称。 |
CUBE_NAME | CUBE的名称。如果在 HDI 中定义了命名空间,CUBE名称就是不带命名空间的合格名称。 |
QUALIFIED_NAME | 包含基于 HDI 的视图的完全合格名称(包括配置的命名空间,如果有的话)- 例如,sap.fi::CostCenter。 |
VIEW_NAME | 此列的数据与 QUALIFIED_NAME 相同,根据视图类型进行格式更改。对于 HDI 视图,它保留 "::" 命名空间分隔符。对于混合场景中的存储库视图,将使用分隔符 "/" 代替 HDI 命名空间分隔符 "::"。 |
CUBE_TYPE | 此列表示视图的数据类别。对于分类为 DIMENSION 的视图,它指定 'DIMENSION',对于识别为 CUBE 的视图,它指定 'CUBE',对于数据类别为空的视图,它指定 'DEFAULT'(已弃用)。 |
CUBE_GUID | 总是 NULL(已弃用) |
CREATED_ON | 包含与 LAST_SCHEMA_UPDATE 相同的时间戳。 |
LAST_SCHEMA_UPDATE | CUBE最后部署的时间戳 |
SCHEMA_UPDATED_BY | 包含最后部署CUBE的用户名 |
LAST_DATA_UPDATE | 包含与 LAST_SCHEMA_UPDATE 相同的时间戳。 |
DATA_UPDATED_BY | 当前包含与 SCHEMA_UPDATED_BY 相同的用户。 |
DESCRIPTION | CUBE的默认描述或标签 |
ANNOTATIONS | CUBE的任何注释。默认为 NULL。 |
COLUMN_OBJECT | 此列标识目录对象,如生成的列视图或表,用于数据检索。它是 SCHEMA_NAME 和 QUALIFIED_NAME 的组合。例如,如果在 "RTC1" 模式中创建了一个 HDI 视图,其合格名称为 "sap.fi::CostCenter",则相应的列对象将为 "RTC1"."sap.fi::CostCenter"。 |
DEFAULT_SCHEMA | CUBE的默认模式。它用于查找,例如,需要进行货币转换的 TCUR* 表。 |
INTERNAL_CUBE | INT(0 = false, 1 = true)。此列指示模型是否应被多维客户端消费。当标志设置为 1 时,模型不打 |
BIMC_CUBES视图基于 BIMC_ALL_CUBES 表构建,限制条件是 INTERNAL_CUBE = 0。也就是说,只展示外部可见的视图。从 SP07 版本开始,BIMC_CUBES 视图只列出用户具有 SELECT 权限的视图。因此,可以通过使用 SQL 权限来限制最终用户看到的列表。
二、BIMC_DIMENSIONS和BIMC_DIMENSION_VIEW
BIMC_DIMENSIONS:这个表为模型的每一个维度以及“度量”维度提供了一个条目。也就是说,你可以在这个表中找到有关模型中每个维度的基本信息,包括“度量”维度。
BIMC_DIMENSION_VIEW:这是 BIMC_PROPERTIES 的虚拟视图,过滤条件是 PROPERTY_TYPE = 4 和 COLUMN_FLAG = 'Dimension Attribute'。它为立方体的每个属性和每个度量提供了一行最突出的属性信息。
总的来说,BIMC_DIMENSIONS 提供了模型维度的概述,而 BIMC_DIMENSION_VIEW 则提供了更详细的信息,包括每个维度的属性和度量。
英文名称 | 中文描述 |
---|---|
DIMENSION_ID | 维度的唯一标识符 |
CATALOG_NAME | 以 <运行时容器>.<命名空间> 的格式表示的目录名称,例如 RTC1.sap.fi。如果是自由样式名称,仅为 <运行时容器>,例如,RTC1。 |
SCHEMA_NAME | 部署模式。对于 XSA 或 HDI,它包含运行时容器的名称。 |
CUBE_NAME | CUBE的名称。如果在 HDI 中定义了命名空间,CUBE名称就是不带命名空间的合格名称。 |
QUALIFIED_NAME | 包含基于 HDI 的视图的完全合格名称(包括配置的命名空间,如果有的话)- 例如,sap.fi::CostCenter。 |
DIMENSION_NAME | 维度的名称 |
DIMENSION_UNIQUE_NAME | 维度的唯一名称 |
DIMENSION_SCHEMA_NAME | 指的是生成 COLUMN_OBJECT 的(维度)视图的模式名称。如果 COLUMN_OBJECT 不是来自维度,将使用CUBE的 SCHEMA_NAME。 |
DIMENSION_QUALIFIED_NAME | 代表产生 COLUMN_OBJECT 的视图的完全合格名称(包括配置的命名空间,如果有的话)。如果 COLUMN_OBJECT 不源自维度,则使用CUBE的 QUALIFIED_NAME。 |
DIMENSION_GUID | 总是 NULL(已弃用) |
DIMENSION_CAPTION | 从建模器中的描述或标签中获取 |
DIMENSION_ORDINAL | 起始于 0 的建模器定义的模型维度的序数。0 总是 [Measures]。 |
DIMENSION_TYPE | TIME = 1,MEASURES = 2,OTHER = 3 |
DIMENSION_CARDINALITY | 不同成员的数量 |
DEFAULT_HIERARCHY | 默认层次结构的唯一名称 |
DESCRIPTION | 未使用 |
ANNOTATIONS | 建模器尚不支持 |
COLUMN_OBJECT | 从哪里读取维度或主数据的目录对象(生成的列视图或表)的名称。这是共享维度的情况下的维度视图,或者是本地维度或左外连接的情况下的列视图。请参阅 BIMC_ALL_CUBES.COLUMN_OBJECT 字段的注释。 |
DIMENSION_CATALOG_NAME | 维度的包 |
IS_PRIVATE_ATTRIBUTE | 如果维度仅由私有属性组成,则包含 1。这意味着本地属性没有连接到视图,维度只包含一个属性,只存在扁平的标准层次结构。如果明确建模了维度,则包含 0。这意味着模型由(共享)视图表示,或者层次结构作为当前视图的一部分明确建模。 |
LAST_SCHEMA_UPDATE | 维度最后激活的时间戳 |
BIMC_DIMENSION_VIEW 视图
英文名称 | 中文描述 |
---|---|
COLUMN_NAME | 主视图中的列名,即BIMC_CUBES.COLUMN_OBJECT中的视图名。该名称在CUBE中全局唯一(可能有别名) |
KEY_COLUMN_NAME | 如果它是COLUMN_OBJECTNAME的键,则为COLUMN_NAME的值,否则为NULL |
MEASURE_TYPE | 注意:不要再依赖于此列。它可能不包含所有模型的信息。使用列MEASURE_AGGREGATABLE检查度量是否可以在客户端工具中进一步聚合。描述度量是如何在内部定义的 - 这可能需要那些希望在度量上进行计算的工具。此字段包含限定、基准、计算和可聚合计算的值。由于度量表达式在部署期间尚未评估,因此尚未使用最后一个值。 |
COLUMN_TYPE | "NULL"或列引擎数据类型。例如,66 = 固定,73 = int,83 = string,等等。 |
DISPLAY_COLUMN_NAME | 如果不应将此列用于AAO等工具的向下钻取/导航,则为COLUMN_NAME的值。列名源自BW的仅显示属性的概念,这意味着它只能作为其InfoObject/Dimension的详细信息显示,但不能用于向下钻取(切片和切块)。 |
CURRENCY_CONVERSION | 标志是否为度量定义了货币转换(在这种情况下,此字段填充为1)。如果未定义货币转换或者列是属性,则字段填充为空。 |
COLUMN_TYPE_D | 列引擎数据类型描述(FIXED,INT,STRING,...)。尽可能使用官方的COLUMN_SQL_TYPE。 |
DIMENSION_CAPTION | 维度的描述 |
CATALOG_NAME | CUBE的包 |
IS_PRIVATE_ATTRIBUTE | 标志属性是否是私有(本地)属性(在这种情况下,此字段填充为1)。如果它是一个度量或一个共享属性,那么该字段填充为0。 |
COLUMN_SQL_TYPE | 列的SQL类型,如官方SQL数据类型参考:http://help.sap.com/hana/html/_csql_data_types.html。如果需要为数据类型指定长度,则以不带任何空格的括号添加,例如VARCHAR(12),FLOAT(2)或ALPHANUM(66)。如果指定了精度和比例,则以不带空格的括号添加,用逗号分隔,例如DECIMAL(12,2),其中12是精度,2是比例。(注意,修订50之前,逗号和比例之间有一个空格)。 |
DIMENSION_TYPE | 维度类型:TIME = 1,MEASURES = 2,OTHER = 3 |
COLUMN_CAPTION | 列的标签(也称为标题)。使用此(语言相关)文本填充列或属性的标题或标签。 |
MEASURE_AGGREGATOR | 如果不是度量,则为NULL,或者应如何聚合此度量。 |
CUBE_NAME | CUBE的名称。 |
MEASURE_AGGREGATABLE | 如果不是度量,则为NULL;1:度量可能由客户端进一步聚合,聚合函数列在前一列MEASURE_AGGREGATOR中;0:度量不能由客户端进一步聚合,因为这会导致错误的结果。对于计算属性(如果在聚合后计算)和唯一计数器,情况就是这样。 |
DIMENSION_DESC_NAME | 在COLUMNOBJECT_NAME中存储的值帮助视图中维度描述属性的列名。由于我们允许在CUBE内对维度属性进行别名处理,所以此名称可能与DESC_NAME不同。此名称仅在COLUMNOBJECT_NAME中存储的值帮助视图中是唯一的。 |
DIMENSION_UNIQUE_NAME | 维度唯一名。 |
DESC_NAME | 主视图中描述属性的列名,即BIMC_CUBES.COLUMN_OBJECT中的视图名。该名称在CUBE中全球唯一(可能有别名)。 |
UNIT_COLUMN_NAME | 包含度量具有变量单位/货币的属性/列的名称。这在以下两种情况下发生:目标货币/单位由视图的另一列定义,在这种情况下,此列包含在UNIT_COLUMN_NAME中。目标货币由参数确定。在这种情况下,UNIT_COLUMN_NAME通常包含生成的目标货币字段。此列在部署时添加到视图定义中。在运行时,引擎用结果货币/单位填充它(即错误的情况下为null,否则为参数的值) |
DESC_TYPE | 维度描述属性的内部属性类型。例如,66 = 固定,73 = int,83 = string。 |
UNIT_TYPE | 如果度量具有固定单位/货币,则包含货币代码(例如,USD,EUR,...) |
DESC_TYPE_D | 查看COLUMN_TYPE_D的描述列 |
INFO_OBJECT | 分配给属性或度量的InfoObject的名称 |
DIMENSION_COLUMN_NAME | 在COLUMNOBJECT_NAME中存储的值帮助视图中的列名。由于我们允许在星联接中对维度属性进行别名处理,所以此名称可能与COLUMN_NAME不同。此名称仅在COLUMNOBJECT_NAME中存储的值帮助视图中是唯一的。 |
DESC_COLUMN_SQL_TYPE | 查看COLUMN_SQL_TYPE的描述列 |
SEMANTIC_TYPE | SEMANTIC_TYPE 列的语义类型:AmountValue(表示具有金额语义类型的度量);QuantityValue(表示具有数量语义类型的度量);currencyCode;unitOfMeasure;date(可以用来指示VARCHAR(8)字段在语义上携带数据);date.businessDateFrom;date.businessDateTo;geoLocation.longitude;geoLocation.latitude;geoLocation.cartoId;geoLocation.normalizedName |
三、BIMC_MEASURES
包含了度量的信息。
英文名称 | 中文描述 |
---|---|
CATALOG_NAME | CUBE的包 |
MEASURE_UNITS | 客户端应附加什么字符串以指示度量单位(包含与BIMC_MEASURES.UNIT_TYPE相同的值)。 如果度量已分配固定单位/货币,则包含该单位(例如,EUR,KG)。 如果度量已分配参数/其他视图列用于确定目标货币/单位,则包含一个空字符串 |
SCHEMA_NAME | 参见BIMC_CUBES |
DESCRIPTION | 度量标签 |
CUBE_NAME | 视图名称(分析视图,计算视图) |
UNIT_TYPE | 如果度量具有固定单位/货币,则包含货币代码(例如,USD,EUR,...)。 (与BIMC_DIMENSION_VIEW-UNIT_TYPE相同) |
MEASURE_NAME | 度量名称 |
UNIT_COLUMN_NAME | 从SP07开始,与BIMC_DIMENSION_VIEW-UNIT_COLUMN_NAME相同 - 包含属性/列的名称,该属性/列包含度量具有可变单位/货币的货币/单位。 这在以下两种情况下发生:目标货币/单位由视图的另一列定义。 在这种情况下,此列包含在UNIT_COLUMN_NAME中。 目标货币由参数确定。 在这种情况下,UNIT_COLUMN_NAME包含生成的目标货币列,该列的名称为.CURRENCY。 在部署时,将此列添加到视图定义中。 在运行时,引擎使用结果货币/单位填充它(即错误的情况下为null,否则为参数的值) |
MEASURE_UNIQUE_NAME | MDX方式的度量唯一名称,例如[Measures].[store_sales] |
MEASURE_CAPTION | 度量描述 |
MEASURE_GUID | 始终为空 - 使用已被弃用 |
MEASURE_DISPLAY_FOLDER | 当在用户界面中显示度量时要使用的路径。 文件夹名称由分号分隔。 嵌套文件夹由反斜杠(\)表示。 |
MEASURE_AGGREGATOR | 应如何聚合此度量:1 = SUM(= MDMEASURE_AGGR_SUM);2 = COUNT(= MDMEASURE_AGGR_COUNT); 3 = MIN(= MDMEASURE_AGGR_MIN); 4 = MAX(= MDMEASURE_AGGR_MAX)。 引擎中使用的聚合函数。 客户端需要在通过SQL查询度量时为度量使用此聚合函数:从CUBE选择ATTRIBUTE1 ..., sum(MEASURE1),max(MEASURE2)...按ATTRIBUTE1 ...注意:这并不总是意味着客户端可能会使用此聚合函数进一步聚合度量,因为对于计算的度量和计数器,这通常会产生错误的数字。 只有当MEASURE_AGGREGATABLE = 1时,才允许客户端聚合。 |
MEASURE_AGGREGATABLE | 可能的值为0和1。 1:客户端可以使用上一列MEASURE_AGGREGATOR中列出的聚合函数进一步聚合度量; 0:不允许客户端进一步聚合度量,因为这会导致错误的结果 |
DATA_TYPE | 度量类型的OLEDB表示。 3 = Int,5 = Double,131 = Numeric。 |
NUMERIC_PRECISION | 度量的最大精度 |
NUMERIC_SCALE | 除DATA_TYPE 131外,所有度量的比例都为NULL,其中存储度量的比例 |