我想知道ETL无法解决的问题。众所周知,我们可以提取数据,进行一些转换和处理,然后将转换后的数据存储到数据存储中,ETL 中的处理也可能非常复杂。
那么,如果除了使用 J2EE 构建 UI 应用程序之外的所有事情都可以使用 ETL 完成,那么编写 Java 代码的范围是什么?
哪种算法在 ETL 中运行良好,哪种算法应该在 ETL 之外运行。
我更喜欢谈论 ETL 工具,而不是 ETL 作为这方面的一个概念,就像 Talend 是一个自动生成代码的工具(特定于 ETL 供应商如何实现)而不是编写自己的代码来生成代码例如,改变实现以提高内存效率和时间效率,或者提高时间效率和内存效率,更重要的是,使事情本质上变得通用......!!
因此在这方面,在制作产品和编写算法时,我们应该使用标准 ETL 工具还是自定义代码以实现长期目标。
有人可以通过 ETL 失败或有限制的用例和示例详细说明这个主题吗?
提前致谢:)!!
最佳答案
正如mellamokb提到的,ETL是一个概念。每当您从数据源提取数据、转换数据并将其加载到另一个数据存储时,您都在进行 ETL。有时,严格意义上的“T”是可选的,因为您可能只是按原样移动数据。
对于执行 ETL,您可以使用 Informatica 和 DataStage 等工具来完成,也可以使用 Java、PLSQL 或其他语言自行编写代码。这些工具通常提供可视化界面并允许抽象多个细节,但从功能上讲,您可以自己执行相同的操作。因此,选择不是在 ETL 和 Java 之间,而是在使用工具和自己完成之间进行选择。
<小时/>您的问题
Q1) 如果除了使用 J2EE 构建 UI 应用程序之外所有事情都可以使用 ETL 完成,那么编写 Java 代码的范围是什么。
Java 是一种通用编程语言。您几乎可以解决任何可以通过使用它进行编程解决的问题,包括 ETL。问题领域中有太多的问题类型:网络、数据库软件、操作系统软件、文字处理......
Q2) 哪种算法在 ETL 中运行良好,哪种算法应该在 ETL 之外运行。
问题不应该是关于算法,而应该是关于哪些问题属于 ETL 范围。如果你理解 ETL 的含义,那应该是相当明显的。
Q3) 有人可以通过 ETL 失败或有限制的用例和示例详细说明这个主题吗?
再次强调,ETL 是一个概念。 ETL 失败时的用例没有多大意义。如果您想问 ETL 工具何时失败,那么这是一个合理的问题。答案取决于您想要实现的目标以及您的工具支持哪些功能。如今,大多数工具都支持无数的数据源和目标,并允许您通过使用包括 Java 在内的各种语言编写自己的代码来扩展所提供的转换。
关于java - ETL对于各种算法处理的局限性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31995099/