问题标签 [talend]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - ETL 的字段特定错误
我正在 MS SQL Server 中创建一个 ETL 过程,并且我希望有特定于特定行的特定列的错误。例如,数据最初从 excel 文件加载到所有列都在其中的表(我们将称为初始表)中varchar(2000)
,然后我将数据暂存到另一个表(DataTypedTable),其中包含更具体的数据类型(datetime
,int
等.) 或更严格地约束 varchar 长度。我需要能够为特定字段创建错误消息,例如:“1 月 13 日”不是提交日期的有效日期格式。请使用 MM/DD/YYYY 格式
这些错误消息需要以某种方式存储,以便在流程的后期,自动化流程可以创建带有错误消息的报告,以便每条消息都引用特定的行和字段(有人需要返回并更正源系统并重新提交excel文件)。所以理想情况下,它将被插入到某种故障表中,并包含失败行的主键、列名和错误消息。
问:所以我想知道这是否可以通过 SSIS 或一些开源工具(如 Talend)来完成,如果可以,您的一般方法是什么?或者你会采取什么手工编码的方法?
我考虑过使用 SQL 的几种方法(直到没有我在 SQL procs 中手动完成 ETL,但我想考虑其他方法。甚至可能是 C#。):
使用游标读取 Initial 表,并为每一行插入一条只有主键的空白记录到 DataTyped 表中,然后对每一列使用单个更新语句,这样如果更新失败,我可以插入一个非常具体的特定于错误消息表中该列的错误消息。
将所有数据按原样插入 DataTyped 表中,但具有重复的列,如SubmissionDate
和SubmissionDateOld
。在初始插入 *Old 列有数据后,其余列是空白的,并且我对基于 SubmissionDateOld 设置 SubmissionDate 的每一列进行了一次更新。
除了建议一种方法之外,我想知道您是否正在使用该方法或在您所做的工作中已经使用的类似方法。
java - 直接的 Java/Groovy 与 ETL 工具(Talend/etc)——你会使用什么库?
假设您有一个小项目,从表面上看,它与 Talend 等 ETL 工具非常匹配。
但进一步假设,您从未使用过 Talend,此外,您通常不信任“可视化编程”工具,而宁愿在适当的语言和支持的帮助下以老式方式编写所有内容(在一个好的 IDE 上编写文本!)图书馆。
有哪些语言模式和支持库可以帮助您远离 ETL 工具的诱惑/陷阱?
etl - ETL 操作 - 返回主键
我正在使用 Talend 填充数据仓库。我的工作是将客户数据写入维度表,将交易数据写入事实表。事实表上的代理键 (p_key) 是自动递增的。当我插入一个新客户时,我需要我的事实表来反映相关客户的 ID。
正如我提到的,我的 p_key 是 auto_incrementing,所以我不能只为 p_key 插入任意值。
关于如何在我的维度表中插入一行并仍然检索主键以在我的事实记录中引用的任何想法?
更多信息:
如果传入的数据没有标准化怎么办?例如,我有一个包含以下数据的 csv:
显然,我希望客户信息出现在维度表中,而交易数据出现在事实表中:
正如您所提到的,维度表的键将是自动递增的。事实表需要引用这个键。您如何设计 etl 作业以便在插入后返回代理键?
此外,如果对客户数据进行了重复数据删除(如上所述),您将如何处理密钥?
java - 集成 Pentaho/Talend/等。使用 OR 映射器
我们有一个带有自己的 OR 映射器的应用程序 (Java)。在这个系统中,我们可以将其与 Hibernate 的拦截器(我们称之为触发器)进行比较:在将数据保存到数据库之前、删除之后等执行特定操作。底层数据库是 MySQL。
现在我们想使用诸如 Pentaho Data Integration 或 Talend 之类的工具来转换数据以将其放入我们的系统中。直接在 SQL 级别上执行此操作没有问题,但这样做会失去触发器的内置功能。
有没有办法以某种方式将任何数据集成解决方案集成到我们现有的应用程序中?如果有一种方法可以写入我们的类的实例而不是直接写入数据库,那就太好了。
欢迎任何提示:-)
database - 如何使用 talend 在两个代码集(枚举)之间进行映射
假设我有以下源表(称为 S):
假设我还有一个查找表(称为 S_gender_values):
我的目标是创建一个目标表(我们称之为 T),它看起来像这样:
我还假设我有一个表 T 的查找表,称为 T_GenderValues,我可以使用它来创建表 T(并验证其结果)
我想到了 2 个(或 3 个)替代方案:
创建一个如下所示的映射表(我们称之为 S_T_Gender_Code_Mapping):
然后使用 tMap 进行简单的连接/查找。
使用 tMap 并添加将实现映射的表达式,例如:
/li>类似于备选方案 2,但使用用户 Java 例程。
还有其他选择吗?我希望我可以利用 tMap 的易用性在 S_GenderValues 和 T_GenderValues 之间进行映射,并从 tMap 中的 UI 工具的可用性中受益
有什么提示吗?
etl - 有效使用 Informatica 所需的语言知识是什么?
在接下来的几周内,我的公司将与多家供应商合作,为通用的全球 ETL 工具建立选择 - 不一定是无法破解的工具,而是我们的许可证投资将用于整合这些成本的地方。两个主要参与者是 Talend 和 Informatica,其他的对于这个问题来说并不重要。
我的经验是使用 Talend 的企业 ETL 工具 Talend Integration Suite,它也具有许多标准集成功能。除了两者之间的所有明显优缺点,例如成本、知识资源的可用性等,我的问题是针对所需的开发语言知识的。
我想要一些关于 Informatica 选项的反馈。我可以根据经验表明,要有效地使用 Talend,并超出其预先编程的范围(这种情况经常发生),您需要具备良好的 Java 背景。在这种情况下,我直接指的是 Java——如果你需要附加功能,你可以直接使用 Java,而不是 Java 的“特殊”版本。Informatica 的情况如何?您可以使用特定的扩展语言吗?它是专有的,但可能与主流语言密切相关吗?需要将它用于任何重要工作的可能性有多大?
这只是我在评估空间时要使用的一个因素,但在我完全了解信息之前,我需要进一步了解 Informatica 的这一方面。感谢您的回答!
java - 使用 java.text.SimpleDateFormat 以可能的单位数月/日/小时解析日期
在使用 Talend Open Studio(一种开源代码生成 ETL 工具)的项目中,我在解析传入的日期字符串时遇到错误,例如“3/14/1967 0:00:00”(注意个位数的月份)。
深入研究 代码,我可以看到它正在使用java.text.SimpleDateFormat。所以我希望我需要使用的日期模式字符串是“dM-yyyy H:mm:ss” ......但它不断给我错误,比如“无法解析的日期:3/14/1967 0:00:00”。
我假设 SimpleDateFormat可以处理一位数或两位数的问题。我需要不同的日期模式吗?(当然,我可以在 Java 尝试将字符串读取为日期之前进行预处理以调整值,但这不是必需的!)
linux - 从命令行运行 Talend perl 作业时缺少文件
我创建了一个简单的 talend perl 作业来从 excel 文件中提取数据并将其放在 mysql 表中。当我在 talend studio 4.1.1 中运行它时,它运行良好。
问题是当我导出作业时。我尝试像这样运行它:
perl -Ilib proj.job_import_prods_0.1.pl --context=Default --context_param file_path="/home/antoniocs/programming/file.xls" $*
这给了我以下错误:
无法在 @INC 中找到 IO/Scalar.pm(@INC 包含:/home/antoniocs/programming/ lib /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/ 5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) 在 lib/OLE/Storage_Lite.pm 行171. BEGIN failed - 在 lib/OLE/Storage_Lite.pm 第 171 行中止编译。 在 lib/Spreadsheet/ParseExcel.pm 第 18 行的 require 中编译失败。 BEGIN failed - 在 lib/Spreadsheet/ParseExcel.pm 第 18 行中止编译. 在 proj.job_import_prods_0.1.pl 第 568 行的 require 中编译失败。BEGIN failed - 编译在 proj.job_import_prods_0.1.pl 第 568 行中止。
我已经将 ParseExcel.pm int lib 文件夹放在作业的文件夹中。talend 有没有办法自动将必要的文件添加到作业的文件夹中?
注意:导出作业时,我选中了“导出依赖项”框额外注意:我不是 perl 程序员。
svn - SVN 中的 Talend 项目
我需要将 Talend Open Studio 与 SVN 一起使用。我应该放在存储库中的文件夹是什么?
soap - 如何将联系人从 Talend 推送到 Microsoft Exchange?
我正在尝试使用 Talend Open Studio 将联系人从各种输入源同步到 Exchange 2007 服务器。
我知道 Talend 可以使用 SOAP,并且 EWS 有一个 WSDL,但是在尝试将两者结合在一起时遇到了各种问题(因为 Exchange 的 WSDL 缺少 Talend 需要的元素)我不知道这是否是最好的攻击计划,或者我是否应该考虑使用MS的EWS Java API为 Talend 构建一个更特定于 Exchange 的插件。
或者,如果这些都被认为是不可能的,我会很感激一个指向解释原因的指针 - 毕竟,所有流行语似乎都排在一边。