在并行数据移动的情况下,将数据从Teradata数据库并行采集到Hadoop的最佳方法是什么?
在并行化流中加载数据并为Teradata带来不必要的工作量的建议最佳做法是什么?
答案 0 :(得分:1)
如果Tera数据支持像oracle这样的表分区,你可以尝试根据分区点读取表格,这样可以实现阅读中的并行...
您拥有的其他选项是,将表拆分为多个分区,例如在索引列上添加where子句。这将确保索引扫描,您可以避免全表扫描。
答案 1 :(得分:0)
如果在select子句中使用分区名称,Power Center将仅选择该分区中的行,因此不会有重复读取(不要忘记在Informatica会话级别选择数据库分区)。但是,如果使用键范围分区,则必须选择设置中提到的范围。通常我们使用NTILE oracle分析函数将表拆分成多个部分,以便读取在选择中是唯一的。如果您有任何疑问,请告诉我。如果表中有range / auto generated / surrogate键列,请在where子句中使用它 - 写一个子查询将表分成多个部分。
答案 2 :(得分:0)
将数据提取到Hadoop形式teradata的最具扩展性的方法是,我发现将Teradata连接器用于hadoop。它包含在Cloudera& Hortonworks发行版。我将基于Cloudera文档展示示例,但同样适用于Hortonworks:
Informatica大数据版通过命令行使用标准的Scoop调用并向其提交参数集。所以主要问题是 - 用于在两个MPP系统之间建立并行连接的驱动程序。
以下是Cloudera文档的链接: Using the Cloudera Connector Powered by Teradata
以下是本文档的摘要(您可以发现此连接器支持不同类型的连接之间的负载平衡):
由Teradata提供支持的Cloudera Connector支持以下方法将数据从Teradata导入Hadoop:
- split.by.amp
- split.by.value
- split.by.partition
- split.by.hash
- split.by.amp方法
此最佳方法从Teradata检索数据。连接器为每个可用的Teradata AMP创建一个映射器,每个映射器随后从每个AMP检索数据。因此,不需要临时表。此方法需要Teradata 14.10或更高版本。