1. 概述
1.1 应用场景
某公司旗下各个地区有多个分公司和分店,且使用同一套业务系统。
业务数据会全部汇总到总部的数据库内,分店只能在业务系统上看到特定的分析和数据,无法实现自定义分析。
总部希望对数据进行分权限管控:总部按照地区提供数据,一个地区的分店和分公司只能看到自己地区的数据,不允许看到其他地区的数据,各地区自行获取数据后在不同工具中进行数据分析和使用。
1.2 实现思路
总部使用 FineDataLink 的数据服务功能,将各个地区的业务数据通过设置 API 接口不同的请求参数,分发给各自区域。
各地区公司使用 FineDataLink 数据开发功能,将 API 接口数据处理落库。
各地区根据获取的数据自行在不同工具中进行数据分析和使用。
2. 操作步骤
示例:总部将业务系统的销售数据制作成 API ,安徽公司通过输入门店id,将销售明细数据落库,并在BI上制作每日销售看板。
2.1 总部生成 API 进行数据分发
生成API 方式详情参见:发布API
2.1.1 新增API
点击「数据服务」新建 API ,如下图所示:
进入 API 设置界面,选择发布的 API 的请求方式、路径以及超时时间,如下图所示:
选择要发布的数据源数据连接、输入 SQL 语句,并对设置的请求参数进行设置,storeID 即门店ID,year 即销售数据的日期,后续不同地区的公司将按照门店ID 作为请求参数从总部发布的 API 中取数,实现数据按照权限分发,如下图所示:
select * from xiaoshoue where 门店ID = ${storeID} and 订单日期 >= ${year}
点击查询预览,并输入测试数据,即可看到取数效果,如下图所示:
在「预览测试」中输入参数值,然后点击测试调用,即可看到预览的测试接口返回内容,如下图所示:
然后将 API 上线,如下图所示:
2.1.2 绑定应用
在「应用列表」中新建「应用」,进行API的绑定,如下图所示:
然后设置应用名称,并选择是否启用 AppCode 作为 API 的鉴权方式,选择需要被发布的API 进行绑定,同时可以设置授权有效期和访问频率,如下图所示:
保存后即可看到应用的详情,如下图所示:
2.2 分公司获取分发的数据
在「数据开发」中新建「数据转换」节点,并在编辑界面新增「API输入」算子,输入 2.1 节发布的 API 的访问地址,然后在 body 中设置请求,取出storeID 即门店ID为 88801,year 即销售数据的日期为2023 年数据,如下图所示:
详细操作步骤详情参见:使用数据服务已发布的API
同时若使用了 AppCode,则需要在 Headers 中设置。
然后即可在数据预览中看到取出的地区为安徽的数据,如下图所示:
然后对取出的数据进行 JSON 解析,并通过 SparkSQL 进行计算,求得每天的总销售额,如下图所示:
最后使用DB表输出将处理好的数据落库,如下图所示:
2.3 分公司使用获取的数据分析
分公司可使用落库的数据进行多种分析。
例如使用 BI工具、Excel 等等。
示例中将数据库数据接入至 FineBI ,如下图所示:
然后可以进行数据处理和制作可视化看板,如下图所示: