Export Sqoop导出是否可以创建新表?

Export Sqoop导出是否可以创建新表?,export,hdfs,rdbms,sqoop,Export,Hdfs,Rdbms,Sqoop,可以使用Sqoop将数据从HDFS导出到RDBMS表。 但似乎我们需要现有的表 是否有一些参数告诉Sqoop执行“创建表”操作并将数据导出到此新装箱的表? 如果是,它将与Oracle合作吗 恐怕Sqoop目前不支持在RDBMS中创建表。Sqoop使用RDBMS中的表来获取元数据(列数及其数据类型),因此我不确定Sqoop从何处获取元数据来为您创建表。您实际上可以通过Sqoop eval执行任意SQL查询和DDL,至少使用MySQL和MSSQL。我希望它也能与Oracle合作。MSSQL示例: s

可以使用Sqoop将数据从HDFS导出到RDBMS表。 但似乎我们需要现有的表

是否有一些参数告诉Sqoop执行“创建表”操作并将数据导出到此新装箱的表?


如果是,它将与Oracle合作吗

恐怕Sqoop目前不支持在RDBMS中创建表。Sqoop使用RDBMS中的表来获取元数据(列数及其数据类型),因此我不确定Sqoop从何处获取元数据来为您创建表。

您实际上可以通过Sqoop eval执行任意SQL查询和DDL,至少使用MySQL和MSSQL。我希望它也能与Oracle合作。MSSQL示例:

sqoop eval --connect 'jdbc:sqlserver://<DB SERVER>:<DB PORT>;
database=<DB NAME>'  --query "CREATE TABLE..."
--username <USERNAME> -P
sqoop eval--connect'jdbc:sqlserver://:;
数据库='--查询“创建表…”
--用户名-P

我注意到您也使用Oracle。某些特定于sqoop供应商的sqoop连接器支持此功能,包括Oracle。Sqoop的Oracle直接连接模式可以实现这一点

24.8.5.4。创建Oracle表

-Doraoop.template.table=TemplateTableName

通过复制的结构和数据类型创建OracleTableName TemplateTableName。TemplateTableName是Oracle中存在的表 在执行Sqoop命令之前


另外,您必须使用--direct sqoop export选项来激活sqoop direct mode='dataconnector for Oracle和Hadoop'(又名OraOOP-旧名称)。

sqoop用户指南提到生产工作流中不应使用eval-“评估工具仅用于评估目的。您可以使用它从Sqoop中验证数据库连接,或者测试简单查询。它不应用于生产工作流程。”