DataPipeline丨金融行业如何统一管理单个任务下所有API的同步情况

目前,依靠“手工人力”的电子表格数据治理模式逐渐被“自动智能”的专业工具取代。数据管理员、业务分析师开始采用“平台工具”来梳理主数据、元数据,构建模型和管控质量等。

以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

时间: 2024-07-28 17:34:55

DataPipeline丨金融行业如何统一管理单个任务下所有API的同步情况的相关文章

如何统一管理单个任务下所有API的同步情况?

1. 一分钟完成单个API配置 单个API的配置包含:API名称.URL地址.请求方式.参数设置.自定义高级设置. 参数允许用户填写:Text.WebService.Timestamp.DependOn. 若用户的value是一个数值或者静态数组则选择Text即可,若某一个key的value是动态的,可选择Web Service. 若公司的api-key还有symbol(或者signature)是动态的,用户无法给出静态值,所以可通过该功能实现动态传参. 用户可根据每个API的特殊情况完成自定义

如何统一管理不同类型的终端设备?-Part 2

如何统一管理不同类型的终端设备?-Part 2无论您从事什么行业,IT管理已成为每个业务生态系统中必不可少的部门.IT管理工作者需要做大量的工作来保障和维护服务器.计算机.智能手机.平板电脑.iPad.物联网设备.虚拟机等.技术人员就像木偶操纵者,统一从一个位置控制和操纵所有这些设备,这就是统一终端管理(UEM)生态系统至关重要的原因.什么是统一终端管理?统一终端管理是指从统一控制台管理和保护组织的所有服务器和设备的过程.统一终端管理集合了企业移动管理(EMM).移动设备管理(MDM)和客户端管

玩转mongodb(九):通过log4jmongo来实现分布式系统的日志统一管理

背景 在分布式系统中,我们有多个web app,这些web app可能分别部署在不同的物理服务器上,并且有各自的日志输出.当生产问题来临时,很多时候都需要去各个日志文件中查找可能的异常,相当耗费人力.日志存储多以文本文件形式存在,当有需求需要对日志进行分析挖掘时,这个处理起来也是诸多不便,而且效率低下. 为了方便对这些日志进行统一管理和分析,我们可以将日志统一输出到指定的数据库系统中,再由日志分析系统去管理.由于这里是mongodb的篇章,所以主观上以mongodb来做日志数据存储:客观上,一是

Android Studio中Gradle统一管理版本号引用配置

Gradle统一管理版本号引用配置 为了提高项目开发效率,在实际项目开发过程中往往会引入一些开源框架,还有项目中使用的各种module,moudle过多时最好提供一种统一的方式去管理版本号,如:compileSdkVersion.buildToolsVersion.androidTestCompile 等,便于日后对版本号进行维护,此处记录2种方式处理上述问题. 方式一 1.在项目根目录下创建.gradle文件,如:config.gradle 2.在根目录下的build.gradle文件中引入我

用slf4j统一管理日志总结

参考网页:http://www.slf4j.org/ 一.使用slf4j统一管理并配置统一使用log4j日志 使用的jar:(slf4j-api-1.7.5.jar,jcl-over-slf4j-1.7.5.jar,jul-to-slf4j-1.7.5.jar,slf4j-log4j12-1.7.5.jar,log4j-1.2.12.jar) 因为项目中多个框架使用不同的日志或者现在修改以前项目中的日志框架改用另一种日志,所以使用slf4j统一管理日志会比较方便. 1.slf4j是一个接口标准.

域环境下利用组策略实现统一管理

域环境下利用组策略实现统一管理 1)   组策略配置 准备工作: 域控---新建---组织单位 Network 添加账户hansongwei 新建组策略对象 注:win 2003与win 2008 的区别 Win 2003[管理工具][Directory Active 用户和计算机]选择整个域或者某个组织单位,右键单击,[属性]---[组策略] Win2008  [管理工具][组策略管理] 本实例以win 2003为例 新建---组策略对象 networkGPO 编辑 networkGPO 做相

React:将html元素统一管理

写React组件,基本上使用jsx文件,在render方法中返回html节点.然而,在jsx中的html标签中的js代码,只能是简单运算,对象,或函数调用,并不支持if-else或for-while等结构,因此,有时我们需要根据条件决定不同元素,或决定是否显示某元素时,不得不将这段代码抽到render-return以外,如此,程序虽然可以运行,代码上却破坏了html骨架结构,不便于样式控制和直观理解.这里介绍几种方法解决此问题,使得所有html元素在一处得到统一管理. 1 简单if-else 可

使用数据库统一管理ssh登陆用户密钥信息

使用数据库统一管理ssh登陆用户密钥信息 需求是由一个开发部门提出的,他们需要在他们的测试服务器上开放root权限给所有的开发人员,同时要给每个开发人员配置无密码登录,由于使用ssh默认的认证文件存储公钥不方便人员信息的管理(例如一个人离职后不方便在大量的key中找到他的key,且需要在大量的服务器上全部删除). 基于上述需求,我们决定将所有人员的key和其对应的fingerprint保存在数据库中,而且每个fingerprint都对应一个真实用户名,在用户登录的时候,虽然都是使用root用户登

用户信息统一管理实现方案

引言:根据需求,用户在支付页面,可以选择用户所关注的商家,并使用商家提供的优惠价格使用次数.未满足上述需求,系统中需要存储用户与商家之间的关联关系,这之间就需要通过微信获得用户与该商家是否是关注与被关注的关系,所以将通过如下方案获取. 使用Unionid机制 获取用户的unionId作为唯一用户的标识 将多个公众号绑定到开放平台的账号中,如下图所示: 注意:目前免费绑定的公众账号只有10个 当完成了绑定后,在调用微信接口获取用户信息时,就会多出一个unionid,unionid将被作为该用户对于