使用 Informatica 将数据从 Teradata 提取到 Hadoop 中的最佳方式是什么?

What is the best way to ingest data from Terdata into Hadoop with Informatica?

通过并行数据移动将数据从 Teradata 数据库并行提取到 Hadoop 的最佳方法是什么?

在并行流中加载数据并对 Teradata 造成不必要的工作负载的推荐最佳做法是什么?

如果 Tera 数据像 oracle 一样支持 table 分区,您可以尝试根据分区点读取 table,这将在读取中启用并行性...

您的另一个选择是,将 table 拆分为多个分区,例如在索引列上添加 where 子句。这将确保索引扫描,您可以避免完全 table 扫描。

如果您在 select 子句中使用分区名称,Power Center 将 select 仅该分区中的行,因此不会重复读取(不要忘记选择数据库分区在 Informatica 会话级别)。但是,如果您使用键范围分区,则必须选择您在设置中提到的范围。通常我们使用 NTILE oracle 分析函数将 table 拆分为多个部分,以便读取在 select 中是唯一的。如果您有任何问题,请告诉我。如果您在 table 中有 range/auto generated/surrogate 键列,请在 where 子句中使用它 - 编写一个子查询将 table 分成多个部分。

我发现将数据提取到 Hadoop form teradata 中的最具可扩展性的方法是使用适用于 hadoop 的 Teradata 连接器。它包含在 Cloudera 和 Hortonworks 发行版中。我将展示基于 Cloudera 文档的示例,但同样适用于 Hortonworks:

Informatica 大数据版正在通过命令行使用标准 Scoop 调用并向其提交参数集。所以主要问题是 - 使用哪个驱动程序在两个 MPP 系统之间建立并行连接。

这里是 Cloudera 文档的 link: Using the Cloudera Connector Powered by Teradata

这是该文档的摘要(您会发现该连接器支持不同类型的连接间负载平衡):

Cloudera Connector Powered by Teradata supports the following methods for importing data from Teradata to Hadoop:

  • split.by.amp
    • split.by.value
    • split.by.partition
    • split.by.hash
    • split.by.amp Method

This optimal method retrieves data from Teradata. The connector creates one mapper per available Teradata AMP, and each mapper subsequently retrieves data from each AMP. As a result, no staging table is required. This method requires Teradata 14.10 or higher.