历史版本9 :FDL和FineBI组合应用示例 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 背景

某集团长期使用 FineBI 进行数据分析FineBI的使用流程为:

  • IT人员在FineBI中直接连接数据库数据,通过自助数据集对原始数据进行数据清洗和处理,形成业务可用的数据宽表;

  • IT人员做好数据宽表后,业务进行自助分析(直接制作仪表板或者对数据进行简单加工后进行数据分析)。

开发人员小A 在使用过程中发现一些问题:

  • IT人员在 FineBI 中直接连接数据库数据,进行分层处理数据,由于做了大量的数据清洗和处理工作,产生了大量的中间表,导致自助数据集冗余且杂乱。

  • 由于制作宽表数据也是在 BI 中进行处理的,大量的中间表和父子表引用导致数据更新时间长、且数据更新失败问题日益凸显,维护困难。

  • 由于公司同时还使用了 FineReport 和其他数据分析工具,因此希望 FineBI 中自助数据集处理后的数据表可输出至数据库,被 FineReport 和其他工具使用,目前只能通过其他工具实现。

本文主要介绍业务系统数据经过FDL处理落库后,FineBI 调用该数据进行自助分析的全流程,通过FDL+BI的组合方案解决以上三个问题。

1.2 思路

IT 人员通过 FineDataLink 对数据进行清洗整合等处理,形成业务宽表,并输出到应用数据库;

业务人员直接使用处理好的数据在 FineBI 中进行数据分析和仪表板制作;

使用 FineDataLink 可视化的操作界面和便捷的功能,将宽表数据直接输出到业务数据库,减少了 BI 中的中间表,解决了自助数据集冗余和更新时间长的问题,提高 FineBI 性能;同时 FineDataLink 处理并输出到数据库中的数据表也可以被其他工具使用。

2. 实现方法编辑

2.1 场景说明

FRDemo 数据库中存放着「CUSTOMER」、「DEMO_CAPITAL_RETURN」、「DEMO_CONTRACT」、「DEMO_PRODUCT」四张表。

简道云表单中也存放着与FRDemo 数据库结构相同的数据表「CUSTOMER」、「DEMO_CAPITAL_RETURN」、「DEMO_CONTRACT」、「DEMO_PRODUCT」。

现在希望对这些数据进行数据关联,生成业务宽表,直接在 BI 或者其他分析工具中使用,进行业务分析和仪表板制作。

数据表说明重要字段
「DEMO_CONTRACT」合同事实表合同ID(主键)、客户ID、购买的产品(产品ID)
「DEMO_CAPITAL_RETURN」合同回款事实表
合同ID
「DEMO_PRODUCT」产品名称维度表产品ID
「CUSTOMER」客户维度表客户ID

2.2 方案说明

1)将 FRDemo 数据库中的数据接入至 FineDataLink ,通过数据关联和数据清洗,生成业务宽表并输出到 FDLDemo 数据库。

2)将简道云中的表单数据接入至 FineDataLink ,通过数据关联和数据清洗,生成业务宽表并输出到 FDLDemo 数据库。

3)将两张宽表进行连接,合并成一张大宽表,并输出到 FDLDemo 应用库。

4)业务人员和其他用户使用 FineBI 或者其他工具连接 FDLDemo 应用库,使用业务数据进行数据分析和仪表板制作。

3. 操作步骤编辑

在进行操作之前,请将数据库与 FineDataLink 建立连接,详情参见:配置数据连接

3.1 构建数据库宽表

将 FRDemo 数据库中的「DEMO_CONTRACT」数据表与「CUSTOMER」根据「客户ID」关联、与「DEMO_CAPITAL_RETURN」根据「合同ID」关联、与「DEMO_PRODUCT」根据「产品ID」关联,生成一张业务宽表。

1)新建 ETL 任务命名为「数据库数据关联构建宽表」,使用数据转换,将 FRDemo 业务库中的「DEMO_CONTRACT」数据取出,便于后续进行数据关联,如下图所示:

同理,将「CUSTOMER」、「DEMO_CAPITAL_RETURN」、「DEMO_PRODUCT」数据也通过DB表输入取出,如下图所示:

2)新增「数据关联」算子,将四个数据表输入算子连接至数据关联,进行数据关联制作新的数据宽表,设置连接方式和连接字段,如下图所示:

点击预览即可查看跨数据库关联后的数据表,如下图所示:

注:预览效果展示不全,建议以数据库输出的数据为准。

3)对关联好的数据表进行字段设置,比如去掉重复的合并依据「合同ID1」等等,如下图所示:

4)将制作好的数据宽表命名为「SJK_kuanbiao」并输出到「FDLDemo」数据库中,如下图所示:

5)保存并执行任务,如下图所示:

3.2 构建简道云宽表

将简道云中的表单数据接入至 FineDataLink ,通过数据关联和数据清洗,生成业务宽表并输出到 FDLDemo 数据库。

简道云数接入 FineDataLink 可参考简道云输入

注意在简道云表单接入前,可提前设置字段别名,否则接入到 FineDataLink 中时会使用字段原始名,不便于你的业务处理。

1)新建 ETL 任务命名为「简道云数据表关联构建宽表」,使用数据转换,将简道云表单中的「DEMO_CONTRACT」数据取出,便于后续进行数据关联,如下图所示:

同理,将「CUSTOMER」、「DEMO_CAPITAL_RETURN」、「DEMO_PRODUCT」数据也通过简道云输入取出,如下图所示:

2)本示例中没有在简道云设置别名,因此可以在字段设置中调整字段名称,如下图所示:

3)新增「数据关联」算子,将四个数据表输入算子连接至数据关联,进行数据关联制作新的数据宽表,设置连接方式和连接字段,如下图所示:

点击预览即可查看跨数据库关联后的数据表。

注:预览效果展示不全,建议以数据库输出的数据为准。

3)对关联好的数据表进行字段设置,比如去掉重复的合并依据「合同ID1」、修改字段名称等等,如下图所示:

4)将制作好的数据宽表命名为「JDY_kuanbiao」并输出到「FDLDemo」数据库中,如下图所示:

注意可以通过字段映射调整数据表输出时的字段排列顺序。

由于下一步要进行 union 操作,因此需要保证输出的两张宽表字段排列顺序和字段类型一致。

5)保存并执行任务,如下图所示:

3.3 跨数据源表连接

将两张宽表进行连接,合并成一张大宽表,并输出到 FDLDemo 应用库。

1)新建 ETL 任务命名为「调用」,添加调用任务,命名为简道云宽表构建,即调用了操作步骤中简道云宽表构建的任务,如下图所示:

2)同理,调用 FRDemo 数据库宽表构建的任务,如下图所示:

3)新增「数据转换」节点,将已经存放至 FDLDemo 数据集中的「JDY_kuanbiao」和「SJK_kuanbiao」数据通过DB表输入取出,方便后续通过 SQL 进行 union 连接,如下图所示:

4)添加「Spark SQL」节点,使用 union 语句对数据表进行连接,如下图所示:

5)此时跨数据源合并的宽表已经完成,通过 DB 表输出,将数据表落库至 FDLDemo 即可,如下图所示:

6)保存并执行任务,如下图所示:

3.4 数据使用

业务人员在 BI 中直接接入 FDLDemo 数据库数据,进行仪表板制作和数据分析。

同时数据也可被其他应用使用。

4. 效果查看编辑

FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 「场景案例>帆软产品组合应用」下「FDL&BI组合应用」。