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

问题描述 投票:0回答:1

我在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 \
sql-server hadoop hiveql sqoop
1个回答
0
投票

您是否尝试忽略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   |
+----+--------+--------+------+

我希望这会有所帮助!

问候

© www.soinside.com 2019 - 2024. All rights reserved.