SAP HANA 建模:完整教程
什么是 SAP HANA 建模?
SAP HANA 建模是我们创建信息视图的活动。信息视图类似于 BW 的维度、多维数据集或信息提供者。此信息视图用于创建多维数据模型。
SAP HANA 建模概述
建模是用户根据业务场景创建信息视图,细化或切分数据库表中数据的活动。这些信息视图可用于报告和决策目的。
信息视图由各种内容数据的组合构成,以创建业务场景的模型。
信息视图中的内容数据有两种类型 -
- 属性: Descript可测量且不可测量的数据。例如供应商 ID、供应商名称、城市等。
- 测量: 数据是可以量化和计算的。例如 Revenue、销售量和计数器。该度量源自分析和计算视图。无法在属性视图中创建该度量。
属性类型
SAP HANA 支持三种类型的属性 –
属性类型 | 游戏及活动 |
---|---|
简单属性 | 它源自数据基础。 |
计算属性 | 它由一个或多个现有属性和常量派生而来。例如算术计算或从名字和姓氏派生出全名。 |
局部属性 | 它在建模视图(分析视图/计算视图)中用于自定义属性的行为,因此它是本地的 造型 视图并且无法从建模视图之外访问。 |
测量类型
SAP HANA 支持四种类型的测量 -
属性类型 | 游戏及活动 |
---|---|
简单测量 | 它源自数据基础。 |
计算测量值 | 它由一个或多个现有的度量、常量和函数派生而来。例如算术计算。 |
限制措施 | 它用于根据用户定义的属性值规则来过滤值。 |
Counter | 这是显示属性列(分析视图/计算视图)唯一编号的特殊类型的列。它用于对一个或多个属性列进行计数。 |
信息视图有以下三种类型 -
- 属性视图 – 用于主数据上下文。
- 分析视图 – 这用于创建事实表,类似于BW的Cube。
- 计算视图 – 这用于创建复杂的视图,类似于 BW 中的多个 Provide。
为了工作 SAP HANA,用户需要权限,以下是所需的权限 SAP HANA 建模 –
建模所需的权限
特权为以下方面提供保障 SAP HANA数据库,通过该数据库,授权用户只能访问授权内容。
对象权限 –
对象权限是 SQL 用于提供对数据库对象的读/写访问的权限。以下是建模所需的对象权限。
- 对 _SYS_BI 模式的 SELECT 权限。
- 对 _SYS_BIC 模式的 SELECT 权限。
- REPOSITORY_REST (SYS) 上的 EXECUTE 权限。
- 对表架构的 SELECT 权限。
套餐特权 –
需要包权限才能授权对单个包执行操作。以下是数据建模所需的包权限:
- 根包上的 REPO.MAINTAIN_NATIVE_PACKAGES 权限。
- 用于内容对象的包上的 REPO.READ、REPO.EDIT_NATIVE_OBJECTS 和 REPO.ACTIVATE_NATIVE_OBJECTS。
分析权限 –
访问 SAP 需要 HANA 信息视图分析权限 –
- 如需查看所有信息的完整数据访问权限,请查看 SAP HANA 系统,需要“_SYS_BI_CP_ALL”分析权限。对于受限数据访问,需要创建分析权限并将其分配给用户。
其他优惠-
- 向 _SYS_REPO 用户提供对自己架构的授权,方式为‘GRANT SELECT ON SCHEMA “架构名称” TO _SYS_REPO WITH GRANT OPTION’;
- REPO.MAINTAIN_DELIVERY_UNITS 用于创建交付单元。
- REPO.IMPORT、REPO.EXPORT 用于交付单位的进口/出口。
- REPO.WORK_IN_FOREIGN_WORKSPACES 用于在外部工作区中工作。
SAP HANA 创建信息模型的最佳实践
SAP HANA 最佳实践是创建对象时的标准 SAP HANA 数据库。以下是对象的最佳实践 –
包:
- 为开发工作创建一个顶级包,如“开发”。
- 为每个开发人员在顶级包下创建一个子包。
- 如果需要,还可以创建更多子包。
架构:
- 在开始项目之前设计您的架构布局。例如(DS_SCHEMA、SLT_SCHEMA、FI_SCHEMA、SD_SCHEMA 等)。
- 自定义表应该位于单独的模式中。
表格:
命名约定:
对象 | 格式 | 描述 |
---|---|---|
属性视图 | AT_产品 | AT_….. 表示属性视图 |
分析视图 | AN_销售量 | AN_…..表示分析视图 |
计算视图 | CA_销售量 | CA_….. 表示计算视图 |
分析特权 | AP_REST_AT(属性视图) AP_REST_AN(分析视图) AP_REST_CA(计算视图) |
AP_... 表示分析权限 |
等级制度 | HI_BNAME_PC(父子)
HI_BNAME_LV(级别) |
HI_… 表示层次结构 |
程序 | SP_程序名称 | SP_…存储过程 |
输入参数 | IP_PARA_NAME | IP_…表示参数 |
变数 | VA_VNAME | VA_…表示变量名 |
在中创建包 SAP HANA 工作室
包装: 它是一个容器,以组的形式包含有关模型的所有信息(属性视图,分析视图,计算视图等)。
包裹类型: 套餐有两种类型,如下所示 -
类型 | 描述 | 图标 |
---|---|---|
结构 | 在结构包中,只能创建子包。在结构包中不能创建信息视图(属性视图、分析视图等)。
结构包装示例 – SAP,系统本地,系统本地。生成,系统本地。私人。 |
|
非结构性 | 非结构化包可以包含信息对象和子包。这是默认包。 |
包装用途: 包组都是信息模型,使模型传输更加方便。两种包都可以用于传输。
创建结构包的步骤 SAP HAN Studio-
步骤1) 在此步骤中,
- 选择Hana System,这里是HDB。
- 转到内容文件夹。
步骤2) 在此步骤中,
- 选择新建。
- 选择包裹选项。
步骤3) 在此步骤中,
- 输入包名称。例如“DHK_SCHEMA”。
- 输入 Descript离子包。
- 默认选择原始语言和负责人。
将在内容节点中创建名称为“DHK_SCHEMA”的非结构包,如下所示 -
步骤4) 现在,将非结构包转换为结构包。
- 选择包“DHK_SCHEMA”并右键单击它。
- 转到包的编辑选项。
步骤5) 在此步骤中,
- 在结构选项字段中选择“是”。
- 单击“确定”按钮。
当我们的“DHK_SCHEMA”从非结构化包更改为结构化包时,图标样式将从 至
。这表明非结构化包现在已转换为结构化包。
在结构包下创建非结构包作为子包的步骤。
包默认创建为非结构包。在非结构包中,可以创建其他包和信息对象。最好先创建一个结构包,然后在其中创建一个子结构包。
步骤1) 在此步骤中,
- 选择结构包“DHK_SCHEMA”并右键单击它。
- 选择新建 -> 包。
步骤2) 在此步骤中,
- 在名称字段中输入子包名称。
- 输入它的描述。
- 点击“确定”按钮。
将在 DHK_SCHEMA 包下创建一个新的非结构化包作为子包。
SAP HANA性能优化技术
性能优化技术有以下规则 -
- 所有信息视图和表视图都应与投影节点一起使用。投影节点通过缩小列集来提高性能。
- 通过在投影节点应用过滤器。
- 避免在计算视图中使用 JOIN 节点,使用 UNION 代替。
- 使用输入参数/变量来限制分析/计算视图内的数据集。
- 计算应在聚合之前完成。
- 层次结构需要在计算视图中重新定义,属性视图的层次结构在计算视图中不可见。
- 属性视图的层次结构在分析视图中可见。
- 属性视图、分析视图和计算视图中定义的属性标签和度量描述不会显示在计算视图中。我们需要重新映射它。
- 不要混合 CE 功能和 SQL 信息模型中的脚本。