根据我的理解,sqoop用于将表/数据从数据库导入或导出到HDFS、Hive或HBASE。
我们可以直接导入单个表或表的列表。在内部,mapreduce程序(我想只有map任务)会运行。
我的疑问是什么是sqoop direct,什么时候使用sqoop direct选项?
发布于 2016-08-26 01:00:38
只要阅读Sqoop文档就可以了!
中
某些数据库可以使用特定于数据库的数据移动工具(...)以更高性能的方式执行导入
某些数据库还为导出提供了直接模式(...)
有关直接模式与每个特定RDBMS的使用、安装要求、可用选项和限制的详细信息,请参见第25节
Oracle data connector for Hadoop
下的MySQL
底线:对于不同的数据库,“直接模式”意味着不同的东西。
对于MySQL或PostgreSQL,它涉及批量加载/卸载实用程序(即完全绕过JDBC);而对于Oracle,它涉及“直接路径插入”,即使用JDBC,但处于非事务模式(因此最好使用临时表,否则可能会在PK和损坏的表中出现重复项)。
发布于 2016-11-26 21:35:24
简而言之,这是一种不运行任何映射器或缩减程序的快速导入模式。
sqoop import --connect jdbc:mysql://db.foo.com/corp --table EMPLOYEES --direct备注:
--direct仅在mysql中受支持,而postgresql.BLOB、CLOB或LONGVARBINARY列。发布于 2019-08-27 18:51:34
来自Managing Big Data in Clusters and Cloud Storage
默认情况下,Sqoop使用JDBC连接数据库。但是,根据数据库的不同,可能有更快的、特定于数据库的连接器可用,您可以通过使用--direct option来使用该连接器。
因此,当您希望使用不同于默认数据库连接器的数据库连接器时,可以使用--选项。
https://stackoverflow.com/questions/39150465
复制相似问题