我正在尝试将〜700GB文件加载到Teradata,使用sqoop-connector-teradata-1.3c5.tar.gz [由Teradata提供支持的Cloudera连接器]
表现似乎很慢。
我在sqoop命令中包含了以下参数
sqoop export -D sqoop.export.records.per.statement=100 --connect jdbc:teradata://ip address/Database=dbname --driver com.teradata.jdbc.TeraDriver --username user --password pwd --table STG_TEST --export-dir /dirpath/ --input-fields-terminated-by "\t" --input-lines-terminated-by "\n" --connection-param-file /path/sqoop.properties --batch;
连接文件包括
jdbc.transaction.isolation = TRANSACTION_READ_UNCOMMITTED
请建议如何改善sqoop导出性能。
答案 0 :(得分:0)
您是否考虑过利用' internal.fastload' Cloudier Connector利用Teradata的FastLoad实用程序机制的方法?这将比目前通过“INSERT ... SELECT'声明。它需要你加载到一个空的舞台表,然后使用' MERGE'或者' INSERT / UPDATE'要应用于最终目标表的语句。
答案 1 :(得分:0)
根据Clouderas文档here,"连接器(1.3c5)自动使用FastExport / FastLoad以获得更好的性能。"
查看您的命令,您没有指定任何映射器。使用多个映射器可以并行化作业并提高性能。 来自Apache Sqoop Cookbook:
映射器的最佳数量取决于许多变量:您需要考虑数据库类型,用于数据库服务器的硬件以及对数据库需要服务的其他请求的影响。没有适用于所有场景的最佳映射器数量。相反,我们鼓励您尝试为您的环境和用例找到最佳的并行度。从少量的映射器开始,慢慢增加,而不是从大量映射器开始,向下工作,这是一个好主意。