如何使用sqoop将数据导出到具有自动递增id的Microsoft Sql表



我在Microsoft Sql上有一个表,字段ID设置了自动递增。

我想将数据从hadoop导出到此sql表。

我创建了一个hiveql表来镜像sql表,
我尝试在sql上自动递增的Id列上设置null值,但没有成功。

有什么争论或方法可以做到这一点?

sqoop export 
--connect "jdbc:sqlserver://<sqlserverhost>:<sqlserver port>;database=<sqlserver database> 
--username="";
--password="" 
--table "MYTABLE"  
--catalog"" 
-- columns "ID, NAME, VALUE1, VALE2"
-- verbose 

您是否尝试省略自动递增列?,在CCD_ 7中运行良好,也许CCD_ 8也做同样的事情。

在我的例子中,我创建了一个自动递增表:

CREATE TABLE users (
id MEDIUMINT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
topic CHAR(30) NOT NULL,
hits CHAR(30) NOT NULL
PRIMARY KEY (id)
);

我在文件中有这些数据

Didar,sqoop,30
Rahul,scala,120
myself,cca175,180
Nikita,spark,80
Mithun,spark,1

sqoop export

sqoop export 
--connect jdbc:mysql://quickstart.cloudera:3306/retail_export 
--username root 
--password cloudera 
--export-dir /user/cloudera/files/user.csv 
--table users 
--columns "name, topic, hits" 
--outdir /home/cloudera/outdir 
--bindir /home/cloudera/bindir

结果

+----+--------+--------+------+
| id | name   | topic  | hits |
+----+--------+--------+------+
|  1 | Didar  | sqoop  | 30   |
|  2 | Rahul  | scala  | 120  |
|  3 | myself | cca175 | 180  |
|  4 | Mithun | spark  | 1    |
|  5 | Nikita | spark  | 80   |
+----+--------+--------+------+

最新更新