DataPipeline丨「自定义」数据源,解决复杂请求逻辑外部数据获取难题
A公司专注为各种规模和复杂程度的金融投资机构提供一体化投资管理系统,系统主要由投资组合管理、交易执行管理、实时监控管理、风险管理等功能模块构成。随着企业管理产品数量的不断增多,大量数据分散在各券商系统中且数据存储格式各异,难以管理和利用。
为帮助投资机构最大限度地提高投资决策和运营效率,A公司需要实时监控自己的用户在各个交易平台的基本信息、余额、订单交易情况,并根据分析结果及时给出投资建议。
A公司的这种情况并不是个例。目前,越来越多的企业在数据传输的需求场景中,除了从上游不同业务数据库中实时、定时分配到下游系统之外,还有许多需求场景需要从外部合作商、供应商中获取业务数据。
如果想要每天从企业外部系统中获取数据,通常会采用什么方法呢?
一些用户给出的答案是:根据需要编写不同的脚本,手动调用第三方系统提供的API接口,在抓取数据后,自行编写清洗逻辑,最后实现数据落地。
然而随着第三方系统的日益增多,如果按原有方式会带来过多的脚本维护成本和数据传输任务管理成本。为解决上述痛点,DataPipeline在新版本的数据同步任务中增加了「自定义数据源」功能,用户可以通过上传JAR包的方式自定义获取数据逻辑。新功能支持任意的MySQL、Oracle、SQLServer、Hive、HBase等常见数据源,冷门数据库等(如腾讯云TDSQL),常用的API调用,用户自定义的SDK,或者通过Python抓取数据等。
一、「自定义数据源」提供的价值
通过「自定义数据源」,用户可以:
- 统一管理数据获取逻辑,快速合并JAR减少脚本开发量。
- 当上游发生变化时,不需要对每一个数据传输任务进行调整。
- 可结合DataPipeline的数据解析功能、清洗工具和目标初始化功能减少整体开发量,并提供监控和预警。
二、如何使用「自定义数据源」功能
用户可通过以下四步使用「自定义数据源」功能:
- 创建自定义数据源,并上传JAR包(或调取已上传过的JAR包)。
- 选择数据存放的目的地。
- 使用清洗工具完成数据解析逻辑。
- 配置目的地表结构,即可完成所有配置。
关于「自定义数据源」的核心页面:
1. 用户在选择自定义数据源和目的地后,需要在读取设置步骤中上传JAR包
- 用户可以上传新的JAR包,也可以点击拖放框选择历史已经上传的JAR用作本次任务。
- 用户通过填充类路径和读取数据所需要的配置信息即可完成数据源读取逻辑。

2. 用户可以在一个任务中选择一个或多个读取对象,每个读取对象可以映射到目标表的表中

3. 完成读取设置后,在写入设置步骤中先确定每个读取对象的数据解析逻辑
- DataPipeline会提供JSON解析样例,用户也可以参考样例,自定义解析逻辑。
- 「样例数据」模块会显示通过读取对象配置获取的数据。
- 完成清洗脚本内容后,在「运行结果」模块点击「试运行」即可看到最终写入到目的地的数据格式。

4. 完成解析逻辑后,用户可以手动添加名称并选择对应的数据类型 ,来完成目的地表结构

