我在Microsoft Sql上有一张表,其字段ID设置为自动递增。
我想将数据从hadoop导出到此sql表。
我创建了一个hiveql表来镜像sql表,我尝试在Id列上设置空值,该值在sql上是自动递增的,但是没有用。
有某种论点或某些方法可以做到这一点?
sqoop export \
--connect "jdbc:sqlserver://<sqlserverhost>:<sqlserver port>;database=<sqlserver database> \
--username="";
--password=""
--table "MYTABLE"
--catalog""
-- columns "ID, NAME, VALUE1, VALE2"\
-- verbose \
您是否尝试忽略autoincrement列?在mysql中,它工作得很好,也许SQL Server也是一样。
在我的示例中,我创建了一个自动增量表:
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
Nikita,spark,80
Mithun,spark,1
和squip导出
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 |
+----+--------+--------+------+
我希望这会有所帮助!
问候