java - ETL对于各种算法处理的局限性

标签 java mapreduce apache-pig etl talend

我想知道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/

相关文章:

java - Guava ImmutableList 静态函数 checkNotNull 未找到

java - 用于替换符号的正则表达式

hadoop - Wordcount程序卡在hadoop-2.3.0

java - 如何将一个 mapreduce 作业的输出作为另一个 mapreduce 作业的输入?

hadoop - 以编程方式读取 Hadoop Mapreduce Program 的输出

java - 在 Windows 上构建 gradle 期间出现 NullPointerException

java - MongoDB 与 Eclipse 不抛出异常?

java - 如何在 Java 中转义 MySQL 语句中的引号

java - pig 和HCatalog

hadoop - 如何验证从RDB到Hadoop HDFS的数据