目前, 依靠 "手工人力" 的电子表格数据治理模式逐渐被 "自动智能" 的专业工具取代. 数据管理员, 业务分析师开始采用 "平台工具" 来梳理主数据, 元数据, 构建模型和管控质量等.
以 A 公司为例, 在此之前, 其主要通过编写程序的方式定制化开发每个交易所的 API. 随着需要接入的交易所和用户量逐渐增多, 且交易所的 API 会不断迭代, 使得 A 公司面临许多问题:
需要针对每个 API 编写程序, 且每个 API 会不断地迭代, 导致维护成本巨大.
需要具备动态调整各个交易所 API 请求逻辑的能力.
需要具备实时接入新的 API 的能力.
监控与维护这套体系的成本较大.
本文将从 A 公司的具体背景着手, 详细解读: 应该如何借助工具解决 A 公司每天的数据抽取工作.
一, A 公司背景
A 公司专注为各种规模和复杂程度的金融投资机构提供一体化投资管理系统, 系统主要由投资组合管理, 交易执行管理, 实时监控管理, 风险管理, 绩效归因, 投资分析等功能模块构成.
通过产品持仓解析, 敞口分析, 绩效归因与风格分析, 产品风险管理分析, 情景压力测试分析, 交易成本分析到 FOF 投资分析, 自动生成投资业绩报告, 为基金经理, 管理者和投资者提供多维度, 高价值参考数据, 为合理决策提供可靠依据, 大幅度减轻基金经理工作量.
然而, 随着机构管理产品数量的不断增多, 大量数据分散在各券商 / 系统中且数据存储格式各异, 难以管理和利用.
为了帮助投资机构最大限度地提高投资决策和运营效率, A 公司需要实时监控自己的用户在各个交易平台的基本信息, 余额, 订单交易情况, 并需要根据分析结果及时给出投资建议.
二, 如何借助工具解决数据抽取问题
随着技术的日渐成熟, 相关平台工具系统的技术局限性如效率低, 差错率高, 扩展性差等将被一一攻破, 能够更加有效地帮助企业解放人力, 提高效率和精准度.
API 数据源可通过更友好的方式解决 A 公司在对接几十个交易 API 的过程中遇到的上述需求场景:
1. 一分钟完成单个 API 配置
单个 API 的配置包含: API 名称, URL 地址, 请求方式, 参数设置, 自定义高级设置.
参数允许用户填写: Text,webService,Timestamp,DependOn.
若用户的 value 是一个数值或者静态数组则选择 Text 即可, 若某一个 key 的 value 是动态的, 可选择 Web Service.
A 公司的 API-key 还有 symbol(或者 signature)是动态的, 用户无法给出静态值, 所以可通过该功能实现动态传参.
用户可根据每个 API 的特殊情况完成自定义高级设置: 若交易所 API 有请求频率的限制, 可使用「最大请求频率」功能设置. 若参数中需要指定分页参数, 也可在高级设置中完成.
DataPipeline 提供了指定「签名设置」, 以及分隔符等其他自定义设置, 目的是满足各个交易所的多种情况.
2. 允许用户在单个任务添加多个 API, 统一管理一个交易所的相关 API
可同时 (定时) 请求多个 API.
可统一管理单个任务下所有 API 的同步情况.
可动态修改 API 的任何配置项.
若某个 API 应用于多个任务时, 只要修改一个指定的 API 即可完成所有任务下同一个 API 的配置.
3. 自定义目标库表结构
用户可以根据需求指定目标库的表名称以及每个字段的所有属性.
DataPipeline 会自动检查目标库是否存在重名的情况.
可根据业务需求完成自定义字段内容, 包括: 字段名称, 字段类型, 精度, 标度, 主键以及其他.
4. 可视化调试解析逻辑与解析结果
DataPipeline 提供可视化调试工具, 内容包括: 清洗脚本编辑器, 样例数据栏, 运行结果栏.
上半部分为解析脚本编辑器, 用户可根据自己的解析逻辑完成解析脚本的录入与修改. 左下半部分为样例数据栏, 系统会自动获取该目的地表对应的 API 数据, 便于用户编辑解析逻辑.
点击「试运行」, 系统会立即返回样例数据经过解析脚本后的结果. 若运行结果符合用户预期(与设置的目标库表结构一致), 则点击「保存」即可.
5. 运行与监控 API 任务
当用户完成 API 配置以及目标库表结构设计, 则可以「激活任务」.
DataPipeline 在任务设置上会提供更多个性化设置(定时, 读写速率, 并发限制, 预警通知, 错误队列等).
用户在任务详情页可以很直观地看到每个任务的同步情况, 帮助用户降低获取各个交易所 API 数据的开发和运维成本.
数据作为资产, 对于其管理不是一劳永逸, 一蹴而就的. 在技术平台方面, 企业需要适时借助先进的技术提高运营效率, 最大限度地释放数据价值实现数据变现.
来源: https://www.cnblogs.com/DataPipeline2018/p/10455393.html