完成所有配置后点击「立即激活」即可执行数据传输任务。
DataPipeline丨「自定义」数据源,解决复杂请求逻辑外部数据获取难题的更多相关文章
- Dynamo分布式系统——「RWN」协议解决多备份数据如何读写来保证数据一致性,而「向量时钟」来保证当读取到多个备份数据的时候,如何判断哪些数据是最新的这种情况
转自:http://blog.jqian.net/post/dynamo.html Dynamo是Amazon开发的一款高可用的分布式KV系统,已经在Amazon商店的后端存储有很成熟的应用.它的特点 ...
- 自定义HttpReqeust,解决request请求参数只能拿一次就失效的问题
定义一个过滤器并实现如下方法 @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResp ...
- 零元学Expression Design 4 - Chapter 7 使用内建功能「Clone」来达成Path的影分身之术
原文:零元学Expression Design 4 - Chapter 7 使用内建功能「Clone」来达成Path的影分身之术 本章所介绍的是便利且快速的内建工具Clone ? 本章所介绍的是便利且 ...
- DataPipeline丨金融行业如何统一管理单个任务下所有API的同步情况
目前,依靠"手工人力"的电子表格数据治理模式逐渐被"自动智能"的专业工具取代.数据管理员.业务分析师开始采用"平台工具"来梳理主数据.元数据 ...
- 「干货」面试官问我如何快速搜索10万个矩形?——我说RBush
「干货」面试官问我如何快速搜索10万个矩形?--我说RBUSH 前言 亲爱的coder们,我又来了,一个喜欢图形的程序员,前几篇文章一直都在教大家怎么画地图.画折线图.画烟花,难道图形就是这样嘛,当 ...
- JavaScript OOP 之「创建对象」
工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程.工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题. function createPers ...
- 「插件」Runner更新Pro版,帮助设计师远离996
三年多前Runner团队在德国汉堡的骇客松上第一次发布了Sketch插件Runner的beta版本.从那以后,这个团队的目标一直很清晰: 创造一个加速设计工作流的工具. 他们只给Runner添加真正能 ...
- 「Python」socket指南
开始 网络中的 Socket 和 Socket API 是用来跨网络的消息传送的,它提供了 进程间通信(IPC) 的一种形式.网络可以是逻辑的.本地的电脑网络,或者是可以物理连接到外网的网络,并且可以 ...
- Android逆向之旅---静态方式分析破解视频编辑应用「Vue」水印问题
一.故事背景 现在很多人都喜欢玩文艺,特别是我身边的UI们,拍照一分钟修图半小时.就是为了能够在朋友圈显得逼格高,不过的确是挺好看的,修图的软件太多了就不多说了,而且一般都没有水印啥的.相比较短视频有 ...
随机推荐
- redisTemplate 键值序列化策略
redisTemplate 键值序列化策略 RedisSerializer<T> StringRedisSerializer JdkSerializationRedisSerializer ...
- Sonarqube C#静态代码规范检查(一)
使用说明 代码规范对于每个开发来说重要也重要,说不重要其实也没那么重要,简单点的vs的code analysis也能提供很多的建议,重量级一点的Resharper不仅能提供建议,还提供了更方便快捷的一 ...
- 常用.Net 6.0 新特性
1.nameof表达式.Nameof表达式可以直接返回对象定义的名称,比如参数.枚举.变量. 控件.属性等.可以大大减少硬编码的使用,提高程序灵活性. }, 2.字符串嵌入值($). MsgBox.S ...
- Random Access Iterator 徐州网络赛(树形dp)
Random Access Iterator \[ Time Limit: 4000 ms \quad Memory Limit: 262144 kB \] 题意 给出伪代码,问按着伪代码在树上跑,能 ...
- C++中静态成员变量要在类外部再定义或初始化的原因
C++中静态成员变量要在类外部再定义或初始化,否则会产生错误. class A { public: static int a; }; int A::a=0; 为什么要在类的外部进行定义的原因: 1. ...
- VQA视觉问答基础知识
本文记录简单了解VQA的过程,目的是以此学习图像和文本的特征预处理.嵌入以及如何设计分类loss等等. 参考资料: https://zhuanlan.zhihu.com/p/40704719 http ...
- 为什么mysql事务回滚后,自增ID依然自增
因为innodb的auto_increament的计数器记录的当前值是保存在存内 存中的,并不是存在于磁盘上,当mysqlserver处于运行的时候,这个计数值只会随着insert改增长,不会随着de ...
- 【技术博客】 Laravel 5.1单元测试(PHPUnit)入门
目录 Laravel 5.1单元测试(PHPUnit)入门 简介 安装与配置 1. 安装 2. 配置 编写测试样例 1. 新建测试样例 2. 编写函数的测试 3. 编写Web功能测试 运行测试与查看结 ...
- CentOS安装PinPoint
1.软件准备 jdk-8u191-linux-x64.tar.gz,下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8 ...
- 《Linux就该这么学》培训笔记_ch12_使用Samba或NFS实现文件共享
<Linux就该这么学>培训笔记_ch12_使用Samba或NFS实现文件共享 文章最后会post上书本的笔记照片. 文章主要内容: SAMBA文件共享服务 配置共享资源 Windows挂 ...