feat: 【数据源】数据源类型增加mariadb和doris分类

This commit is contained in:
taojinlong 2021-09-27 16:54:07 +08:00
parent 12755fa546
commit cf5cf54363
8 changed files with 35 additions and 39 deletions

View File

@ -39,7 +39,7 @@ public class CommonConfig {
datasource.setId("doris");
datasource.setName("doris");
datasource.setDesc("doris");
datasource.setType("doris");
datasource.setType("de_doris");
datasource.setConfiguration(jsonObject.toJSONString());
return datasource;
}

View File

@ -3,9 +3,11 @@ package io.dataease.datasource.constants;
public enum DatasourceTypes {
excel("excel", "excel", "", "", "", "", ""),
mysql("mysql", "mysql", "com.mysql.jdbc.Driver", "`", "`", "'", "'"),
mariadb("mariadb", "mariadb", "com.mysql.jdbc.Driver", "`", "`", "'", "'"),
ds_doris("ds_doris", "ds_doris", "com.mysql.jdbc.Driver", "`", "`", "'", "'"),
pg("pg", "pg", "org.postgresql.Driver", "\"", "\"", "\"", "\""),
sqlServer("sqlServer", "sqlServer", "com.microsoft.sqlserver.jdbc.SQLServerDriver", "\"", "\"", "\"", "\""),
doris("doris", "doris", "com.mysql.jdbc.Driver", "`", "`", "", ""),
de_doris("de_doris", "de_doris", "com.mysql.jdbc.Driver", "`", "`", "", ""),
oracle("oracle", "oracle", "oracle.jdbc.driver.OracleDriver", "\"", "\"", "\"", "\""),
ck("ch", "ch", "ru.yandex.clickhouse.ClickHouseDriver", "`", "`", "'", "'"),
es("es", "es", "", "\"", "\"", "\"", "\"");

View File

@ -441,19 +441,15 @@ public class JdbcProvider extends DatasourceProvider {
Properties props = new Properties();
switch (datasourceType) {
case mysql:
case mariadb:
case de_doris:
case ds_doris:
MysqlConfigration mysqlConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), MysqlConfigration.class);
username = mysqlConfigration.getUsername();
password = mysqlConfigration.getPassword();
driver = mysqlConfigration.getDriver();
jdbcurl = mysqlConfigration.getJdbc();
break;
case doris:
MysqlConfigration dorisConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), MysqlConfigration.class);
username = dorisConfigration.getUsername();
password = dorisConfigration.getPassword();
driver = dorisConfigration.getDriver();
jdbcurl = dorisConfigration.getJdbc();
break;
case sqlServer:
SqlServerConfigration sqlServerConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), SqlServerConfigration.class);
username = sqlServerConfigration.getUsername();
@ -502,6 +498,9 @@ public class JdbcProvider extends DatasourceProvider {
JdbcDTO jdbcDTO = new JdbcDTO();
switch (datasourceType) {
case mysql:
case mariadb:
case de_doris:
case ds_doris:
MysqlConfigration mysqlConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), MysqlConfigration.class);
dataSource.setUser(mysqlConfigration.getUsername());
dataSource.setDriverClass(mysqlConfigration.getDriver());
@ -509,14 +508,6 @@ public class JdbcProvider extends DatasourceProvider {
dataSource.setJdbcUrl(mysqlConfigration.getJdbc());
jdbcDTO = mysqlConfigration;
break;
case doris:
MysqlConfigration dorisConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), MysqlConfigration.class);
dataSource.setUser(dorisConfigration.getUsername());
dataSource.setDriverClass(dorisConfigration.getDriver());
dataSource.setPassword(dorisConfigration.getPassword());
dataSource.setJdbcUrl(dorisConfigration.getJdbc());
jdbcDTO = dorisConfigration;
break;
case sqlServer:
SqlServerConfigration sqlServerConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), SqlServerConfigration.class);
dataSource.setUser(sqlServerConfigration.getUsername());
@ -559,11 +550,11 @@ public class JdbcProvider extends DatasourceProvider {
DatasourceTypes datasourceType = DatasourceTypes.valueOf(datasourceRequest.getDatasource().getType());
switch (datasourceType) {
case mysql:
case de_doris:
case ds_doris:
case mariadb:
MysqlConfigration mysqlConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), MysqlConfigration.class);
return mysqlConfigration.getDataBase();
case doris:
MysqlConfigration dorisConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), MysqlConfigration.class);
return dorisConfigration.getDataBase();
case sqlServer:
SqlServerConfigration sqlServerConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), SqlServerConfigration.class);
return sqlServerConfigration.getDataBase();
@ -580,8 +571,9 @@ public class JdbcProvider extends DatasourceProvider {
DatasourceTypes datasourceType = DatasourceTypes.valueOf(datasourceRequest.getDatasource().getType());
switch (datasourceType) {
case mysql:
return "show tables;";
case doris:
case mariadb:
case de_doris:
case ds_doris:
return "show tables;";
case sqlServer:
SqlServerConfigration sqlServerConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), SqlServerConfigration.class);
@ -615,8 +607,10 @@ public class JdbcProvider extends DatasourceProvider {
DatasourceTypes datasourceType = DatasourceTypes.valueOf(datasourceRequest.getDatasource().getType());
switch (datasourceType) {
case mysql:
return null;
case doris:
case mariadb:
case de_doris:
case ds_doris:
case ck:
return null;
case sqlServer:
SqlServerConfigration sqlServerConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), SqlServerConfigration.class);
@ -638,8 +632,6 @@ public class JdbcProvider extends DatasourceProvider {
throw new Exception(Translator.get("i18n_schema_is_empty"));
}
return "SELECT viewname FROM pg_views WHERE schemaname='SCHEMA' ;".replace("SCHEMA", pgConfigration.getSchema());
case ck:
return null;
default:
return null;
}

