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

feat: redshift 数据源

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