Talend作业设计模式和最佳实践:第2部分 (2)

如果您用过TAC来创建项目,可能注意到一个名为“参考”的不显眼的复选框。有没有想过这是用来做什么的?其实,如果创建项目时选中该框,使其成为“参考项目”,那么该项目可以“包含”或“链接”到任何其他项目。在“参考项目”中创建的代码随后可用于链接的项目(只读),因而具备高度可重用性。这在创建各类共用对象和共享代码时十分适用。

但是,请将这些“参考项目”保持在最低限度;我们建议仅保留1项作为最佳实践,不过在一些有争议的案例中,也可酌情采用2-3项。注意创建“参考项目”过多则可能失去其原本意义,因此须适可而止。谨慎管理非常重要,应在“开发指南”文档中明确说明其用法和规则,并由整个团队采行,以实现最佳合作和协作。

对象命名规则

“命名规则”确实十分重要,开发团队都了解这一点,因此会制定相应的实践。无论Talend对象名称使用的时间、内容及方式如何,取得合理成功的核心仍然是一致性。对Talend对象命名规则,应在“开发指南”文档中予以明确说明,并由整个团队采行,以实现最佳合作和协作。

项目存储库

使用Talend Studio(基于Eclipse的IDE,即集成开发环境,简言之就是您的作业编辑器)打开项目时,左侧面板代表项目存储库。这是所有项目对象所在的位置。这里有几个非常重要的版块。首先,您必须要了解“作业设计”版块,以便适应可以创建的3种不同类型的作业(即数据集成、批处理和流式传输)。此外,您还需了解和运用以下版块。

上下文组 - 不是在内置作业创建上下文变量,而是在存储库中的上下文组中进行创建,并跨作业(以及参考项目中所包含的项目)予以重用;可以实现各个组有效地保持一致;最佳做法是创建对应于不同环境的组:SBX/DEV/TEST/UAT/PROD,其中 DEV 为默认值;删除现有“默认”上下文;

注意我添加了一个上下文变量“SysENVTYPE”,其中包含选定环境中动态可编程性的值。换言之,我在作业中使用此变量来确定运行时当前正在运行的环境,这样就能以编程方式通过条件逻辑更改相应流程。

元数据 - 元数据以不同形式呈现,尽可全数利用,包括数据库连接及其表格模式、各类平面文件布局(csv、xml、json等),以及始终颇具用处的通用架构,这种架构可用于多种方式,在此不一一列出了,否则这篇博文内容会特别长

文档 - 生成您自己的项目Wiki并将其发布至团队;此功能将生成一套完整的项目相关html文件,可以轻松导航;此版块十分有用,而且仅需几分钟即可搞定

建议在“开发指南”文档中为团队添加一些最佳实践,并在团队中坚持使用。可根据需要进行调整,但要让团队中的每个人都参与进来。

版本控制(分支和标记)

您可能已经注意到,每个作业属性选项卡都有一个设置主要 (M) 和次要 (m) 版本编号方案的位置。此外,您还可以设置自己的创建状态,其中默认的可能状态包括“开发”、“测试”和“生产”。注意:Talend Open Studio (TOS) 等专为单一开发者设计,无法利用SVN/GIT存储库进行合作开发和源代码控制 (SCC)。您需要知道的是,每当碰到这些内部作业属性,都会在本地工作区中创建作业的完整副本,并与SCC系统同步。我见过一些项目,其中的作业副本由十几个内部版本辗转生成。系统会复制该作业的所有副本,导致所有与SCC同步的从属文件迅速增加,项目因此尾大不掉,每次打开和关闭项目时会造成严重的性能问题。如果遇到这种情况,需要先执行导出,然后,重新导入仅最高版本的作业,以便清理工作区。虽然繁琐,但这么做很有必要。

因此,在所有付费订阅环境中,版本控制的最佳做法是使用源生SCC分支和标记机制。这始终是管理项目版本发布的最佳方式,因为SCC只对于每个作业保存的增量信息予以维护。这么做可以显著减少特定作业历史记录所需的空间。使用数字、日期或有用的内容来设计版本管理方案,在“开发指南”文档中予以详细说明,而且整个团队都采用该流程(形成一套正确的程序)。

内存管理

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzjpgz.html