![cover](https://i-blog.csdnimg.cn/direct/c7e07c8584cf45c08b1d3ccbcf91f760.png)
SuccBI+低代码文档中心 —数据管理
模型的字段属性应该要具备一定的扩展能力,能够按照用户自己的需求给字段添加设置属性,方便用户对模型的使用。例如:需要给字段添加一个属性“业务含义”,以便知道该字段的具体业务。设置自定义属性的主要步骤:在系统字段表上添加字段,即为新增的字段自定义属性;这些新增的属性会展示在模型的字段列表中,手动编辑即可设置字段的自定义属性。模型的属性应该要具备一定的扩展能力,能够按照用户自己的需求给模型添加设置属性,
概述
数据管理介绍:SuccBI的数据管理包括数据的接入、建模、元数据管理、加工、调度、数据权限管理等等,用户使用SuccBI时只需要通过SuccBI提供的数据管理功能就能轻松管理企业数据仓库,避免了操作多种数据库管理工具,也无需DBA技能。
轻松管理企业数据仓库
SuccBI将数据仓库的数据连接、加工、模型、调度、聚集、优化、元数据等融为有机的整体,由系统集中管控,提供给用户简单易懂的操作界面和查看管理视图。
1、系统通过元数据管理的方式,提供给用户所有界面,用户只用操作逻辑层部分,屏蔽了物理层的技术实现,让用户更加易懂。
2、集中管控数据权限,可以将数据只授权给需要查看和使用的人员,让数据的使用更加安全。
3、提供数据资产管理视图,让用户轻松管理企业的主数据、数据元及数据标准。
4、用业务语言描述数据,让用户轻松浏览和查询数据。
5、无需人工介入,SuccBI支持智能并发调度,自动识别模型的依赖关系。
-
数据源
数据源(data source)是数据的来源,指的是SuccBI中所使用的数据库或者数据库服务器连接。数据源中存储了所有建立数据库连接的信息,数据源管理即对这些数据库连接进行管理。 -
数据模型
数据模型(data model)也叫模型(model)、模型表(model table),一张模型表可以是一张数据表,可以是一个SQL,也可以是一个数据加工。当讨论到数据建模、星型模型等数据仓库建设和规划的概念时,我们会统称为模型。
-
数据表
数据表(data table)也叫数据库表模型,是指在SuccBI中已经管理好元数据的、可以直接为数据分析和查询使用的“表”,数据表是一个逻辑层的概念,一个数据表总是对应一个物理数据库中的物理表或者视图,或者直接连接业务数据库中的物理表。 -
数据集
数据集(data set)是数据模型的一种,是在数据表、数据加工或者SQL的基础上过滤、排序、选择字段后形成的子集,是一个接近业务化的数据集合。
数据库表
数据库表(database table)是指数据库中的物理表。
-
事实表
事实表(fact table)是由度量和维度构成的一个数据表。一个事实表通常会存储一些列随时间变化的数据,如销量表、库存变化表、订单表等,事实表内存在多个维度,维键会关联维表形成星型模型。 -
维表
维表(dimension table)即我们通常说的“代码表”、“字典表”,与事实表典型区别是,维表通常不存储随时间变化的业务数据,维表通常存储的是一个业务单元的文本数据,如“产品维表”存储的是产品的ID、名称、颜色、尺码等。 -
字段:一个数据表/数据库表的一列。
-
度量
度量(measure)是事实表中的用于表示数值的字段,度量的数据往往是连续的,并带有单位(如元、户数、吨等),度量往往可以进行汇总或求平均值。 -
维度
维度(dimension key)也叫维键,是事实表中的用于表示数据属性的字段,维键通常会关联外部的一个维表,比如“行政区划”维键会关联“行政区划维表”,有些维键也可能没有关联维表,比如订单号、年份。 -
数据角色
数据角色表示一个字段的“技术类型”,比如日期、经度维度、行政区划……。 -
数据元
数据元(data element)是元数据管理中的一个概念,通过数据元定义、数据元标识、数据元表示以及数据元允许值等一系列属性描述的数据单元。在特定的语义环境中被认为是不可再分的最小数据单元。
相比于数据角色,数据元是有具体的业务意义的,比如“发货地址”和“收获地址”属于同一个数据角色,但是却不是同一个数据元,一个字段可以关联一个数据元。 -
星型模型
星型模型(star schema)是多维的数据关系,它由多个事实表(fact table)和维表(dimension table)组成,一个事实表及其相关联的维表在模型关联关系图上看起来像一个星星(一个事实表周围围着几个维表)所以形象的称之为“星型模型”。星形模型可以认为是雪花模型的一种特例,比雪花模型在查询方面更有效率。 -
雪花模型
雪花模型是在星型模型的基础上,维表又关联有其它的维表,在模型关联关系图上看起来像一个雪花,所以形象的称之为“雪花模型”。星形模型可以认为是雪花模型的一种特例,但比雪花模型在查询方面更有效率。
敏捷建模
在SuccBI中数据库物理表不能直接被系统的可视化分析、表单、应用等模块使用,它必须先转换为逻辑模型(如数据加工、APP模型)后再进行应用。相比物理表,逻辑模型能更好的、统一的管理模型的信息,比如可以给模型和字段设置业务化的名称、管理模型的关联关系、管理模型的聚集、子集、索引性能优化信息等。
数据模块中提供了导入数据库表模型的功能,可以便捷、灵活的将存储在外部数据库中的物理表导入为逻辑模型,并进行加工或查询分析。
SQL查询
点击顶部导航栏的数据,左上角点击新建>SQL查询,即可打开SQL查询界面。其中默认查询的数据源是项目设置>数据中设置的默认数据库。
SQL查询中使用参数
SQL查询除了基本的查询语句,还支持传递动态参数,如接收来自仪表板或者报表中定义的参数,用于sql查询的输入参数。在SQL语句中,用${参数名}来引用定义好的参数。
SQL查询和数据加工中SQL组件的区别:
1、sql查询通常是一个select语句,用于查询数据,查询的结果可以保存为数据模型。如果sql中包含insert,update,createtable等语句时,系统会提示不能保存,只能作为一个临时查询操作。
2、数据加工的SQL组件,一般作为加工的输入表组件,是加工的一部分,可能有insert、update、createtable等语句。
Elasticsearch模型
在传统数据库(如MySQL、Oracle)中进行检索时通常只能对字段进行简单的模糊匹配(使用LIKE或正则表达式REGEXP_MATCH),不仅检索效率低下而且查询的结果不能根据相关性排序返回,在海量数据的检索场景下更是束手无策。
Elasticsearch模型是指目标数据存储在Elasticsearch引擎中的特殊模型,基于该模型进行查询时,便能借助专业、成熟的Elasticsearch检索引擎轻松实现对海量数据的全文检索,不仅检索过程高效而且可以将检索结果自动按照相关性优先级排序返回,提升检索的体验。
通常当检索的表数据量很大、检索的对象是大文本信息时,需要用Elasticsearch模型替代基于传统数据库查询的方案来进行检索。
SuccBI提供的Elasticsearch模型将Elasticsearch中的索引看做普通的数据库表来进行管理。与其他模型不同的是,Elasticsearch模型不能用于数据加工,但你可以使用它轻松的实现如下功能:
1、创建新的索引、设置字段的分词器并传统数据库表中的数据提取到ES索引中。
2、使用第三方系统中已存在ES索引进行查询检索。
3、可视化制作的个性化检索页面使用ES中的数据检索。
属性介绍
数据来源
Elasticsearch模型支持添加多个来源模型,设置字段映射关系后,将数据同步到同一个Elasticsearch索引中,方便进行统一的检索,比如社区的全站检索,可以把不同业务模块的业务表(如问答表、博客表、文档表等)同步到一个Elasticsearch索引后进行检索。
来源标识
必填,用来区分数据来源。当有多个来源表时,同步到Elasticsearch后,需要根据该标识来区分数据行是来自哪个模型。比如将社区的问答表、博客表、文档表同步到ES时,可以分别设置三个表的来源标识为问答、博客、文档。
同步方式
同步方式指将来源数据同步到目标Elasticsearch的方法,类似数据加工的提取方式。支持三种同步方式:
1、全量覆盖
默认的同步方式,先根据当前来源表的来源标识删除目标表中的数据,再插入当前数据来源的数据,适合小数据量的全量更新。
2、清空旧数据并插入新数据
根据设置的清空范围条件以及来源表的来源标识先删除目标表中的旧数据,再插入当前数据来源的数据。常用于能按照固定时间周期增量同步数据的场景。
3、实时,功能暂未开发。
映射字段
Elasticsearch模型可以使用两种方式来创建模型的字段:
1、在模型的字段列表标签页手动创建字段
该方式适用于目标表结构明确的情况,先手动定义字段结构,再添加来源数据,并把来源数据的字段与已定义好的字段结构在映射字段列表中一一对应起来。
2、根据来源表的字段自动创建
可以通过选择字段对话框,勾选需要同步到ES的字段,点击确定时系统能自动将这些字段创建为Elasticsearch模型的字段,并生成一一对应的映射列表。
数据源标识字段
在ES模型中,用以区分数据的来源的字段,参见模型属性-数据源标识字段。
分词属性
分词是Elasticsearch模型特有的属性,在使用Elasticsearch模型检索时需要对其字符型字段进行简单的分词设置,以便ES能更高效、准确的提供检索服务。
智能映射:ES 检索提供了智能映射的功能,无需手动勾选分词设置,系统会智能推测字段的用途并勾选设置项。需要注意的是,系统智能推测的勾选项通常可以满足正常的应用需求,但并非最优的方案。在大数据量的场景下,建议根据实际需求,仅勾选必要的设置,以节省系统的软硬件资源。
系统自带了四种分词属性设置,需要根据字段的具体应用场景来选择:
提示:Elasticsearch不同的分词对应的分词器的设置详见ES数据源分词器。
不分词
不分词是指在Elasticsearch中字段的值不会进行分词拆分,只能使用原值与检索的词项进行匹配。通常不需要进行模糊查询的主键(如企业内部序号)、维键(如登记机关)、编号(统一社会信用代码)等字段选择为不分词。
英文分词
英文分词是指将英文文本数据按照英文分词器分词后存储在elasicsearch中进行检索,主要用于英文文本字段的检索,比如英文文章检索、英文的专利检索等场景。
拼音分词
拼音分词是指将文本数据按照拼音分词器分词后存储在elasicsearch中进行检索,主要用来进行同音查询和纠错查询,比如查询haitian,能匹配海天;查询无憾,能匹配武汉;查询思各baba,能匹配四个爸爸文化传媒(武汉)有限公司。
中文分词
中文分词是指将中文的文本数据按照中文分词器分词后存储在elasicsearch中进行检索,主要用于中文文本字段的检索,比如企业的经营范围、专利的说明书、产品的文档手册。
Elasticsearch模型处理关联关系
与传统的关系型数据库不同,Elasticsearch属于NoSQL,其不支持传统意义上的关联查询,即不支持两个表通过Join的方式联结在一起进行查询或过滤。但是实际应用中,常常遇到需要关联查询的场景,比如企业信息表关联登记机关维表获取省级登记机关、企业基本信息表关联企业主要人员表过滤查询与某人相关联的企业的基本信息等。
总的来说,需要关联的场景根据关联后数据量是否与主表相同,可以分为两种情况:多对一(或一对一)和一对多(或多对多),针对两种场景,Elasticsearch模型都能通过建模的方法解决。
使用字段冗余处理多对一或一对一的关系
多对一通常是事实表与维表的关系,比如企业基本信息表与登记机关维表(企业基本信息表是主表),一对一通常是两个事实表之间以主键关联的关系,比如纳税人信息表和纳税人扩展信息表(纳税人信息表是主表),这两种关系在传统数据库中可以直接通过关联获取副表的属性。在Elasticsearch中需要避免关联,可以通过建模将副表的属性直接冗余到Elasticsearch模型中,实际处理时分为两种场景:
1、设置关联表
如果需要关联的表是事实表维键中设置的关联表,如企业基本信息表的【登记机关】字段设置了关联表登记机关表,系统会自动将维表的所有字段冗余到Elasticsearch模型中,在使用时透明无感知,还是当做普通模型一样去制作应用的页面。
有时候关联维表的字段非常多,使用时用不到,出于性能的考虑,可以通过预连接功能只冗余部分字段到Elasticsearch模型中。
2、使用预加工
当需要关联的表是两个事实表时,通常不会把需要关联的副表当做维表设置为主表维键的关联表,可以通过提前进行一次加工(可以不提取)将需要冗余的字段在加工中提前准备好,再将该加工作为Elasticsearch的来源模型同步到Elasticsearch中。
使用Json字段处理一对多或多对多的关系
通常在使用时还会遇到一对多的关系,比如企业基本信息表和企业主要人员表,一个企业可以有多个主要人员,一个自然人又可以在多个企业担任职务。此时如何要查询与某个人相关联的企业基本信息时,传统数据库查询时是企业基本信息表作为主表使用EXISTS进行关联过滤,过滤表达式为:EXISTS SELECT([企业主要人员表].[主要人员ID],[企业主要人员表].[企业内部序号]=[企业基本信息表].[企业内部序号] AND [企业主要人员表].[主要人员代码]='要查询人员的代码')
Elasticsearch模型不能使用关联而是通过创建JSON字段,将企业的多个主要人员的信息存储在企业数据行内部(JSON字段里存储的是多个主要人员信息的json数组,Elasticsearch底层采用嵌套对象 (opens new window)实现)。
在JSON字段对话框需要设置如下属性:
1、字段名称:JSON字段的名称
2、JSON数据来源:需要关联的表,比如上面例子中就是选择:企业主要人员表
3、选择JSON属性:需要存储在JSON中的来源表的属性,关联的表字段可能非常多,可以只选择必要的字段存储在JSON中
JSON字段在字段列表中可以展开显示,并当做独立的字段设置其字段属性,比如数据类型、分词设置等,在应用时和设置了关联表的维键字段一样,可以展开JSON字段使用其子字段进行过滤和查询,比如上述传统关系数据库的写法表达式在使用Elasticsearch模型时可以直接写为:[企业基本信息].[QYRY_JSON].[主要人员代码]='要查询人员的代码'
导入为Elasticsearch模型
上文介绍的主要是将Elasticsearch当做数据仓库数据源,通过手动创建Elasticsearch模型,并添加来源模型,将来源的数据同步到Elasticsearch中进行全文检索的场景,在实际应用中,可能还需要把已存在的Elasticsearch索引导入为Elasticsearch模型,比如一个系统中部署了多个相关项目,多个项目可能都需要用到同一个Elasticsearch索引进行全文检索,但是只会在其中一个项目中进行数据的同步,此时便可以通过导入模型的方式将Elasticsearch中的索引导入为Elasticsearch模型,操作方式与数据表导入模型相同。
需要注意的是,在选择连接方式时,导入Elasticsearch时只支持实时连接(只读模型)和实时连接(读写模式)。
对于Elasticsearch模型来说,两种连接方式的区分是以实时连接(只读模型)方式导入后,是直接使用Elasticsearch索引进行数据的检索查询,同时在模型管理中数据来源标签页会被隐藏;而以实时连接(读写模式)方式导入后,实际上相当于只是设置了一下目标表的名称,还需要在数据来源标签页添加来源模型并提取数据。所以需要导入时,通常都是以实时连接(只读模型)方式导入使用的。
模型管理
使用数据加工生成的模型或导入已有的模型,在模型管理中可以设置模型属性和模型字段属性等内容。在数据模块的模型列表下,可查看当前项目中的数据模型,选中对应模型名称即可在右侧查看模型的相关信息。
在模型输出节点包括数据列表、字段列表、加工中的SQL语句、关联关系、树形结构、性能优化、血统分析、模型属性等,同时每个加工节点也提供了相关的属性设置。
同步物理表结构
逻辑模型与物理模型结构不一致
当模型结构(包括空白模型与数据加工模型)与输出的物理表结构不一致时,刷新按钮上会有红色感叹号标记,点击刷新按钮可查看模型表与物理表的差异,并勾选需要修改的差异信息同步物理表结构。
处理方式:
将勾选的差异同步到数据库表:将勾选的差异信息同步到物理表里,即按照模型表的设置
将勾选的差异同步到模型表:将勾选的差异信息同步到模型表里,即按照数据库表的设置
输入节点与来源表结构不一致
当数据加工的输入节点的模型表发生字段修改时,系统可以侦测到源头表的结构变化,在输入表上会显示一个黄色M标记,可点击刷新查看字段差异并更新字段结构:
处理方式:
1、将差异信息同步到输入节点:即同步来源表的物理表结构并更新数据,在后续加工节点中也会同步修改。
2、不同步:即不同步修改。
模型分类
数据级次
通常模型中的数据都是单级的,没有层次结构,当我们需要新建一个带有上下级关系的数据模型时,如行政区划,就需要用到数据级次属性。
数据级次又称数据层次,代表的数据之间的层次关系,如分段层次、父子层次等。建立一个规范的数据层次,便于快速完成带有上下级关系的数据分析需求,可运用于钻取、汇总等场景,如:在分省销售报表中从省级钻取到市级、汇总显示车企的整体销量。
支持的层次类型
为适应不同的字典数据,数据模型提供了三种层次类型:分段层次、父子层次、多字段层次,它们分别有相应的数据要求。
聚集管理
聚集管理是指在模型的性能优化 > 聚集中创建并管理其对应的聚集表,当模型的数据量较大、维度较多而分组查询的维度较少时,可以通过聚集表来有效提升查询效率。
通常,你可以直接使用加工来生成一个聚集模型,然后基于该聚集模型再制作应用,这种做法需要提前分析清楚维度分组查询需求、规划好聚集模型。比较适合于前期需求做的非常好,模型规划很清晰的情况。
与此不同的是,聚集管理支持聚集导航,允许你只需使用原始模型制作应用,系统根据查询需求智能选择聚集表替代原表执行查询,所以你可以在应用制作完成后再考虑聚集表的优化,同时也不会带来任何应用修改工作。
子集管理
子集管理是指在模型的性能优化 > 子集中创建并管理其对应的子集表,当模型的数据量较大,而查询时经常只需要查询某一个分区、数据期或较小范围的数据时,可以通过子集表来有效提升查询效率。
通常,你可以直接使用加工来生成一个子集模型,然后基于该子集模型再制作应用,这种做法需要提前分析清楚常见的分区查询或范围查询需求、规划好子集模型。比较适合于前期需求做的非常好,模型规划很清晰的情况。
与此不同的是,子集管理支持子集导航,允许你只需使用原始模型制作应用,系统根据查询需求智能选择子集表替代原表执行查询,所以你可以在应用制作完成后再考虑子集表的优化,同时也不会带来任何应用修改工作。
子集列表管理
子集列表属性
子集列表展示已经创建的子集表的信息,具体属性如下:
1、状态:子集表共有6种状态:未开始、等待中、执行中,正在刷新、取消中、完成、失败,只有当状态为完成时,子集表才能被子集导航使用。
2、子集名称:创建子集时设置的子集名称
3、最后刷新时间:最后一次提取的时间
4、数据行数:子集表中的数据行数
5、磁盘占用:子集表所占用的磁盘空间大小
6、压缩率:子集表行数/原表行数,压缩率越低在查询时性能提升效果越好,建议只创建压缩率在70%以下的子集表
7、近一周平均耗时:最近一周子集表提取的平均耗时,暂未实现
8、近一周查询次数:最近一周使用子集表执行的查询次数,暂未实现
9、命中率:子集表被查询总次数/原表被查询总次数,暂未实现
10、操作:
删除:删除当前子集表
编辑:弹出子集表设置对话框,可以修改子集表的配置,修改后子集表的状态被重置为未开始,重新提取后才能使用
执行:执行子集提取,详见执行子集
启用/禁用:详见启用和禁用子集
日志:查看子集表的提取日志,可以查看到子集对应的数据库表的表名
启用和禁用子集
可以单个或批量启用和禁用子集表:
单个启用/禁用:在子集列表的【操作】列中点击启用/禁用按钮来控制对应的子集表可用状态
批量启用/禁用:在子集列表的下方点击全部启用/全部禁用按钮来批量控制子集表的可用状态
提示:子集表被禁用后,在子集列表中会被置为灰色的不可用状态,子集导航只能使用已启用的子集表。
执行子集
子集表在如下几种情形下会执行提取:
在新建/编辑子集表的对话框中,勾选立即执行,确定后系统自动执行子集表的提取
手动在子集列表的操作列下点击执行
手动执行加工模型提取时,提取完成后在提取对话框的左下角会出现继续提取子表按钮,点击该按钮可以提取性能优化标签页下所有的子表,包括聚集表、子集表等
在系统调用管理中执行计划时,加工模型的所有子表包括子集表也会在加工提取完成后执行一次提取
提示
正常完成提取后,子集表状态会变为完成
加工重新执行提取后,子集表状态会变为未开始,也需要重新执行提取,才能被子集导航正常使用。
完成状态的子集表,如果进行了修改,那么状态会被重置为未开始,也需要重新执行提取
子集对话框属性
名称:子集表的名称
条件:生成子集的过滤条件,这里的条件只能使用有限的操作符
计算压缩率:通常压缩率小于70%才能有效提升查询性能,点击按钮可以实时计算当前条件下子集的压缩率,以便判断是否需要创建该子集
立即执行:勾选后,点击确定将自动执行子集表的提取,并弹出提取日志对话框
子集导航
在数据仓库应用中,通常需要对模型按照不同分区、数据期或范围进行过滤查询统计,你可以在原始模型的子集管理中定义多个子集表以适应不同的查询需求。
SuccBI支持子集导航功能,即在应用模型的地方使用原始模型来制作,如报表、仪表板等,系统执行查询时能根据所选的过滤条件在不改变原有输出结果的前提下智能选择过滤范围最小、数据量最小的子集表替代原表查询,以此提升查询效率,整个过程对应用完全透明,无需做任何修改。
提示:为了保证数据的一致性,子集导航只能使用已启用的、状态为完成的子集表。
例如,服饰的指标看板仪表板基于门店月销汇总表制作,默认只展示的是【湖北省】的指标数据,在门店月销汇总表中创建过滤条件为【区域编码】属于湖北省的子集表后,将使用该子集表替代原表查询。
模型属性(重点)
模型设置中可以设置模型的主键、数据期、提取设置、查询设置等,主要分为基本、提取、查询、高级四个方面的属性设置。
主键
主键由一个或多个字段组成,用来唯一标识一行数据,也常用于模型之间的关联,通常每个模型必须设置主键。同时系统可依据模型主键的设置自动识别数据集类型。
当模型具有目标数据库表的写权限或修改表结构权限时,设置的主键会在数据库物理表中创建主键约束,否则,主键只作为模型的逻辑属性。
通常,手动创建的空白模型或数据加工模型在保存时默认都会在数据库物理表上自动创建主键约束,而从外部第三方数据库导入的模型默认是直接读取物理表中的主键信息。
提示:
1、对于数据加工模型,只有允许修改表结构中勾选约束时系统才能自动将模型上的主键设置同步到数据库物理表中。
2、出于数据库性能的考虑,主键字段个数越少越好,主键字段的长度越短越好。通常为APP模型创建的主键字段可设置为整型的自增长字段或者使用SEQNUM函数生成唯一的序列号。
业务键
由一个或多个具有实际业务意义的属性组成,和主键一样,可以唯一标识一行数据。主键对应数据库物理表中的主键约束,通常是一个技术性ID,采用MD5、序列号等生成,比如员工ID,而业务键是具有实际业务含义的字段,比如员工工号或员工身份证号。
工作流中只能使用一个字段进行业务表之间的关联,当模型主键有多个字段时,此时需要设置一个业务键。
数据期类型
数据期类型用来表示模型的分类,可以帮助系统更准确的判断模型的使用方式和应用场景,系统也能根据模型类型自动进行一些逻辑处理,比如可以自动根据周期快照模型的数据期字段进行同比、环比的计算。
1、周期快照
表示数据表有确定规律的周期粒度,如年、年季、年月、日期等,选择该类型后,需要在数据期字段中指定存储数据周期的字段,如按照年月汇总的门店月销汇总表(opens new window)
2、缓慢变化
当数据修改不定期、需要记录历史并随时查询到历史时刻的全量数据、还想尽量节省数据库的存储空间时,可以选择缓慢变化类型。
缓慢变化类型需要先在模型中定义起止时间字段来标记数据的发生时间区间,并需要将起止时间字段分别设置为缓慢变化起和缓慢变化止,如记录企业变化信息的企业基本信息缓慢变化表(opens new window)
提示:当数据加工模型设置数据期类型为缓慢变化时,可以选择提取方式为插入缓慢变化数据并自动更新起止时间。
3、无,默认值,其他不明确的类型都可以设置为无,通常是维表、加工中的临时表等。
数据期字段
数据期类型选择为周期快照时必填,指定周期快照表中存储周期粒度的字段,通常是日期或时间戳类型的字段,也可以是设置为日期角色的字符型字段。
缓慢变化起
数据期类型选择为缓慢变化时必填,指定缓慢变化中数据的起始时间的字段,通常是日期或时间戳类型的字段,也可以是设置为日期角色的字符型字段。
缓慢变化止
数据期类型选择为缓慢变化时必填,指定缓慢变化中数据的截止时间的字段,通常是日期或时间戳类型的字段,也可以是设置为日期角色的字符型字段。
记录变化
数据期类型选择为缓慢变化时必填,记录变化用来设置哪些字段将被纳入缓慢变化中,只有纳入缓慢变化中的字段发生了修改,才会被认定数据发生缓慢变化。
提示:对于业务应用使用的缓慢变化类型的APP模型,如果没有设置为记录变化的字段发生了修改,会直接修改最新的那条数据。
记录变化可以选择如下方式中选择一种:
所有字段的变化,默认值
指定字段的变化
忽略指定字段的变化
最后修改时间
指定一个日期型或时间戳类型字段,用来标识数据行的最后修改时间,主要应用在如下场景:
1、在表单提交数据修改时系统自动修改最后修改时间字段的值,不需要表单专门提交这个字段。
2、有些增量数据提取的场景也会使用此字段进行增量的数据提取,比如按主键合并数据时,可以指定最后修改时间字段作为增量依据字段实现增量的合并追加。
最后修改人
指定一个字段,用来标识数据行的最后修改人,主要用于在表单提交数据修改时系统自动修改最后修改人字段的值,不需要表单专门提交这个字段。
只读数据
只读数据用于APP模型控制SuccBI对数据的使用方式和安全性,通常导入的第三方已存在的数据模型默认设置为只读,而系统内部自建的业务应用类的数据模型默认是读写的。
勾选时,不允许修改数据库物理表的结构及数据。
数据源标识字段
Elasticsearch模型特有的属性,Elasticsearch模型支持添加多个来源模型,并可以对每个来源模型设置一个来源标识,这些来源标识的值便存储在此属性指定的数据源标识字段中,用来区分目标表中数据行的来源。
数据校验结果标识
指定记录数据校验结果的字段,当数据行满足所有校验规则时为1,否则为0。
常用于在应用中批量导入Excel等数据时记录导入数据的校验结果情况,例如:批量导入人员采样信息 (opens new window)时,可以先将所有数据导入到人员采样信息-临时表 (opens new window)中,在临时表中记录导入数据的校验结果,并选择把校验成功的数据复制到最终的人员采样信息表中。
数据校验问题描述
指定记录数据校验问题描述的字段,当数据行不满足校验规则时,记录其问题描述,必须为clob类型。多个问题描述使用分号;隔开。
应用场景与数据校验结果标识相同。
数据校验规则ID
指定记录数据校验规则id的字段,当数据行不满足校验规则时,记录其规则id,必须为clob类型。多个问题描述使用分号;隔开。
应用场景与数据校验结果标识相同。
提取方式
设置数据加工以哪种方式把数据提取到目标数据库表中,系统提供了五种提取方式:
-
清空范围
在提取方式为清空旧数据并插入新数据时必须设置一个或多个条件,数据提取时会先按照清空范围的条件删除目标数据库表的旧数据再插入新数据。 -
支持回滚
默认不勾选,当支持回滚时,数据如果提取失败会恢复到提取前的状态,不支持回滚可以带来更好的提取性能,但在提取过程中目标数据库表的数据可能会被清空或出现抖动,同时如果提取失败则可能丢失数据。
数据仓库系统的模型加工中通常不建议勾选该选项,大数据量下会导致严重的性能问题。必要情况下,仅应用于核心的、小数据量表的数据提取中。
另外,提取方式设置为重建表时,不支持回滚。 -
重建索引和主键
仅用于提取方式为全量覆盖时,系统通过先删除表中索引和主键,待提取完成后,再创建的方式来提升数据提取的整体性能,默认勾选。
勾选时,系统会自动校验允许修改表结构是否勾选了索引和约束,若没有勾选,属性框下会有异常提示。
在提取方式为全量覆盖模式下,通常都会勾选,当数据源中没有修改数据库表索引和约束的权限时,则需要去掉勾选才能正常提取数据。 -
增量依据字段
用于按主键合并追加和只追加两种提取方式下的增量提取。
可设置一个增量依据字段,通常是一个自增长字段或数据创建时间字段(如交易时间),系统将先计算出目标表中增量依据字段的最大值,并在当前加工结果中过滤大于该最大值的数据,以实现只提取上一次提取后有增加的数据,不选择时将提取所有数据并追加到目标表。
例如,从电子商务业务数据库中同步交易订单数据到数据仓库时,可以设置增量依据字段为【交易时间】,数据提取时先计算出目标数据库表中的最大的交易时间,插入数据时先对来源表进行过滤交易时间>=最大的交易时间。 -
更新已有数据
用于按主键合并追加提取方式下设置合并策略,默认不勾选,当你需要对已存在的旧数据更新时需要勾选。
勾选后,合并更新时会更新除更新忽略字段列表选项勾选之外的所有字段。 -
更新忽略字段列表
提取方式为按主键合并追加且勾选了更新已有数据时,用来设置需要忽略更新的字段,默认更新全部字段。
通常用于合并更新时保留数据第一次插入到表中的某些字段信息,比如数据推送场景下,通常模型中会使用【插入时间】字段记录数据行的首次入库时间,在之后的增量推送过程中,只会更新数据行的其他业务字段,而不会修改【插入时间】字段。 -
定时调度
用于需要定时更新模型数据的场景,如数据仓库系统中,通常需要在每天晚上定时更新模型中的数据。定时调度可以给数据加工设置一个或多个计划调度,在计划运行时可自动执行数据加工提取,详细请参考调度管理。 -
依赖
在定时调度中指定了计划调度后,可选择一个或多个数据加工作为依赖模型。
通常该选项不需要设置,系统会自动分析依赖关系,只有在如下几种特殊情况下才需要手动设置:
1、添加到同一计划的数据加工存在循环引用,比如智能调度分析出的数据加工的引用关系为A依赖B、B依赖C、C依赖A,可手动设置A依赖C化解循环引用。
2、有些使用脚本、SQL等方式的数据加工,系统不能自动识别依赖关系,需要手动设置。
设置后,当计划在执行时,加工将在指定的依赖模型执行完成后才开始提取数据。
查询
排序字段
模型被查询时,设置其返回结果的默认排序规则,可添加一个或多个排序字段并指定排序方式。通常用于需要按照某种顺序显示数据的场景,比如提交请假申请单后显示的请假单列表通常应该按照【请假申请时间】倒序显示,最新申请的显示在最上面。
当应用页面中也设置了排序方式时,比如在数据集中指定排序字段、在仪表板中指定排序,则此处设置的排序方式将会被覆盖。
禁用模型缓存
创建数据加工模型时默认启用模型缓存,创建APP模型时默认不启用。
当多次或并发查询某个相同模型或页面的数据时,如果模型数据没有发生过变化,使用模型缓存可以避免系统向数据库重复发起相同的查询,而是直接从上一次的查询结果缓存文件中加载数据,可以用来提升系统的并发查询性能和吞吐量。
启用模型缓存适用于数据更新频次低的应用,例如数据仓库模型通常都是按日进行定期更新的,所以数据仓库模型非常适合使用模型缓存;而对于高并发的业务应用,则通常只应该对维表或字典表启用模型缓存,而频繁更新的业务表则必须禁用模型缓存!
警告
频繁更新的业务表为何要禁用模型缓存?业务表发生数据更新时,为了确保查询时数据的一致性,缓存文件会被标记为过期状态,而频繁更新业务表会导致系统陷入缓存文件过期、重新生成缓存文件、缓存文件再次过期的循环中,严重降低系统运行性能,在高并发下甚至可能导致系统瘫痪。
在系统内部进行的模型数据修改,如重新提取数据、使用表单修改数据,系统能自动侦测并使模型缓存文件过期,但如果使用的是第三方工具如PL/SQL Developer、Navicat等直接修改了表的数据,系统是不能侦测到数据变化的,此时必须在系统设置中清空Query缓存(可参考文档:缓存管理)或在此处勾选禁用模型缓存来直接向数据库查询最新的数据,否则会导致查询数据不一致。
过滤条件
模型表的全局过滤条件,当对模型进行加工或分析查询时,始终会带上该过滤条件进行查询。通常用于直接连接业务库的实时查询分析中,例如大屏实时分析展示电商平台的成交订单情况时,会先导入电商业务库的订单表为模型并设置全局过滤条件过滤出有效订单数据。
默认抽样条件
当数据表数据量比较大时,为了避免在被其他加工引用时,因为一个简单的操作,导致查询速度非常缓慢,可以设置数据表的默认抽样条件。设置后,当模型被其他加工引用时,默认抽样条件会默认被设置为引用节点的预览数据集中的只查询指定条件。
如销售明细表记录了近20年上亿条数据,在对这个表进行加工时,数据查询速度很慢,可以先在销售明细表的模型属性 > 默认抽样条件中设置【销售年份】为2020,预览数据时只查询2020年的数据,提升查询速度。
过滤条件和默认抽样条件的区别:
过滤条件:过滤条件是模型的全局过滤条件,在任何地方查询模型时都会带上该过滤条件。
默认抽样条件:默认抽样条件只在模型被其他数据加工引用且打开了预览数据时生效,作为预览数据时的默认过滤条件。
权限过滤字段
设置有效的级次权限过滤字段,通常用于如下场景:
当模型有多个字段关联了一个数据范围维度表,明确只用某个字段过滤权限。 如门店销售明细表 (opens new window)中有【导购员】和【收银员】2个字段都关联了数据范围维度表:员工表,希望登陆系统的员工只能查看自己的销售数据时,即需要过滤[导购员]=$user.id
,可以将【导购员】选择为权限过滤字段。
当模型有多个字段关联了一个数据范围维度,希望用多个字段过滤权限。如发票表中有【销方税务机关】和【购方税务机关】2个字段都关联了数据范围维度表:税务机关,希望登陆系统的税务人员能看到与其所在税务机关相关的所有发票时,即需要过滤[销方税务机关]=$user.org OR [购方税务机关]=$user.org
,可以将【销方税务机关】和【购方税务机关】选择为权限过滤字段。
如果不选择,默认情况下系统将自动找到模型表中所有关联了数据范围维度的字段,并随机选择其中一个字段进行过滤。
提示:
1、只有设置了关联表的字段才会出现在下拉选项中。
2、选择多个权限过滤字段时,多个字段的权限过滤条件为或关系。
高级
启用脚本
数据加工支持使用脚本个性化处理数据查询、数据更新、数据调度等逻辑,下拉框可选择:
1、不启用:默认值
2、前端脚本:仅APP模型才有该选项,运行在客户端
3、后端脚本:运行在服务端
关于前端脚本和后端脚本的详细介绍参见脚本模型。
指定脚本位置
在启用脚本中选择了前端或后端脚本的一种后,默认系统会自动将脚本存储到约定位置,使用者无需关心,可以勾选此选项来给脚本指定一个存储路径。另外,点击按钮定位到脚本位置可跳转到对应的脚本资源界面。
隐藏流程图
仅数据加工有该选项,表示隐藏数据加工流程图,默认不勾选。
模型扩展属性
除了上述的基本属性外,系统还提供了具备一定的扩展能力的自定义属性,当用户需要按照自己的需求给模型添加其他的属性时,可以设置模型的自定义属性,如添加一个属性模型业务描述,以便知道模型的具体业务意义,具体步骤可参考文档:如何设置模型的自定义属性。
关联关系
关联关系是指模型表与模型表之间的关系。根据关联类型分为两种:
事实表间关联:事实表之间通过关联关系表达式进行关联,通常会使用多个字段并可以设置关联方向。
维表关联: 主表中的一个维键字段与维表的主键对应,类似数据库的外键关联。
字段角色
字段角色又称数据角色,表示一个字段的扩展属性,比如日期、经度纬度、行政区划等。设置了角色的字段,可以帮助你更准确的判断这个字段的使用方式和使用场景。
系统内置的字段角色,分为五大类:日期、地理、文件、比率、其他。
地理
地理角色表示字段数据包含了地理信息,地理信息可以是行政区域或地理坐标。
地理角色分为五类:
中国行政区划: 表示字段存储的是中国行政区划编码,该编码需在系统内置的中国行政区划表 (opens new window)定义范围内,比如:北京的行政区划编码为110000。如果数据编码在内置表定义之外,该条数据将无法在GIS地图中定位。
国家地理信息: 表示字段存储的是世界国家编码,该编码需在系统内置的国家地理信息表 (opens new window)定义范围内。比如:中国的编码为China。如果数据编码在内置表定义之外,该条数据将无法在GIS地图中定位。
湖北自贸区: 表示字段存储的是湖北自贸区行政区划信息,本质是中国行政区划的子集,该字段数据同样需在系统内置的中国行政区划表 (opens new window)定义范围内。
经度: 表示字段存储的是地理坐标中的经度
纬度: 表示字段存储的是地理坐标中的纬度
中国行政区划、国家地理信息、湖北自贸区三种是区域型地理角色,主要用于标识数据的区域范围,方便基于GIS地图可视化分析时自动显示相应的底图。
经度、纬度是地理坐标型角色,主要用来标识字段存储的是经纬度信息,当字段类型为数值型时可以进行设置。
通常原始的经纬度是浮点型数据,为了提升经纬度分组统计的效率,可以将浮点型经纬度数据乘以100000后存储在整型字段中(如示例地址二)并设置为经纬度角色,系统将能自动识别并正确应用。
除此外,设置经纬度角色后,还可以设置属性经纬度精度,经纬度精度主要用于优化散点图、热力图的渲染效率。当图中点的数量非常多且密集时,会下载过多的数据,导致加载效率慢。设置了经纬度精度后,会按照设置的精度先将范围内的点进行聚集再下载和渲染,这样在地图较小时看不出与原始数据的区别,但是加载效率会快很多。
文件
文件角色表示字段以某种形式存储了文件信息,通过文件角色字段,系统可以正确的识别、预览和下载文件。
字段角色选择的是文件类型角色时会自动弹出字段存储设置对话框,如下:
文件角色分为三种:图片、文档、附件,前两者明确了文件的类型,便于理解字段的使用方式和场景,而附件是各种文件的一个统称。当字段只存储一种类型的文件,比如只存储了图片时,字段角色可设置为图片,当字段中存储了多种类型的文件或除图片、文档外的其他文件时则字段角色应设置为附件。
选择文件角色时,还可以在弹出的字段存储设置对话框中继续设置文件的存储类型和属性,如下:
文件存储类型
文件存储类型分为四种,具体如下:
1、默认文件存储服务:通用的附件存储服务,SuccBI自动管理附件在系统中的存储与读取,使用者无需关心,字段中记录的是文件在系统内部的ID值。通常用于业务应用系统中上传附件到系统中存储和使用,比如个人中心上传个人图像。
2、默认文件存储服务(去重):与默认文件存储服务基本相同,唯一区别是上传的相同文件在存储时会自动忽略只保存一次并在字段中记录同一个文件ID值。通常在海量附件存储场景时,可以节省文件的存储空间开销,比如在核酸检测人员采样中同一个家庭的人可以使用同一个身份证登记,上传相同身份证图片时系统只存储一份。
3、工作目录路径:字段存储的是相对于工作目录下的clusters-share目录的路径。通常用于将本地已存在的附件或批量附件读取到系统中使用,比如本地已经有整理好的所有企业图标附件,将附件存放在工作目录的clusters-share目录下后,可以在企业基本信息表 (opens new window)中的【企业图标】字段中存储图标的工作目录路径为dw-attachments/DEMO/picture/companies-logo/武汉奇普微半导体有限公司.png。
4、外部链接:文件来自于互联网,如http://www.xxx.com/path/to/image1.png,通过web接口应当可以获取到文件。当文件很大时,比如100M+,多个用户同时访问或下载时会大量占用系统的网络带宽从而导致系统整体的网络响应故障,解决这个问题的方案通常是将大文件使用第三方的互联网存储服务通过外部链接访问。比如,一个软件产品的社区网站通常也会发布视频课程,而这些视频课程的视频文件通常并不是存储在自身网站系统内,而是存储在第三方的视频服务网站,比如哔哩哔哩、腾讯视频、萤石云等,播放视频课程时实际上是通过外部链接跳转到对应第三方服务网站上播放的。
存储多个
字段是否存储多个数据项,详细介绍请参考字段存储设置。
存储附件属性
当文件存储类型不是外部链接时可以设置文件的属性,具体如下:
文件名字段: 指定一个字段存储文件的文件名信息,可用于下载附件时设置下载文件的名称。
文件大小字段: 指定一个字段存储文件的文件大小信息。
文件修改时间字段: 指定一个字段存储文件的文件修改时间信息。
设置后,上传附件时系统会自动将当前上传文件的名称、大小、修改时间信息记录在设置的字段中。
比率
比率角色主要用来标识字段存储的是比率数据,数值型字段可以设置该角色。
比率角色字段,比如毛利率,在分析应用中能自动显示为百分比格式。
其他
HTML
HTML角色表示字段内容是HTML,在应用中被显示时可以当做HTML来渲染。
例如,文章详情、产品介绍、个人简历等可以存储HTML信息在字段中并设置为HTML角色。
索引管理
索引管理是指在模型的性能优化 > 索引中创建并管理其对应数据库表的索引。当模型的数据量较大,而查询的结果集很小时(数据量一般小于原表10%),通常可以根据查询的过滤条件创建数据库索引优化性能。
提示:
索引管理是基于数据库索引机制的优化策略,通常用于传统的关系型数据库,如MySQL、Oracle,而对于分析的列式数据库(如vertica)、NoSQL(Mongodb、Elasticsearch)数据库等则没有索引的概念。
索引对话框属性
名称:索引在模型元数据中的存储的逻辑名称,创建在数据库物理表上的真实索引名是系统自动生成的
字段:从当前模型的字段列表中选择
排序:默认为升序,绝大部分索引都是升序的,仅当需要模型按照某个字段进行倒序排序时才可能需要创建倒序索引
作为唯一索引:点击显示高级选项,可选择勾选作为唯一索引,勾选后表示该索引的字段组合在模型的数据中是唯一的
移动字段:可以拖动字段前面的滑动图标来调整索引中多个字段的顺序
为什么需要调整字段顺序?
传统关系型数据库均是最左前缀匹配机制,即索引有多个字段时,必须按照字段顺序从左到右匹配。
举个例子,如果在企业基本信息表中创建了索引(登记机关,成立日期),当你执行如下查询时:
[登记机关]='湖北省武汉市工商行政管理局' AND [成立日期]='2020-01-08'
,可以使用索引 ✔️[登记机关]='湖北省武汉市工商行政管理局'
,最左前缀匹配,先匹配【登记机关】,可以使用索引 ✔️[成立日期]='2020-01-08'
,必须先匹配【登记机关】,不可以使用索引 ❌
正确的使用索引
实际项目中索引的优化分析比较复杂,但是从中我们总结出了一些通用的经验或规则,能让普通的业务人员也能正确的使用索引。
使用索引的前提条件
只有当查询的数据集是原表的一小部分(通常要10%以下)时,数据库才能使用索引提升性能。
在熟知使用索引的前提条件后,在创建索引时请遵循如下经验规则:
对于频繁进行更新的APP模型,索引的个数尽量不要超过5个,否则会影响数据插入和更新事务的性能
模型的维键通常需要创建索引,模型的主键数据库会自动创建唯一索引
A表关联B表,通常需要在B表的关联字段上创建索引
索引键的长度越短性能越好,不要在大文本字段上创建索引
创建复合索引时,需要将最常用来过滤的字段放在最前面
索引应该创建在经常用于过滤且选择性高的字段上
不等于、不包含、不为空等非运算不能使用索引
为空、包含、结尾是不能使用索引,开头是可以使用索引
过滤字段的数据类型与要过滤的值的数据类型不一致时,不能使用索引
字段被函数或表达式引用时不能使用索引
提示:部分数据库支持定义函数索引,目前SuccBI的索引管理中暂未支持
数据校验
在业务系统中数据质量非常重要,如果在业务流程中填报或录入了不合规范的数据可能会导致系统显示异常,严重的甚至可能影响业务功能的正常运行。在基于SuccBI低代码平台搭建的业务应用中,可以在前端设计器的输入组件中定义输入数据的校验规则,但是由于实际的业务系统中数据的来源方式比较多,如移动端、PC端、Excel导入、API接口等,需要在每个来源的页面都去定义相同的校验规则,很容易疏漏,不方便进行统一的管控。
数据校验是指在数据模型层面上定义数据的规范性约束,包括必填、逻辑校验、取数范围、数据唯一性等校验方式,不管数据是从哪里写入到模型中,都必须满足模型上定义的数据校验规则才能正常写入数据库。
另外,与输入组件的前端校验方式相比,模型上的数据校验属于后端校验,具有更高的安全性,黑客也无法通过伪造请求来绕过模型的数据校验。
逻辑校验规则对话框,具有如下属性:
校验字段:选择需要进行逻辑校验的字段
规则描述:当写入数据不符合校验规则时,显示的描述信息,可以引入表达式,比如描述可以为身份证号码(${[人员采样信息表].[证件号码]})必须为18位,在描述信息中可以显示出关键的身份证号信息
校验条件:在生效条件下满足该校验条件的为校验成功,比如【联系方式】必须为11位,校验条件写为LEN([人员采样信息表].[联系方式])=11
生效条件:只有当满足生效条件时该校验规则才生效,比如只有内资企业才需要填写某些指标、核酸检测中混样方式为10混1时采样人数不能超过10人等
自定义提示数据:勾选后可以添加多个提示数据键值对,以方便前端显示更加细化的提示信息,比如身份证号中性别信息与性别字段相符校验规则,不满足时最好能分别显示出身份证号、性别字段的值,则可以定义两条提示数据,如下:
数据校验的应用
模型上定义了数据校验规则后,在表单、SuperPage等页面进行数据的填写提交、批量导入数据时可以使用模型校验规则,分为两种场景:
1、应用中提交表单数据
在应用的数据集的权限设置中勾选启用模型上的校验规则,输入组件绑定的字段即可自动继承模型上的校验规则设置。
2、导入Excel批量校验并记录校验结果
实际应用中常常需要把外部的Excel、CSV等数据批量导入到目标表中,同时希望只导入校验成功的数据,导入失败的能查看校验结果情况。例如,批量导入人员采样信息 (opens new window),先把所有的数据导入到人员采样信息-临时表 (opens new window)并记录校验结果,再过滤校验成功的数据复制到目标表。
数据安全
数据脱敏、数据加密是系统中保证数据安全使用的两种方法,在数据模型中进行设置,可以提高数据的安全性和私密性,其效果如下:
脱敏
数据脱敏是对敏感数据进行遮盖处理,将敏感的信息部分或全部替换为*号或其他字符,例如身份证遮掩中间出生年月信息。数据脱敏不会修改数据库中物理表数据,只影响内容显示,不影响存储。
在数据列表下,选择对应模型表字段,右键点击脱敏与加密,勾选启用脱敏,设置脱敏规则即可对数据进行脱敏处理:
脱敏规则:当前系统中内置的脱敏规则有身份证号、手机号、姓名、地址、Email、年龄、银行卡、公司、数值等。
脱敏方式:当前系统有掩码数据脱敏和正则表达式数据脱敏两种方式,可根据需求使用不同方式自定义规则,相关设置参考文档数据脱敏。
加密
数据加密是指通过加密密钥和加密函数将数据转换成无业务意义的密文,接收者通过解密函数和解密密钥将密文还原成明文。数据加密会修改数据库中物理表数据,会将原始数据替换为加密后的密文,同时影响显示和存储,可以防止数据在存储和传输过程中失密。
在数据列表下,选择对应模型表字段,右键点击脱敏与加密,勾选启用启用加密,设置提取时加密即可对数据进行加密处理:
- 提取时:启用后,数据加工在执行提取时会按照选定的算法对数据进行加密或解密
- 加密算法:当前系统中内置的加密算法有SM4和AES,用户可根据需求进行选择,相关设置参考文档数据加密
- 自动解密:查询数据时,会自动解密
提示:
1、加密提取时,由于加密后字段长度会增长,若字段长度不足,需要增大字段长度。
2、加密之后,若要在第三方系统使用,需要使用密钥进行解密。
应用
脱敏与加密常用于密码加密、合同信息保密、敏感个人信息遮盖等场景。例如在展示企业基本信息时,对企业主要成员姓名使用*号进行遮挡处理,见以下示例:
常见问题
如何配置数据角色
数据角色,也叫字段角色,是对数据概念的业务归类,比如“日期"、"手机号码”,“身份证号”。
用户可以将自定义角色添加到自定义字段角色表 (opens new window)(/sysdata/data/tables/dw/DW_FIELD_CUSTOM_ROLES.tbl),表中定义的属性是系统内置属性,设置之后会在系统中自动发挥作用,包括:
数据脱敏,用户设置了该角色,且包含这个属性,所有明细查询都会自动返回数据脱敏后的结果。
是否合法,业务模块在过滤时可以作为过滤条件进行过滤。
数据校验信息,数据校验不合法时可以在界面上提示用户。
是否匹配,搜索时可根据该属性判断是否要搜索这个字段。
是否为空。
除此之外,用户可以定义个性化的属性在角色的关联维表中,这些属性可以在表达式和过滤条件中使用,使用方法和维项表达式相同。
元数据格式即维表的json结构,需要添加主键作为映射字段名,同时添加自定义计算字段,这些计算字段可以作为属性在模型中使用,可以是有实体的维表,也可以是个虚拟维表。
下面以一个身份证号的字段角色作为例子:
{
"version": "4.0.0",
"properties": {
"modelDataType": "App",
"primaryKeys": ["ID"]
},
"dimensions": [{
"name": "ID", // 主键必需,其他属性可以用这个主键进行表达式判断
"dataType": "C",
"length": 20,
"decimal": 0,
"isDimension": true,
"isPrimaryKey": true,
"originalField": "ID"
}, {
"name": "数据脱敏", // 设置了这个属性,查询明细数据时会自动返回脱敏后的结果
"dataType": "C",
"length": 50,
"decimal": 0,
"isDimension": true,
"originalField": "MASK",
"exp": "CONCAT(LEFT([ID], 3), '****', RIGHT([ID], 4))"
}, {
"name": "是否合法",
"dataType": "I",
"length": 2,
"decimal": 0,
"isDimension": true,
"originalField": "ISVALID",
"exp": "IF(LEN([ID])=18 or LEN([ID])=15, 1, 0)" // 表达式可以自定义修改
}, {
"name": "是否为空",
"dataType": "I",
"length": 2,
"decimal": 0,
"isDimension": true,
"originalField": "ISNULL",
"exp": "[ID] is null"
}, {
"name": "数据校验信息",
"dataType": "C",
"length": 64,
"decimal": 0,
"isDimension": true,
"originalField": "AUDITMSG",
"exp": "'身份证号不合法'"
}],
"measures": []
}
如何使用字段的自定义属性
模型的字段属性应该要具备一定的扩展能力,能够按照用户自己的需求给字段添加设置属性,方便用户对模型的使用。例如:需要给字段添加一个属性“业务含义”,以便知道该字段的具体业务。
设置自定义属性的主要步骤:在系统字段表上添加字段,即为新增的字段自定义属性;这些新增的属性会展示在模型的字段列表中,手动编辑即可设置字段的自定义属性。
如何设置模型的自定义属性
模型的属性应该要具备一定的扩展能力,能够按照用户自己的需求给模型添加设置属性,方便用户对模型的使用。例如:需要给模型添加一个属性“模型业务描述”,以便知道模型的具体业务意义。
设置自定义属性的主要步骤:在数据表信息表上添加字段,即为新增的模型自定义属性;这些新增的属性会展示在模型的属性列表中,手动编辑即可设置模型的自定义属性
设置方法:
1、添加自定义属性:系统数据>数据表信息表>编辑>增加列,增加自定义属性字段:【数值属性】、【字符属性】、【日期属性】、【时间属性】、【带维表的属性】
2、选择模型表,如QYFR_JYZT,在数据面板>属性列表>展示自定义属性对自定义属性列进行查看。
模型的自定义属性有关联维表时,会根据showType决定用什么控件展示属性
为空或"combobox": 下拉框;
“selectpanel”: 单选框;
“checkbox”: 多选框;
选择模型表,如QYFR_JYZT,在数据面板>属性列表>展示自定义属性对自定义属性列进行查看。
如何禁用模型查询的缓存
为了有更好的数据查询性能,在仪表板、报表等对象中查询模型表数据的时候会自动缓存已经查询过的数据。
当侦测到模型表的数据发生变化时(如重新提取了数据、使用表单应用修改了数据……)SuccBI会自动查询最新的数据。但是当使用系统外的工具修改了数据时(如直接使用数据库工具用SQL修改了表数据)那么SuccBI不会侦测到数据的变化,此时可以在系统设置中清空Query缓存,也可以通过本文的方法禁用模型的查询缓存功能。
禁用模型缓存后,用户查看报表、仪表板等等需要数据的页面时系统都会用SQL直接找数据库查询,不会提供应用层的缓存了。
常见的问题
数据交互,更新行数校验错误
更新的行数不符合设置的期望行数,请检查是否期望行数设置错误,或联系管理员。
可能原因:
1、勾选了大于等于100条数据进行更新操作,而检查更新结果设置为自动(默认)。自动(默认)指的是只能更新小于100条的数据条目。
2、勾选了数据进行更新操作,而检查更新结果设置为等于期望行数,但期望成功更新的行数输入框中没有设置期望值。
解决方法:
设置更新交互时,检查更新结果设置为等于期望行数。
期望成功更新的行数输入框中必须设置,设置为[列表1].[勾选行数]
即可。
更多推荐
所有评论(0)