This is an automated email from the ASF dual-hosted git repository.
kirs pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new 1cf40e1 fix sqoop task jdbc string contains special char (#4105)
1cf40e1 is described below
commit 1cf40e1d1e4379e6b50a92871987d59291ccfd50
Author: Yelli <[email protected]>
AuthorDate: Fri Nov 27 09:46:23 2020 +0800
fix sqoop task jdbc string contains special char (#4105)
---
.../worker/task/sqoop/generator/sources/MysqlSourceGenerator.java | 2 +-
.../worker/task/sqoop/generator/targets/MysqlTargetGenerator.java | 2 +-
.../dolphinscheduler/server/worker/task/sqoop/SqoopTaskTest.java | 8 ++++----
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sqoop/generator/sources/MysqlSourceGenerator.java
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sqoop/generator/sources/MysqlSourceGenerator.java
index 63738c8..58e508a 100644
---
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sqoop/generator/sources/MysqlSourceGenerator.java
+++
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sqoop/generator/sources/MysqlSourceGenerator.java
@@ -60,7 +60,7 @@ public class MysqlSourceGenerator implements ISourceGenerator
{
if (null != baseDataSource) {
mysqlSourceSb.append(Constants.SPACE).append(SqoopConstants.DB_CONNECT)
-
.append(Constants.SPACE).append(baseDataSource.getJdbcUrl())
+
.append(Constants.SPACE).append(Constants.DOUBLE_QUOTES).append(baseDataSource.getJdbcUrl()).append(Constants.DOUBLE_QUOTES)
.append(Constants.SPACE).append(SqoopConstants.DB_USERNAME)
.append(Constants.SPACE).append(baseDataSource.getUser())
.append(Constants.SPACE).append(SqoopConstants.DB_PWD)
diff --git
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sqoop/generator/targets/MysqlTargetGenerator.java
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sqoop/generator/targets/MysqlTargetGenerator.java
index b8a32da..4384c96 100644
---
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sqoop/generator/targets/MysqlTargetGenerator.java
+++
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/task/sqoop/generator/targets/MysqlTargetGenerator.java
@@ -60,7 +60,7 @@ public class MysqlTargetGenerator implements ITargetGenerator
{
if (null != baseDataSource) {
mysqlTargetSb.append(Constants.SPACE).append(SqoopConstants.DB_CONNECT)
-
.append(Constants.SPACE).append(baseDataSource.getJdbcUrl())
+
.append(Constants.SPACE).append(Constants.DOUBLE_QUOTES).append(baseDataSource.getJdbcUrl()).append(Constants.DOUBLE_QUOTES)
.append(Constants.SPACE).append(SqoopConstants.DB_USERNAME)
.append(Constants.SPACE).append(baseDataSource.getUser())
.append(Constants.SPACE).append(SqoopConstants.DB_PWD)
diff --git
a/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/worker/task/sqoop/SqoopTaskTest.java
b/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/worker/task/sqoop/SqoopTaskTest.java
index f187617..fcf15d6 100644
---
a/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/worker/task/sqoop/SqoopTaskTest.java
+++
b/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/worker/task/sqoop/SqoopTaskTest.java
@@ -97,7 +97,7 @@ public class SqoopTaskTest {
SqoopJobGenerator generator = new SqoopJobGenerator();
String mysqlToHdfsScript =
generator.generateSqoopJob(mysqlToHdfsParams, mysqlTaskExecutionContext);
String mysqlToHdfsExpected =
- "sqoop import -D mapred.job.name=sqoop_import -D
mapreduce.map.memory.mb=4096 --direct -m 1 --connect
jdbc:mysql://192.168.0.111:3306/test "
+ "sqoop import -D mapred.job.name=sqoop_import -D
mapreduce.map.memory.mb=4096 --direct -m 1 --connect
\"jdbc:mysql://192.168.0.111:3306/test\" "
+ "--username kylo --password \"123456\" --table person_2
--target-dir /ods/tmp/test/person7 --as-textfile "
+ "--delete-target-dir --fields-terminated-by '@'
--lines-terminated-by '\\n' --null-non-string 'NULL' --null-string 'NULL'";
Assert.assertEquals(mysqlToHdfsExpected, mysqlToHdfsScript);
@@ -111,7 +111,7 @@ public class SqoopTaskTest {
SqoopParameters hdfsToMysqlParams = JSONUtils.parseObject(hdfsToMysql,
SqoopParameters.class);
String hdfsToMysqlScript =
generator.generateSqoopJob(hdfsToMysqlParams, mysqlTaskExecutionContext);
String hdfsToMysqlScriptExpected =
- "sqoop export -D mapred.job.name=sqoop_import -m 1 --export-dir
/ods/tmp/test/person7 --connect jdbc:mysql://192.168.0.111:3306/test "
+ "sqoop export -D mapred.job.name=sqoop_import -m 1 --export-dir
/ods/tmp/test/person7 --connect \"jdbc:mysql://192.168.0.111:3306/test\" "
+ "--username kylo --password \"123456\" --table person_3
--columns id,name,age,sex,create_time --fields-terminated-by '@' "
+ "--lines-terminated-by '\\n' --update-key id --update-mode
allowinsert";
Assert.assertEquals(hdfsToMysqlScriptExpected, hdfsToMysqlScript);
@@ -128,7 +128,7 @@ public class SqoopTaskTest {
String hiveToMysqlScript =
generator.generateSqoopJob(hiveToMysqlParams, mysqlTaskExecutionContext);
String hiveToMysqlExpected =
"sqoop export -D mapred.job.name=sqoop_import -m 1
--hcatalog-database stg --hcatalog-table person_internal
--hcatalog-partition-keys date "
- + "--hcatalog-partition-values 2020-02-17 --connect
jdbc:mysql://192.168.0.111:3306/test --username kylo --password \"123456\"
--table person_3 "
+ + "--hcatalog-partition-values 2020-02-17 --connect
\"jdbc:mysql://192.168.0.111:3306/test\" --username kylo --password \"123456\"
--table person_3 "
+ "--fields-terminated-by '@' --lines-terminated-by '\\n'";
Assert.assertEquals(hiveToMysqlExpected, hiveToMysqlScript);
@@ -143,7 +143,7 @@ public class SqoopTaskTest {
SqoopParameters mysqlToHiveParams = JSONUtils.parseObject(mysqlToHive,
SqoopParameters.class);
String mysqlToHiveScript =
generator.generateSqoopJob(mysqlToHiveParams, mysqlTaskExecutionContext);
String mysqlToHiveExpected =
- "sqoop import -D mapred.job.name=sqoop_import -m 1 --connect
jdbc:mysql://192.168.0.111:3306/test --username kylo --password \"123456\" "
+ "sqoop import -D mapred.job.name=sqoop_import -m 1 --connect
\"jdbc:mysql://192.168.0.111:3306/test\" --username kylo --password \"123456\" "
+ "--query \"SELECT * FROM person_2 WHERE \\$CONDITIONS\"
--map-column-java id=Integer --hive-import --hive-table stg.person_internal_2 "
+ "--create-hive-table --hive-overwrite --delete-target-dir
--hive-partition-key date --hive-partition-value 2020-02-16";
Assert.assertEquals(mysqlToHiveExpected, mysqlToHiveScript);