根据我的理解,sqoop用于将表/数据从数据库导入或导出到HDFS或Hive或HBASE。
而且我们可以直接导入单个表或表列表。内部mapreduce程序(我认为只有map任务)将运行。
我的疑问是什么是直接使用sqoop,什么时候使用直接选择sqoop?
只需阅读Sqoop文档!
一般原则位于此处,用于进口,而此处用于出口
一些数据库可以使用特定于数据库的数据移动工具以更高的性能执行导入(...)
某些数据库提供了直接模式的出口,以及(...)
有关在每个特定RDBMS上使用直接模式的详细信息,安装要求,可用的选项和限制,请参见第25节。
MySQL下的第25节
适用于Hadoop的Oracle数据连接器下的第25节
等等
底线:“直接模式” 对于不同的数据库意味着不同的事物。
对于MySQL或PostgreSQL,它与批量加载程序/卸载程序实用程序有关(即,完全绕过JDBC)。而对于Oracle,它与“直接路径INSERT”相关,即与JDBC关联,但处于非事务模式(因此,最好使用临时表,否则可能会在PK和损坏的表中出现重复项)。