Import RDBMS中无主键的Sqoop导入
我可以使用sqoop将RDBMS表数据(表没有主键)导入到配置单元吗?如果是,那么请给出sqoop导入命令Import RDBMS中无主键的Sqoop导入,import,sqoop,Import,Sqoop,我可以使用sqoop将RDBMS表数据(表没有主键)导入到配置单元吗?如果是,那么请给出sqoop导入命令 我已尝试使用sqoop import常规命令,但失败。如果您的表没有定义主键,则必须为导入数据提供-m1选项,或者必须提供--split by参数和某个列名,否则会出现错误: ERROR tool.ImportTool: Error during import: No primary key could be found for table <table_name>. Plea
我已尝试使用sqoop import常规命令,但失败。如果您的表没有定义主键,则必须为导入数据提供
-m1
选项,或者必须提供--split by
参数和某个列名,否则会出现错误:
ERROR tool.ImportTool: Error during import: No primary key could be found for table <table_name>. Please specify one with --split-by or perform a sequential import with '-m 1'
或
在第一个场景中,使用1个映射器。。。如果文件的大小非常大,这个过程将需要更多的时间来响应,或者可能会失败。在使用mapper=1之前检查数据的大小 您可以将数据从RDBMS导入到配置单元,而无需Primarykey 首先,您需要在配置单元中创建一个表。然后,您需要编写以下代码:
sqoop import \
--connect jdbc:mysql://localhost/test_db \
--username root \
--password **** \
--table <RDBMS-Table-name> \
--target-dir /user/root/user_data \
--hive-import \
--hive-table <hive-table-name> \
--create-hive-table \
-m 1 (or) --split-by <RDBMS-Column>
sqoop导入\
--连接jdbc:mysql://localhost/test_db \
--用户名根\
--密码****\
--桌子\
--目标目录/用户/根目录/用户\u数据\
--蜂巢导入\
--蜂箱台\
--创建配置单元表\
-m 1(或)--除以
快速查看:
Sqoop作业失败,错误看起来像“导入期间的错误:找不到表的主键。请使用--split by指定一个,或使用'-m1'执行顺序导入”
说明:
通常,在内部执行Sqoop作业时,它会在表中搜索主键。如果没有主键,Sqoop作业将失败,错误如下“导入期间出错:找不到表的主键。请使用--split by指定主键,或使用“-m 1”执行顺序导入。该建议描述了此场景的两种替代方法
最好的办法是选择2
在命令中使用以下命令:
--autoreset-to-one-mapper
Import
如果表没有主键且未提供按列拆分,则应使用一个映射器。它不能与--按
拆分选项一起使用
sqoop import \
--connect jdbc:mysql://localhost/test_db \
--username root \
--password **** \
--table <RDBMS-Table-name> \
--target-dir /user/root/user_data \
--hive-import \
--hive-table <hive-table-name> \
--create-hive-table \
-m 1 (or) --split-by <RDBMS-Column>
--autoreset-to-one-mapper