View File

@ -22,14 +22,6 @@ public class ProviderFactory implements ApplicationContextAware {
public static DatasourceProvider getProvider(String type) {
DatasourceTypes datasourceType = DatasourceTypes.valueOf(type);
switch (datasourceType) {
case mysql:
return context.getBean("jdbc", DatasourceProvider.class);
case doris:
return context.getBean("jdbc", DatasourceProvider.class);
case sqlServer:
return context.getBean("jdbc", DatasourceProvider.class);
case pg:
return context.getBean("jdbc", DatasourceProvider.class);
case es:
return context.getBean("es", DatasourceProvider.class);
default:
@ -41,8 +33,10 @@ public class ProviderFactory implements ApplicationContextAware {
DatasourceTypes datasourceType = DatasourceTypes.valueOf(type);
switch (datasourceType) {
case mysql:
case mariadb:
case ds_doris:
return context.getBean("mysqlQuery", QueryProvider.class);
case doris:
case de_doris:
return context.getBean("dorisQuery", QueryProvider.class);
case sqlServer:
return context.getBean("sqlserverQuery", QueryProvider.class);
@ -62,7 +56,7 @@ public class ProviderFactory implements ApplicationContextAware {
public static DDLProvider getDDLProvider(String type) {
DatasourceTypes datasourceType = DatasourceTypes.valueOf(type);
switch (datasourceType) {
case doris:
case de_doris:
return context.getBean("dorisDDL", DDLProvider.class);
default:
return context.getBean("dorisDDL", DDLProvider.class);

View File

@ -2,16 +2,16 @@ package io.dataease.provider.doris;
import io.dataease.provider.SQLConstants;
import static io.dataease.datasource.constants.DatasourceTypes.doris;
import static io.dataease.datasource.constants.DatasourceTypes.de_doris;
/**
* @Author gin
* @Date 2021/7/8 7:22 下午
*/
public class DorisConstants extends SQLConstants {
public static final String KEYWORD_TABLE = doris.getKeywordPrefix() + "%s" + doris.getKeywordSuffix();
public static final String KEYWORD_TABLE = de_doris.getKeywordPrefix() + "%s" + de_doris.getKeywordSuffix();
public static final String KEYWORD_FIX = "%s." + doris.getKeywordPrefix() + "%s" + doris.getKeywordSuffix();
public static final String KEYWORD_FIX = "%s." + de_doris.getKeywordPrefix() + "%s" + de_doris.getKeywordSuffix();
public static final String UNIX_TIMESTAMP = "UNIX_TIMESTAMP(%s)";

View File

@ -763,6 +763,8 @@ public class ExtractDataService {
String transName = null;
switch (datasourceType) {
case ds_doris:
case mariadb:
case mysql:
MysqlConfigration mysqlConfigration = new Gson().fromJson(datasource.getConfiguration(), MysqlConfigration.class);
dataMeta = new DatabaseMeta("db", "MYSQL", "Native", mysqlConfigration.getHost().trim(), mysqlConfigration.getDataBase().trim(), mysqlConfigration.getPort().toString(), mysqlConfigration.getUsername(), mysqlConfigration.getPassword());

View File

@ -158,6 +158,10 @@ export default {
return 'Elasticsearch'
} else if (type === 'ck') {
return 'ClickHouse'
} else if (type === 'mariadb') {
return 'MariaDB'
} else if (type === 'ds_doris') {
return 'Doris'
}
},

View File

@ -153,6 +153,8 @@ export default {
{ name: 'sqlServer', label: 'SQL Server', type: 'jdbc' },
{ name: 'pg', label: 'PostgreSQL', type: 'jdbc' },
{ name: 'es', label: 'Elasticsearch', type: 'es' },
{ name: 'mariadb', label: 'MariaDB', type: 'jdbc' },
{ name: 'ds_doris', label: 'Doris', type: 'jdbc' },
{ name: 'ck', label: 'ClickHouse', type: 'jdbc' }
],
schemas: [],