作为有经验的Talend开发者,我总是好奇他人如何创建作业。他们是否正确使用各项功能?用到的样式我是否了解,抑或从未见过?想出的解决方案是否独到而精巧?又或者,鉴于画布/组件数据/工作流程本身的抽象性质,接下来是否愁眉不展,不知所措…无论这些问题的答案如何,我觉得使用专门设计的工具都非常重要。为此我们着手研究“作业设计模式”及与之相关的最佳实践。在我看来,即便已了解Talend的所有特性和功能,但是根本需求仍然不变,那就是探索构建作业的最佳方法。
从逻辑上讲,“业务用例”是任何Talend作业的关键基本驱动因素。事实上,我在同一工作流程看到各种不同的情况,也看到了各类不同工作流程。这些“用例”大多数从基本前提出发,即最简单的数据集成作业形式是从某个源提取数据并进行处理;在此过程中可能进行转换,最终将其加载到某个目标位置。因而ETL/ELT代码不可或缺,Talend开发者也正致力于此。这一点我们就不再赘述,接下来放宽眼界,扩大探讨面。
奠定DI项目成功的三大基础
我们都认同圆凳需要三条腿才能站稳,对吧?软件开发也是如此。构建并交付成功的数据集成项目需要三个基本要素:
用例 - 明确定义的业务数据/工作流程要求
技术 - 创建、部署和运行解决方案的工具
方法 - 业界公认的行事方式
考虑这些要素,加上完善的“开发指南”文档,我们以此为前提展开探讨。
扩展基本理论
如果说Talend“作业”在“用例”工作流程中包含了技术,那么“作业设计模式”就是构建它们的最佳实践“方法”。我在这些博文中分享的其他内容即便于您没有价值,至少会让您在作业构建方式上保持一致。如果您找到了更好的方法,认为非常有效,那再好不过,不必做出改变。但是,如果您在性能、可重用性和可维护性方面备受困扰,或者需要反复调整代码以适应不断变化的需求,那么这些最佳实践对Talend开发者大有裨益!
需要考虑的另外9个最佳实践:
软件开发生命周期 (SDLC)
亿万富翁马库斯·莱蒙尼斯 (Marcus Lemonis) 在CNBC财经网的“The Profit”(利润)专栏中,将“人员、产品和流程”视为决定任何业务成败的三个关键因素。对此我非常赞同。SDLC流程对于任何软件开发团队都是殊为关键的环节。正确处理非常重要,而忽视则可能导致项目严重受阻,甚至造成灾难性后果。Talend的SDLC“最佳实践指南”针对Talend开发人员可用的持续集成和部署功能,深入研究相关概念、原则、规范和细节。强烈建议软件开发团队将SDLC最佳实践纳入“开发指南”文档,然后照此实施。
管理工作区
当您在笔记本电脑/工作站安装Talend Studio时(假设您拥有管理员权限),通常会在本地磁盘驱动器上创建默认的“工作区”目录,并且与许多软件安装一样,此默认位置位于可执行文件所在的目录中。我认为这么做确实不妥。为什么?
项目文件(作业和存储库元数据)的本地副本存储在此“工作区”中,如果是通过Talend 管理中心 (TAC) 连接到源代码控制系统(即SVN或GIT),当您打开项目和保存对象时,这些副本也会同步。我认为应将这些文件放在易于查找和管理的位置,最好是在磁盘上的其他位置(或者其他本地盘)。
需要说明,在Talend Studio中创建任何连接时都会使用工作区,包括“本地”及“远程”连接,区别在于后者由TAC管理,而前者则不是。对于我们的订阅客户,“远程”连接通常是唯一使用的类型。
对于如何组织目录结构,应在“开发指南”文档中予以明确说明,并由整个团队采行,以实现最佳合作和协作。关键是团队要达成共识、培养纪律性并保持一致性。
参考项目
您是否使用参考项目?是否了解其具体内容?我发现很多客户都不知道这项简单而高效的功能。我们都希望创建可以跨项目共享的可重用、共用或通用代码。我常常看到开发人员打开一个项目,复制代码片段,然后将其粘贴到单独的(有时是同一个)项目或作业中。或者从一个项目中导出对象,然后将它们导入另一个项目。说来惭愧,这两种方式,我之前都实操过。虽然这些方式基本可行,但如果您曾陷入这些过程带来的麻烦中,就能了解其弊端很多,存在很多潜在的维护问题。怎么办?可以有更好的方法,那就是参考项目!这些项目的确让人眼前一亮。