提交 e1dd3f90 authored 作者: taojinlong's avatar taojinlong

feat: redshift 数据源

上级 629d14e3
...@@ -335,6 +335,12 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -335,6 +335,12 @@ public class JdbcProvider extends DatasourceProvider {
driver = mongodbConfiguration.getDriver(); driver = mongodbConfiguration.getDriver();
jdbcurl = mongodbConfiguration.getJdbc(); jdbcurl = mongodbConfiguration.getJdbc();
break; break;
case redshift:
RedshiftConfigration redshiftConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), RedshiftConfigration.class);
username = redshiftConfigration.getUsername();
password = redshiftConfigration.getPassword();
driver = redshiftConfigration.getDriver();
jdbcurl = redshiftConfigration.getJdbc();
default: default:
break; break;
} }
...@@ -411,6 +417,12 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -411,6 +417,12 @@ public class JdbcProvider extends DatasourceProvider {
dataSource.setUrl(mongodbConfiguration.getJdbc()); dataSource.setUrl(mongodbConfiguration.getJdbc());
jdbcConfiguration = mongodbConfiguration; jdbcConfiguration = mongodbConfiguration;
break; break;
case redshift:
RedshiftConfigration redshiftConfigration = new Gson().fromJson(datasourceRequest.getDatasource().getConfiguration(), RedshiftConfigration.class);
dataSource.setPassword(redshiftConfigration.getPassword());
dataSource.setDriverClassName(redshiftConfigration.getDriver());
dataSource.setUrl(redshiftConfigration.getJdbc());
jdbcConfiguration = redshiftConfigration;
default: default:
break; break;
} }
...@@ -513,6 +525,8 @@ public class JdbcProvider extends DatasourceProvider { ...@@ -513,6 +525,8 @@ public class JdbcProvider extends DatasourceProvider {
return "select name from sys.schemas;"; return "select name from sys.schemas;";
case pg: case pg:
return "SELECT nspname FROM pg_namespace;"; return "SELECT nspname FROM pg_namespace;";
case redshift:
return "SELECT nspname FROM pg_namespace;";
default: default:
return "show tables;"; return "show tables;";
} }
......
...@@ -50,6 +50,8 @@ public class ProviderFactory implements ApplicationContextAware { ...@@ -50,6 +50,8 @@ public class ProviderFactory implements ApplicationContextAware {
return context.getBean("ckQuery", QueryProvider.class); return context.getBean("ckQuery", QueryProvider.class);
case mongo: case mongo:
return context.getBean("mongoQuery", QueryProvider.class); return context.getBean("mongoQuery", QueryProvider.class);
case redshift:
return context.getBean("redshiftQuery", QueryProvider.class);
default: default:
return context.getBean("mysqlQuery", QueryProvider.class); return context.getBean("mysqlQuery", QueryProvider.class);
} }
......
...@@ -165,6 +165,8 @@ export default { ...@@ -165,6 +165,8 @@ export default {
return 'Doris' return 'Doris'
} else if (type === 'mongo') { } else if (type === 'mongo') {
return 'MongoDB' return 'MongoDB'
}else if (type === 'redshift') {
return 'AWS Redshift'
} }
}, },
......
...@@ -59,14 +59,14 @@ ...@@ -59,14 +59,14 @@
<el-form-item v-if="form.configuration.dataSourceType=='jdbc'" :label="$t('datasource.port')" prop="configuration.port" > <el-form-item v-if="form.configuration.dataSourceType=='jdbc'" :label="$t('datasource.port')" prop="configuration.port" >
<el-input v-model="form.configuration.port" autocomplete="off" type="number" min="0" /> <el-input v-model="form.configuration.port" autocomplete="off" type="number" min="0" />
</el-form-item> </el-form-item>
<el-form-item v-if="form.type=='oracle' || form.type=='sqlServer' || form.type=='pg'"> <el-form-item v-if="form.type=='oracle' || form.type=='sqlServer' || form.type=='pg' || form.type=='redshift'">
<el-button icon="el-icon-plus" size="mini" @click="getSchema()"> <el-button icon="el-icon-plus" size="mini" @click="getSchema()">
{{ $t('datasource.get_schema') }} {{ $t('datasource.get_schema') }}
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-form-item v-if="form.type=='oracle' || form.type=='sqlServer' || form.type=='pg'" :label="$t('datasource.schema')"> <el-form-item v-if="form.type=='oracle' || form.type=='sqlServer' || form.type=='pg' || form.type=='redshift'" :label="$t('datasource.schema')">
<el-select v-model="form.configuration.schema" filterable :placeholder="$t('datasource.please_choose_schema')" class="select-width"> <el-select filterable v-model="form.configuration.schema" :placeholder="$t('datasource.please_choose_schema')" class="select-width">
<el-option <el-option
v-for="item in schemas" v-for="item in schemas"
:key="item" :key="item"
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论