【发布时间】:2019-02-26 10:16:42
【问题描述】:
我有类似下面的查询
sqoop export
--connect jdbc:teradata://server/database=BIGDATA
--username dbuser
--password dbpw
-Dsqoop.export.records.per.statement=500
--batch
--hive-table country
--table COUNTRY
--input-null-non-string '\\N' \ --input-null-string '\\N'
上述查询对 300 万条记录运行良好(将数据加载到 TeraData 表需要 1 小时)。对于将数据导出到 Teradata 空表的 1 亿条记录,我认为完成导出可能需要更多时间。如何有效地编写查询以更快地导出数据而不会导致查询失败?
【问题讨论】:
-
@JamesZ 我不明白你的意思,但我改变了措辞。
-
Teradata 表是什么样的? (关于倾斜的主索引定义)您可以先加载定义为无主索引表的临时表吗?您是否排除了网络作为限制因素? sqoop 是否使用了足够的工作任务来最大化并行效率?
-
teradata 表是多负载的(类似这样,我不记得确切的类型,但它是一个简单的表,它将第一列作为主键)。我没有定义任何限制因素,也没有定义它的主键。是的,sqoop 作业有足够的资源,但需要配置为最佳性能而不会因为更多的并行任务而失败,并且运行速度比消耗的时间快。 @RobPaller
-
@RobPaller 如果您可以通过优化提供/更新查询,我会更加清楚。
-
我的意思是使用“十万”,我已经删除了。
标签: hadoop export teradata sqoop