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丨「自定义」数据源,解决复杂请求逻辑外部数据获取难题的更多相关文章

  1. Dynamo分布式系统——「RWN」协议解决多备份数据如何读写来保证数据一致性,而「向量时钟」来保证当读取到多个备份数据的时候,如何判断哪些数据是最新的这种情况

    转自:http://blog.jqian.net/post/dynamo.html Dynamo是Amazon开发的一款高可用的分布式KV系统,已经在Amazon商店的后端存储有很成熟的应用.它的特点 ...

  2. 自定义HttpReqeust,解决request请求参数只能拿一次就失效的问题

    定义一个过滤器并实现如下方法 @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResp ...

  3. 零元学Expression Design 4 - Chapter 7 使用内建功能「Clone」来达成Path的影分身之术

    原文:零元学Expression Design 4 - Chapter 7 使用内建功能「Clone」来达成Path的影分身之术 本章所介绍的是便利且快速的内建工具Clone ? 本章所介绍的是便利且 ...

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

    目前,依靠"手工人力"的电子表格数据治理模式逐渐被"自动智能"的专业工具取代.数据管理员.业务分析师开始采用"平台工具"来梳理主数据.元数据 ...

  5. 「干货」面试官问我如何快速搜索10万个矩形?——我说RBush

    「干货」面试官问我如何快速搜索10万个矩形?--我说RBUSH 前言 亲爱的coder们,我又来了,一个喜欢图形的程序员‍,前几篇文章一直都在教大家怎么画地图.画折线图.画烟花,难道图形就是这样嘛,当 ...

  6. JavaScript OOP 之「创建对象」

    工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程.工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题. function createPers ...

  7. 「插件」Runner更新Pro版,帮助设计师远离996

    三年多前Runner团队在德国汉堡的骇客松上第一次发布了Sketch插件Runner的beta版本.从那以后,这个团队的目标一直很清晰: 创造一个加速设计工作流的工具. 他们只给Runner添加真正能 ...

  8. 「Python」socket指南

    开始 网络中的 Socket 和 Socket API 是用来跨网络的消息传送的,它提供了 进程间通信(IPC) 的一种形式.网络可以是逻辑的.本地的电脑网络,或者是可以物理连接到外网的网络,并且可以 ...

  9. Android逆向之旅---静态方式分析破解视频编辑应用「Vue」水印问题

    一.故事背景 现在很多人都喜欢玩文艺,特别是我身边的UI们,拍照一分钟修图半小时.就是为了能够在朋友圈显得逼格高,不过的确是挺好看的,修图的软件太多了就不多说了,而且一般都没有水印啥的.相比较短视频有 ...

随机推荐

  1. JavaScript 实用工具库 : lodashjs

    首页地址:https://www.lodashjs.com/

  2. 【myBatis】Error evaluating expression ‘’. Return value () was not iterable.

    被遍历的foreach不是数组或者集合

  3. mysql Navicat通过代理链接数据库

    1.做完host 账号 密码(数据库服务器)配置之后,选择ssh 2.配置代理服务器ip的登录的账号密码.(代理服务器必须可以连你的Navicat客户端和数据库服务器,不然怎么做代理.) 3.可以直接 ...

  4. 4.通过HttpMethod执行不同的服务方法

    package Services import ( "context" "fmt" "github.com/go-kit/kit/endpoint&q ...

  5. JavaScript遍历

  6. 洛谷 p3870 开关 线段树模板

    这两天学了很长时间于是做了一道水题 我就用了模板,就连任何优化都没有 就AC了,复杂度也很爆炸10个点1500多毫秒 这个题就是把lazy[]改成记录下修改的次数,每次修改的时候mod 2,因为反过来 ...

  7. shell 命令行

    转:Davygeek 1. -eq           //等于 -ne           //不等于 -gt            //大于 (greater ) -lt            / ...

  8. JVM系列之二:编译过程

    1. Java的编译和执行 编译包括两种情况: 1,源码编译成字节码2,字节码编译成本地机器码(符合本地系统专属的指令) 解释执行也包括两种情况: 1,源码解释执行2,字节码解释执行 解释和编译执行的 ...

  9. Notepad++ 【自动完成】与【输入时提示函数参数】互相冲突,无奈

    Notepad++ 既然可以在输入时提示函数参数,可是当提示函数参数的时候,输入具体参数时[自动完成]失效了. 一位用户遇到和我一样的问题:https://community.notepad-plus ...

  10. SpringBoot 应用篇之从 0 到 1 实现一个自定义 Bean 注册器

    191213-SpringBoot 应用篇之从 0 到 1 实现一个自定义 Bean 注册器 我们知道在 spring 中可以通过@Component,@Service, @Repository 装饰 ...