本章节描述了如何搭建一个财务模型结构。
登录先胜云,选择目标空间,点击进入目标应用,即进入 元素管理 界面,点击 + 新建,在 组件 类型中选择 财务模型。
进入财务模型创建方式选择界面,此处选择是利用一个已有的数据表元素来创建财务模型,还是新建一张数据表来创建财务模型。
如果选择了 手动创建,则会首先弹窗要求选择数据表的数据源是 Mysql 还是 Clickhouse,即选择将要创建的是数据表 - MySQL,还是数据表 - CK。选择不同的数据源将对效率及读写功能有一定的影响,详见下文 不同数据源读写功能区别。
如果选择了 从已有数据表创建,则需在弹窗中从元素目录中选择所需要的数据表。
进入财务模型编辑界面,点击右上角 高级设置 > 度量设置。
财务模型结构将影响后台数据表的创建,因此在进行其他配置前需先配置财务模型结构,且保存后不可以再次编辑。不同的财务模型结构对读写功能有一定影响,详见下文 不同数据源读写功能区别。
关于财务模型的结构,主要由其事实表的结构决定。根据事实表中字段的作用,可以分为以下三种结构:
我们以一个模拟应用场景的图示为例:
在上图描述的财务模型中,除了场景,版本,年份,期间,门店,产品和渠道这几个字段分别关联了一个维度之外,3个度量字段:销售量,单价,销售额都被设置成了科目维度的成员。这种财务模型的结构比较适合进行科目间的计算,如需通过 销售量*单价 的方式计算销售额。
上图的财务模型中数据存储的内容示例如下表:
|场景|版本|年|期间|门店|产品|渠道|销售量|单价|销售额| | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | —- | |Actual|Version1|2020|1|Store01|Coffee|Off_line|1000|25|25000| |Actual|Version1|2020|1|Store01|Coffee|On_line|600|25|15000| |Actual|Version1|2020|1|Store01|Cake|Off_line|300|35|10500|
在上图所示的财务模型结构中,度量是期初数,1月,2月,3月…12月等字段,这些字段可以被设置成期间维度的成员。这种数据结构比较适合进行数据的当期数或者累计数的计算。
上图的财务数据模型中数据存储的内容示例如下表:
场景 |
版本 |
年 |
科目 |
门店 |
产品 |
渠道 |
期初数 |
1月 |
2月 |
3月 |
---|---|---|---|---|---|---|---|---|---|---|
Actual |
Version1 |
2020 |
Volume |
Store01 |
Cake |
Off_line |
0 |
300 |
200 |
400 |
Actual |
Version1 |
2020 |
Price |
Store01 |
Cake |
Off_line |
0 |
35 |
35 |
35 |
Actual |
Version1 |
2020 |
Amount |
Store01 |
Cake |
Off_line |
0 |
10500 |
7000 |
14000 |
在这种财务模型的结构中,可以看到所有的维度均有其对应的一列维度列。此时的度量列上并没有实际的业务含义(如科目或者期间等),仅仅由于数据库存储数据的需要将其分为了数字类型数值和文本类型数值这两列。并且,对一行数据来说,这两列度量仅一个字段能够有值。这是因为在财务模型中,一种维度组合表示一个单元格,只能对应一个数值,而其数值的类型由科目的数据类型属性决定。科目中除了数据类型为 数字 的,其对应的值存储在数字类型数值的度量字段上,其余均存储在文本类型数值的度量字段上。
上图的财务数据模型中数据存储的内容示例如下表:
场景 |
版本 |
年 |
期间 |
科目 |
门店 |
产品 |
渠道 |
数字度量 |
文本度量 |
---|---|---|---|---|---|---|---|---|---|
Actual |
Version1 |
2020 |
1 |
Volume |
Store01 |
Cake |
Off_line |
200 |
- |
Actual |
Version1 |
2020 |
1 |
Price |
Store01 |
Cake |
Off_line |
35 |
- |
Actual |
Version1 |
2020 |
1 |
Amount |
Store01 |
Cake |
Off_line |
7000 |
- |
需要注意的是,财务模型的结构,在不同的数据源下,读写功能会有一定的区别,如下表:
Mysql 数据源 |
Clickhouse 数据源 | |
---|---|---|
结构一:将度量列设置为科目维度成员 |
完整功能 |
不支持对单个单元格的写入,更新和删除操作 |
结构二:将度量列设置为期间维度成员 |
完整功能 |
不支持对单个单元格的写入,更新和删除操作 |
结构三:不将度量设置成任何维度的成员 |
完整功能 |
完整功能 |
在使用 ClickHouse 作为数据源的财务数据模型中,如果选择了将度量设置为科目或者期间的结构,则该财务模型不支持对单个单元格(所有维度的维度成员的一种组合定义为一个单元格)的写入,更新和删除操作,即无法通过在数据透视表,固定格式报表等元素实现数据的录入,仅允许通过脚本实现对财务数据模型中整行数据的写入,更新和删除功能。 |
对于三种数据结构的取舍,可以遵循这样的原则:
如果数据量较大(1000万单元格以上),需要使用 ClickHouse 作为数据源,并且需要通过数据透视表或者静态表进行数据的录入,则采用结构三。
如果使用了 ClickHouse 作为数据源,但并不需要使用数据透视表或者静态表进行录入,仅是将其用作数据查看的工具,则采用结构一或者结构二。
如果需要较多的进行当期数/累计数之间的计算,则推荐使用结构二。否则可以使用结构一。
在 Mysql 数据源中,不推荐使用结构三,因为结构三会占用最多的数据行数,在 Mysql 数据库下的性能较差。
添加字段,选择字段类型后输入字段名。 字段类型有如下几种:
文本
整数
小数
日期时间
鼠标悬停在数据表字段左侧图标,下拉选择 维度,即设置了数据表字段关联维度。
点击 保存 按钮,在弹窗中输入编码等信息,选择保存位置后,点击 确定, 保存成功即搭建了一个财务模型。
列作用为科目类的字段必须设置,否则财务模型无法保存成功。
在财务模型新建时,可以选择启用 自动进行当期数和累计数的汇总计算 属性。启用属性的步骤如下:
点击左上角未命名后的属性编辑按钮。
在右侧属性栏中,打开 自动进行当期数和累计数的汇总计算 开关。
设置资产负债类科目和损益类科目的数据存储方式,即数据表中存储的数据是当期发生数还是累计数。
若属性 自动进行当期数和累计数的汇总计算 在财务模型新建时没有开启,则保存后不可以再次编辑。
设置完财务模型属性和字段之后,点击右上角 保存 按钮,在弹框中输入编码等必填信息后,点击 确定,即完成了财务模型的创建。
回到顶部
咨询热线