Hadoop Sqoop导出1亿条记录速度更快

Hadoop Sqoop导出1亿条记录速度更快,hadoop,export,teradata,sqoop,Hadoop,Export,Teradata,Sqoop,我有如下类似的疑问 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-str

我有如下类似的疑问

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亿条记录,我认为完成导出可能需要更多的时间。如何高效地编写查询以更快地导出数据而不失败查询?< /p> < p>您可能需要考虑增加<代码>获取大小< /代码>(SqOOP必须获取每一勺数据的条目数)从默认的
1000
,例如--fetch size 10000 0r 20000
,这取决于您的可用内存和环境带宽。

@JamesZ我不明白您在这里的意思,但我更改了措辞。Teradata表是什么样子的?(关于倾斜的主索引定义)能否先加载定义为非主索引表的暂存表?你是否排除了网络是一个限制因素?sqoop是否使用了足够的辅助任务来最大化并行效率?teradata表是multiload(类似这样,我不记得确切的类型,但它是一个简单的表,以第一列为主键)。我没有定义任何限制因素,也没有定义主键。是的,sqoop作业有足够的资源,但需要进行配置,以便在不失败的情况下获得最佳性能,因为并行任务较多,并且运行速度比消耗的时间快@RobPaller@RobPaller如果您可以使用优化提供/更新查询,会让我更清楚。我的意思是使用“lakh”,我已经删除了它。是否可以使用fetch size以及参数“-Dsqoop.export.records.per.statement=500”和“-batch”它已经作为批处理运行,记录可配置,现在作为500使用。我还在尝试hadoop teradata连接器,该连接器在时间戳上出错,因此设置此属性可能会工作
tdch.input.timestamp.format yyyy MM dd HH:MM:ss端口,该metastore应该侦听该端口。可能我正在尝试使用以下连接器
hadoop jar$TDCH_jar com.teradata.connector.common.tool.ConnectorExportTool-url jdbc:teradata://1.1.1.1/DATABASE=test_db -用户名user123-密码pwd123-作业类型hdfs-文件格式textfile-方法internal.fastload-分隔符“\u0001”-sourcepath/apps/hive/wareho-targettable td_tab1-nummappers 5,但我仍然看到一些问题,如索引越界异常