前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >致 Tapdata 开源贡献者:聊聊 2022 年的进展和新一年的共建计划

致 Tapdata 开源贡献者:聊聊 2022 年的进展和新一年的共建计划

作者头像
Tapdata
发布2023-03-08 19:55:00
2370
发布2023-03-08 19:55:00
举报
文章被收录于专栏:TapdataTapdata

岁末年初,在开源领域刚埋下一颗生机勃勃的种子的 Tapdata,想和正在关注我们的开发者,聊聊这一年的进展和新一年的共建计划。

2022年4月,Tapdata 宣布开源 PDK(Plugin Development Kit),将自身的数据接口技术抽象化,赋能开发者。同时联合 Apache Doris、OceanBase、PolarDB、SequoiaDB 等生态伙伴,开启插件共建计划。

2022年7月,依托 Tapdata 核心功能的 Tapdata Community 正式与大家见面,越来越多的伙伴加入到我们的开源社区中来。

2022 下半年,为了吸引更多优秀的开发者参与共建,同时活跃社区,回馈项目贡献者,Tapdata 数据源 Connector 挑战赛启动,更多新鲜力量随之涌入。

在内、外部开发者的合力之下,2022年 Tapdata 新增数据源近20个,其中包括数仓目标 BigQuery、Doris、Clickhouse、阿里云存储、OSS HDFS、SelectDB 等,实现了60+数据源的接入能力。与此同时,PDK 架构可扩展能力进一步增强,可以支持:4小时快速对接 SaaS API 系统;16小时快速对接数据库系统。

为了让大家充分了解项目进展,帮助新加入的开发者有效规避一些初次开发过程中的常见问题,我们特别邀请到挑战赛首位成功领取参赛奖金的外部开发者(GitHub ID: IssaacWang),以及官方技术支持 Jarad,围绕以下几点展开分享:

  • 从开发者角度来看,Tapdata 项目新增了哪些变化?
  • 在开发过程中的常见问题有哪些?
  • 对于 Tapdata “开发新手”,有什么建议和经验分享?

Tapdata 项目进展:对开发者更加友好

为了更加方便开发者上手,我们在整体的友好程度上,进行了如下优化:

① 支持在线 Debug

在新数据源开发的过程中,无需关注引擎、TM(Tapdata Manager)等,只需要专注于数据源项目模块即可。开发完成后,还需要通过在线联调测试同步效果,但在此前,由于前端尚未开源,外部开发者实现起来就会没那么方便。但现在无需前端,只需要将引擎拉到开发工具中,在完成数据源插件开发后,就能通过环境变量配置,轻松关联 Tapdata 云版,弥补前端页面缺失。开发者得以在云版管理端启动数据同步任务,而实际响应则是在本地 IDEA 中生效,从而支持开发者在自身开发工具的 IDEA 中打断点,达到在线 debug 的效果。

② TDD 单元测试优化

我们在 TDD 测试框架上新增了不少测试用例,开发者在完成一个数据源的开发工作之后,只要有自己的开发工具,以及本地的数据源部署,就可以通过 TDD 用例来进行单元测试。

我们的首位外部开发者在数据源 TDengine 的测试环节,就跑完了包括在线联调 P0 测试,以及 TDD 段元测试的全流程。

除此之外,我们还在代码自动化生成方面做了一些努力,期待2023年能和开发者一起解锁更多新进展。

开发过程中的常见问题与避「坑」指南

对于刚接触到一个新鲜项目的开发者而言,难免会遇到一些棘手的状况,比如:

🤔 感觉是个有趣的项目,临时起意尝试开发,但并不知道从何入手;

🤔 熟悉的数据源都已经支持了,随手选了一个并不了解的数据源,开发到一半就后继无力了;

🤔 选择的数据源比较“偏门”,开发适配起来没有很多先验经验供参考;

🤔 数据类型转换、开发自测等开发过程中遇上的诸多细节问题

……

大体可总结为以下三类问题: ① 一心埋头开发型:并没能真正加入到社区中来,上手前一方面没有充分掌握所选数据源,一方面忽略了项目官方提供的文档和资料;

② 开发工具不完善:对选择的开发工具不熟悉,比如因缺少必要插件导致的使用问题等,会直接影响开发积极性;

③ 开发环境不友好:经验证,目前 Tapdata 项目开发对 Mac 或 Linux 系统更友好,稳定性也普遍高于 Windows 系统。 对此,我们也为新人开发者总结出以下三条避坑指南: ① 开发前的充分调研

无论选择了何种数据源,开发者在正式上手之前,无论是通过阅读该数据源的官方文档还是通过其他渠道,都需要对其进行全面的了解,事无巨细,大到如何部署,小到字段类型等。

其中,数据源部署算是一个不小的难点,对我们的开发工作有着直接影响。因为很多开发者可能并不具备相关运维部署经验,特别是对于一些没有接触过的数据源,再加上部署本身也有很多不同模式上的差异,更容易耗时踩坑。因此我们建议开发者在充分调研熟悉后,不要试图一次性涵盖全部情况,优先选择一个相对简单的模式来起步,之后再思考如何兼容其他不同的模式。如果实在无法兼容,在考虑用其他方法解决。

此外,数据源的字段类型也是值得开发者们特别关注的要点之一。每个数据源都有很多字段类型,而数据本身也有很多数据类型,在 Tapdata 数据源开发过程中,涉及一个用来写字段类型的 JSON 文件,这个文件非常重要,是 Tapdata 框架实现模型推演的基础。直接关系到数据同步任务的结果准确性。

因此,前期的调研工作需要开发者们能够以充分的耐心与积极的态度来应对。这也是我们开发工作得以成行的前提。

② 代入 Tapdata 来思考

完成数据调研之后,开发者们还需要将该数据源代入 Tapdata 来思考。换言之,就是要将数据源视作需要适配到 Tapdata 框架的一部分来预演下一步的开发规划。例如待开发的数据源中不存在数据库、数据表的概念,但存在类似的对应组,就可以将它们视作库和表来进行对应操作。在适配过程中,我们要随时保持这样的对应思维,考虑数据源中和框架上所需内容的对应关系。

事实上,每个数据源或多或少都存在一些各自的特性,甚至于有些特性对 Tapdata 框架并不友好,比如部分分析型数据源,对于更新、删除的支持度较低,但批量插入的性能又很高,像是 Doris、SelectDB 等,就属于这一类数据源,如果依旧用传统的 JDBC 来做数据插入,性能会有不小的损耗。这就需要我们针对这些差异来进行能力适配,充分利用其优势面完成性能优化。再比如 Tapdata 产品亮点之一的 CDC 数据挖掘,也是数据源插件开发过程中的一大难点。在这一点上,有些数据源自身就提供了 API 的支持,仅需做一些简单配置就能读取到其间的数据变化,但有些数据源实现起来就会很麻烦,往往需要诉诸其他插件或第三方工具。

这些问题都需要我们提前完成“Tapdata 代入式”思考。

③ 积极向官方寻求支持

开源项目的成长,从来不是一人行路。当正式着手开发,或是遇到可能会阻滞开发进程的大小问题时,开发者们可以随时利用社区的力量,这里不仅有志同道合的开发者伙伴,还有来自 Tapdata 项目官方的技术支持。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Tapdata 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档