Commit 6860ab21 authored by zhu-mingye's avatar zhu-mingye

新增扩展Hive元数据

parent f9ae43cc
......@@ -132,7 +132,15 @@
<include>dlink-metadata-postgresql-${project.version}.jar</include>
</includes>
</fileSet>
<!-- 将模块dlink-metadata的jar文件放到打包目录/lib下 -->
<fileSet>
<directory>${project.parent.basedir}/dlink-metadata/dlink-metadata-hive/target
</directory>
<outputDirectory>lib</outputDirectory>
<includes>
<include>dlink-metadata-hive-${project.version}.jar</include>
</includes>
</fileSet>
<fileSet>
<directory>${project.parent.basedir}/dlink-metadata/dlink-metadata-sqlserver/target
</directory>
......
......@@ -140,9 +140,9 @@ public class Table implements Serializable, Comparable<Table> {
}
}
if(Asserts.isNotNullString(comment)){
sb.append(" FROM " + catalogName + "." + schema + "." + name + ";" + " -- " + comment + "\n");
sb.append(" FROM " + schema + "." + name + ";" + " -- " + comment + "\n");
}else {
sb.append(" FROM " + catalogName + "." + schema + "." + name +";\n");
sb.append(" FROM " + schema + "." + name +";\n");
}
return sb.toString();
}
......
......@@ -105,6 +105,11 @@
<artifactId>dlink-metadata-doris</artifactId>
<scope>${scope.runtime}</scope>
</dependency>
<dependency>
<groupId>com.dlink</groupId>
<artifactId>dlink-metadata-hive</artifactId>
<scope>${scope.runtime}</scope>
</dependency>
<dependency>
<groupId>com.dlink</groupId>
<artifactId>dlink-metadata-postgresql</artifactId>
......
......@@ -12,7 +12,7 @@ public enum Dialect {
FLINKSQL("FlinkSql"),FLINKJAR("FlinkJar"),FLINKSQLENV("FlinkSqlEnv"),SQL("Sql"),JAVA("Java"),
MYSQL("Mysql"),ORACLE("Oracle"),SQLSERVER("SqlServer"),POSTGRESQL("PostGreSql"),CLICKHOUSE("ClickHouse"),
DORIS("Doris"),PHOENIX("Phoenix");
DORIS("Doris"),PHOENIX("Phoenix"),HIVE("Hive");
private String value;
......@@ -42,7 +42,7 @@ public enum Dialect {
public static boolean isSql(String value){
Dialect dialect = Dialect.get(value);
switch (dialect){
case SQL:case MYSQL:case ORACLE:case SQLSERVER:case POSTGRESQL:case CLICKHOUSE:case DORIS: case PHOENIX:
case SQL:case MYSQL:case ORACLE:case SQLSERVER:case POSTGRESQL:case CLICKHOUSE:case DORIS: case PHOENIX: case HIVE:
return true;
default:
return false;
......
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>dlink-metadata</artifactId>
<groupId>com.dlink</groupId>
<version>0.6.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>dlink-metadata-hive</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.dlink</groupId>
<artifactId>dlink-metadata-base</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.apache.hive</groupId>-->
<!-- <artifactId>hive-metastore</artifactId>-->
<!-- <version>2.1.1-cdh6.2.1</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>commons-logging</groupId>-->
<!-- <artifactId>commons-logging</artifactId>-->
<!-- <version>1.2</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.apache.hadoop</groupId>-->
<!-- <artifactId>hadoop-common</artifactId>-->
<!-- <version>3.0.0-cdh6.2.1</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.apache.hive</groupId>-->
<!-- <artifactId>hive-exec</artifactId>-->
<!-- <version>2.1.1-cdh6.2.1</version>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.apache.thrift</groupId>-->
<!-- <artifactId>libfb303</artifactId>-->
<!-- <version>0.9.3</version>-->
<!-- </dependency>-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
</repositories>
</project>
\ No newline at end of file
package com.dlink.metadata.constant;
public interface HiveConstant {
/**
* 查询所有database
*/
String QUERY_ALL_DATABASE = " show databases";
/**
* 查询所有schema下的所有表
*/
String QUERY_ALL_TABLES_BY_SCHEMA = "show tables";
/**
* 扩展信息Key
*/
String DETAILED_TABLE_INFO = "Detailed Table Information";
/**
* 查询指定schema.table的扩展信息
*/
String QUERY_TABLE_SCHEMA_EXTENED_INFOS = " describe extended `%s`.`%s`";
/**
* 查询指定schema.table的信息 列 列类型 列注释
*/
String QUERY_TABLE_SCHEMA = " describe `%s`.`%s`";
/**
* 使用 DB
*/
String USE_DB = "use `%s`";
/**
* 只查询指定schema.table的列名
*/
String QUERY_TABLE_COLUMNS_ONLY = "show columns in `%s`.`%s`";
}
package com.dlink.metadata.convert;
import com.dlink.assertion.Asserts;
import com.dlink.model.Column;
import com.dlink.model.ColumnType;
public class HiveTypeConvert implements ITypeConvert {
@Override
public ColumnType convert(Column column) {
if (Asserts.isNull(column)) {
return ColumnType.STRING;
}
String t = column.getType().toLowerCase().trim();
if (t.contains("char")) {
return ColumnType.STRING;
} else if (t.contains("boolean")) {
if (column.isNullable()) {
return ColumnType.JAVA_LANG_BOOLEAN;
}
return ColumnType.BOOLEAN;
} else if (t.contains("tinyint")) {
if (column.isNullable()) {
return ColumnType.JAVA_LANG_BYTE;
}
return ColumnType.BYTE;
} else if (t.contains("smallint")) {
if (column.isNullable()) {
return ColumnType.JAVA_LANG_SHORT;
}
return ColumnType.SHORT;
} else if (t.contains("bigint")) {
if (column.isNullable()) {
return ColumnType.JAVA_LANG_LONG;
}
return ColumnType.LONG;
} else if (t.contains("largeint")) {
return ColumnType.STRING;
} else if (t.contains("int")) {
if (column.isNullable()) {
return ColumnType.INTEGER;
}
return ColumnType.INT;
} else if (t.contains("float")) {
if (column.isNullable()) {
return ColumnType.JAVA_LANG_FLOAT;
}
return ColumnType.FLOAT;
} else if (t.contains("double")) {
if (column.isNullable()) {
return ColumnType.JAVA_LANG_DOUBLE;
}
return ColumnType.DOUBLE;
} else if (t.contains("date")) {
return ColumnType.STRING;
} else if (t.contains("datetime")) {
return ColumnType.STRING;
} else if (t.contains("decimal")) {
return ColumnType.DECIMAL;
} else if (t.contains("time")) {
return ColumnType.DOUBLE;
}
return ColumnType.STRING;
}
@Override
public String convertToDB(ColumnType columnType) {
switch (columnType) {
case STRING:
return "varchar";
case BOOLEAN:
case JAVA_LANG_BOOLEAN:
return "boolean";
case BYTE:
case JAVA_LANG_BYTE:
return "tinyint";
case SHORT:
case JAVA_LANG_SHORT:
return "smallint";
case LONG:
case JAVA_LANG_LONG:
return "bigint";
case FLOAT:
case JAVA_LANG_FLOAT:
return "float";
case DOUBLE:
case JAVA_LANG_DOUBLE:
return "double";
case DECIMAL:
return "decimal";
case INT:
case INTEGER:
return "int";
default:
return "varchar";
}
}
}
package com.dlink.metadata.driver;
import com.dlink.assertion.Asserts;
import com.dlink.metadata.constant.HiveConstant;
import com.dlink.metadata.convert.HiveTypeConvert;
import com.dlink.metadata.convert.ITypeConvert;
import com.dlink.metadata.query.HiveQuery;
import com.dlink.metadata.query.IDBQuery;
import com.dlink.model.Column;
import com.dlink.model.Schema;
import com.dlink.model.Table;
import org.apache.commons.lang3.StringUtils;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class HiveDriver extends AbstractJdbcDriver implements Driver {
// @Override
// public Table getTable(String schemaName, String tableName) {
// List<Table> tables = listTables(schemaName);
// Table table = null;
// for(Table item : tables){
// if(Asserts.isEquals(item.getName(),tableName)){
// table = item;
// }
// }
// if(Asserts.isNotNull(table)) {
// List<Column> columnList = new ArrayList<>();// 接收排除 Detailed Table Information 之后的 Column对象
// List<Column> columnListWithExt = listColumns(schemaName, table.getName()); //获取所有的 Column对象
//
// Column columnExtInfoToTable = columnListWithExt.get(columnListWithExt.size() - 1); //获取 Detailed Table Information 下方解析该值 并赋值给Table的属性
// String extenedInfo = columnExtInfoToTable.getType(); //获取 Detailed Table Information 的值
// /**
// * 解析 Detailed Table Information 开始
// */
//
// System.out.println(extenedInfo);
//
// /**
// * 解析 Detailed Table Information 结束
// */
//
//
// for (int i = 0; i < columnListWithExt.size(); i++) {
// Column columnExt = columnListWithExt.get(i);
// if (!columnExt.getName().contains(HiveConstant.DETAILED_TABLE_INFO)){// 排除 Detailed Table Information
// Column columnBean = new Column();
// columnBean.setName(columnExt.getName());
// columnBean.setType(columnExt.getType());
// columnBean.setComment(columnExt.getComment());
// columnList.add(columnBean);
// }
// }
// table.setColumns(columnList);
// }
// return table;
// }
@Override
public List<Table> listTables(String schemaName) {
List<Table> tableList = new ArrayList<>();
PreparedStatement preparedStatement = null;
ResultSet results = null;
IDBQuery dbQuery = getDBQuery();
String sql = dbQuery.tablesSql(schemaName);
try {
preparedStatement = conn.prepareStatement(sql);
results = preparedStatement.executeQuery();
ResultSetMetaData metaData = results.getMetaData();
List<String> columnList = new ArrayList<>();
for (int i = 1; i <= metaData.getColumnCount(); i++) {
columnList.add(metaData.getColumnLabel(i));
}
while (results.next()) {
String tableName = results.getString(dbQuery.tableName());
if (Asserts.isNotNullString(tableName)) {
Table tableInfo = new Table();
tableInfo.setName(tableName);
if(columnList.contains(dbQuery.tableComment())) {
tableInfo.setComment(results.getString(dbQuery.tableComment()));
}
tableInfo.setSchema(schemaName);
if(columnList.contains(dbQuery.tableType())) {
tableInfo.setType(results.getString(dbQuery.tableType()));
}
if(columnList.contains(dbQuery.catalogName())) {
tableInfo.setCatalog(results.getString(dbQuery.catalogName()));
}
if(columnList.contains(dbQuery.engine())) {
tableInfo.setEngine(results.getString(dbQuery.engine()));
}
tableList.add(tableInfo);
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(preparedStatement, results);
}
return tableList;
}
@Override
public List<Schema> getSchemasAndTables() {
return listSchemas();
}
@Override
public List<Schema> listSchemas() {
List<Schema> schemas = new ArrayList<>();
PreparedStatement preparedStatement = null;
ResultSet results = null;
String schemasSql = getDBQuery().schemaAllSql();
try {
preparedStatement = conn.prepareStatement(schemasSql);
results = preparedStatement.executeQuery();
while (results.next()) {
String schemaName = results.getString(getDBQuery().schemaName());
if (Asserts.isNotNullString(schemaName)) {
Schema schema = new Schema(schemaName);
if (execute(String.format(HiveConstant.USE_DB, schemaName))) {
schema.setTables(listTables(schema.getName()));
}
schemas.add(schema);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
close(preparedStatement, results);
}
return schemas;
}
@Override
public List<Column> listColumns(String schemaName, String tableName) {
List<Column> columns = new ArrayList<>();
PreparedStatement preparedStatement = null;
ResultSet results = null;
IDBQuery dbQuery = getDBQuery();
String tableFieldsSql = dbQuery.columnsSql(schemaName, tableName);
try {
preparedStatement = conn.prepareStatement(tableFieldsSql);
results = preparedStatement.executeQuery();
ResultSetMetaData metaData = results.getMetaData();
List<String> columnList = new ArrayList<>();
for (int i = 1; i <= metaData.getColumnCount(); i++) {
columnList.add(metaData.getColumnLabel(i));
}
Integer positionId=1;
while (results.next()) {
Column field = new Column();
if (StringUtils.isEmpty(results.getString(dbQuery.columnName()))) {
break;
}
else{
if(columnList.contains(dbQuery.columnName())){
String columnName = results.getString(dbQuery.columnName());
field.setName(columnName);
}
if(columnList.contains(dbQuery.columnType())) {
field.setType(results.getString(dbQuery.columnType()));
}
if(columnList.contains(dbQuery.columnComment()) && Asserts.isNotNull(results.getString(dbQuery.columnComment()))) {
String columnComment = results.getString(dbQuery.columnComment()).replaceAll("\"|'", "");
field.setComment(columnComment);
}
field.setPosition(positionId++);
field.setJavaType(getTypeConvert().convert(field));
}
columns.add(field);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(preparedStatement, results);
}
return columns;
}
@Override
public String getCreateTableSql(Table table) {
StringBuilder createTable = new StringBuilder();
PreparedStatement preparedStatement = null;
ResultSet results = null;
String createTableSql = getDBQuery().createTableSql(table.getSchema(),table.getName());
try {
preparedStatement = conn.prepareStatement(createTableSql);
results = preparedStatement.executeQuery();
while (results.next()) {
createTable.append(results.getString(getDBQuery().createTableName())).append("\n");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
close(preparedStatement, results);
}
return createTable.toString();
}
@Override
public IDBQuery getDBQuery() {
return new HiveQuery();
}
@Override
public ITypeConvert getTypeConvert() {
return new HiveTypeConvert();
}
@Override
String getDriverClass() {
return "org.apache.hive.jdbc.HiveDriver";
}
@Override
public String getType() {
return "Hive";
}
@Override
public String getName() {
return "Hive";
}
@Override
public Map<String, String> getFlinkColumnTypeConversion() {
HashMap<String, String> map = new HashMap<>();
map.put("BOOLEAN", "BOOLEAN");
map.put("TINYINT", "TINYINT");
map.put("SMALLINT", "SMALLINT");
map.put("INT", "INT");
map.put("VARCHAR", "STRING");
map.put("TEXY", "STRING");
map.put("INT", "INT");
map.put("DATETIME", "TIMESTAMP");
return map;
}
}
package com.dlink.metadata.query;
import com.dlink.metadata.constant.HiveConstant;
public class HiveQuery extends AbstractDBQuery{
@Override
public String schemaAllSql() {
return HiveConstant.QUERY_ALL_DATABASE;
}
@Override
public String tablesSql(String schemaName) {
return HiveConstant.QUERY_ALL_TABLES_BY_SCHEMA;
}
@Override
public String columnsSql(String schemaName, String tableName) {
return String.format(HiveConstant.QUERY_TABLE_SCHEMA, schemaName, tableName);
}
@Override
public String schemaName() {
return "database_name";
}
@Override
public String createTableName() {
return "createtab_stmt";
}
@Override
public String tableName() {
return "tab_name";
}
@Override
public String tableComment() {
return "comment";
}
@Override
public String columnName() {
return "col_name";
}
@Override
public String columnType() {
return "data_type";
}
@Override
public String columnComment() {
return "comment";
}
}
package com.dlink.metadata;
import com.dlink.metadata.driver.Driver;
import com.dlink.metadata.driver.DriverConfig;
import com.dlink.model.Column;
import com.dlink.model.Schema;
import com.dlink.model.Table;
import org.junit.Test;
import java.util.List;
/**
* MysqlTest
*
* @author wenmo
* @since 2021/7/20 15:32
**/
public class HiveTest {
private static final String IP = "cdh1";
private static final Integer PORT = 10000;
private static final String hiveDB = "test";
private static final String username = "zhumingye";
private static final String passwd = "123456";
private static final String hive="Hive";
private static String url = "jdbc:hive2://"+IP+":"+PORT+"/"+hiveDB;
public Driver getDriver() {
DriverConfig config = new DriverConfig();
config.setType(hive);
config.setName(hive);
config.setIp(IP);
config.setPort(PORT);
config.setUsername(username);
config.setPassword(passwd);
config.setUrl(url);
return Driver.build(config);
}
@Test
public void connectTest() {
DriverConfig config = new DriverConfig();
config.setType(hive);
config.setName(hive);
config.setIp(IP);
config.setPort(PORT);
config.setUsername(username);
config.setPassword(passwd);
config.setUrl(url);
String test = Driver.build(config).test();
System.out.println(test);
System.err.println("end...");
}
@Test
public void getDBSTest() {
Driver driver = getDriver();
List<Schema> schemasAndTables = driver.listSchemas();
schemasAndTables.forEach(schema -> {
System.out.println(schema.getName()+"\t\t"+schema.getTables().toString());
});
System.err.println("end...");
}
@Test
public void getTablesByDBTest() throws Exception {
Driver driver = getDriver();
driver.execute("use odsp ");
List<Table> tableList = driver.listTables(hiveDB);
tableList.forEach(schema -> {
System.out.println(schema.getName());
});
System.err.println("end...");
}
@Test
public void getColumnsByTableTest() {
Driver driver = getDriver();
List<Column> columns= driver.listColumns(hiveDB, "biz_college_planner_mysql_language_score_item");
for (Column column : columns) {
System.out.println(column.getName()+" \t "+column.getType()+" \t "+column.getComment());
}
System.err.println("end...");
}
@Test
public void getCreateTableTest() throws Exception {
Driver driver = getDriver();
// JdbcSelectResult jdbcSelectResult = driver.executeSql("show create table odsp.biz_college_planner_mysql_language_score_item", 1);
Table driverTable = driver.getTable(hiveDB, "biz_college_planner_mysql_language_score_item");
String createTableSql = driver.getCreateTableSql(driverTable);
System.out.println(createTableSql);
System.err.println("end...");
}
@Test
public void getTableExtenedInfoTest() throws Exception {
Driver driver = getDriver();
Table driverTable = driver.getTable(hiveDB, "employees");
for (Column column : driverTable.getColumns()) {
System.out.println(column.getName()+"\t\t"+column.getType()+"\t\t"+column.getComment());
}
}
}
......@@ -20,6 +20,7 @@
<module>dlink-metadata-sqlserver</module>
<module>dlink-metadata-doris</module>
<module>dlink-metadata-phoenix</module>
<module>dlink-metadata-hive</module>
</modules>
......
import React, {useEffect, useState} from 'react';
import {Form, Button, Input, Modal,Select} from 'antd';
import React, {useState} from 'react';
import {Button, Form, Input, Modal, Select} from 'antd';
import type {TaskTableListItem} from '../data.d';
import {DIALECT} from "@/components/Studio/conf";
......@@ -60,6 +60,7 @@ const SimpleTaskForm: React.FC<UpdateFormProps> = (props) => {
<Option value={DIALECT.POSTGRESQL}>{DIALECT.POSTGRESQL}</Option>
<Option value={DIALECT.CLICKHOUSE}>{DIALECT.CLICKHOUSE}</Option>
<Option value={DIALECT.DORIS}>{DIALECT.DORIS}</Option>
<Option value={DIALECT.HIVE}>{DIALECT.HIVE}</Option>
<Option value={DIALECT.PHOENIX}>{DIALECT.PHOENIX}</Option>
<Option value={DIALECT.JAVA}>{DIALECT.JAVA}</Option>
<Option value={DIALECT.SQL}>{DIALECT.SQL}</Option>
......
......@@ -19,6 +19,7 @@ export const DIALECT = {
POSTGRESQL: 'PostGreSql',
CLICKHOUSE: 'ClickHouse',
DORIS: 'Doris',
HIVE: 'Hive',
PHOENIX: 'Phoenix',
JAVA: 'Java',
};
......@@ -39,6 +40,7 @@ export const isSql = (dialect: string) => {
case DIALECT.CLICKHOUSE:
case DIALECT.PHOENIX:
case DIALECT.DORIS:
case DIALECT.HIVE:
return true;
default:
return false;
......@@ -59,6 +61,7 @@ export const isExecuteSql = (dialect: string) => {
case DIALECT.DORIS:
case DIALECT.PHOENIX:
case DIALECT.FLINKSQL:
case DIALECT.HIVE:
return true;
default:
return false;
......@@ -80,6 +83,7 @@ export const isTask = (dialect: string) => {
case DIALECT.PHOENIX:
case DIALECT.FLINKSQL:
case DIALECT.FLINKJAR:
case DIALECT.HIVE:
return true;
default:
return false;
......
......@@ -21,6 +21,8 @@ export const getIcon = (type: string)=>{
return (<Icon component={ClickHouseSvg} />);
case DIALECT.DORIS:
return (<Icon component={DorisSvg} />);
case DIALECT.HIVE:
return (<Icon component={HiveSvg} />);
case DIALECT.PHOENIX:
return (<Icon component={PhoenixSvg} />);
case DIALECT.JAVA:
......@@ -281,7 +283,50 @@ export const DorisSvg = () => (
d="M177.1648 246.144l249.5168 249.5168a25.6 25.6 0 0 1 0 36.2048l-249.5168 249.5168A28.8 28.8 0 0 1 128 761.0176V266.5088a28.8 28.8 0 0 1 49.1648-20.3648z"
fill="#5168AC" p-id="13681"></path>
</svg>
);export const JavaSvg = () => (
);
export const HiveSvg = () => (
<svg t="1647425762735" className="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="3247" width={svgSize} height={svgSize}>
<path
d="M608.6656 764.3136V954.368h46.42133333v-87.38133333h9.8304v87.38133333h46.96746667v-190.0544H664.91733333v70.4512h-9.8304v-70.4512h-46.42133333z m161.65546667 0H724.992V954.368h45.32906667v-190.0544z m7.09973333 0l36.0448 190.0544h54.0672l36.0448-190.0544h-48.05973333l-12.01493334 81.37386667c-1.09226667 3.2768-4.36906667 3.2768-4.9152 0l-12.01493333-81.37386667h-49.152z m226.0992 0h-90.112V954.368H1003.52v-49.69813333l-50.24426667-0.54613334v-21.2992h24.02986667v-49.69813333h-24.02986667v-19.11466667h50.24426667v-49.69813333z"
p-id="3248"></path>
<path
d="M516.36906667 187.5968c-7.64586667-20.75306667-269.24373333-122.33386667-272.52053334-111.4112-48.05973333 12.56106667-67.72053333 67.72053333-100.48853333 102.67306667l-73.18186667-4.36906667c-32.22186667 41.50613333-49.152 84.10453333-37.6832 127.7952C74.00106667 359.08266667 122.0608 407.1424 151.552 477.5936c2.18453333 33.31413333 143.63306667 3.2768 174.21653333-3.2768-41.50613333 29.4912-77.55093333 75.3664-61.71306666 208.0768 14.19946667 62.2592 24.02986667 131.61813333 149.0944 201.5232 16.384 9.28426667 50.7904 20.20693333 71.54346666 27.8528 20.20693333 9.28426667 43.69066667 13.1072 110.31893334-7.09973333 38.77546667-16.384 80.2816-26.76053333 117.9648-43.14453334l-45.32906667 2.18453334c-62.2592 1.09226667-110.86506667 6.00746667-125.61066667-11.4688L484.69333333 752.29866667l33.31413334-64.98986667c46.42133333 4.9152 61.71306667 42.5984 102.67306666 56.79786667l48.05973334-35.49866667c139.81013333 82.46613333 195.51573333-52.4288 211.3536-157.2864-1.6384-42.5984-92.84266667 13.65333333-86.8352-6.5536 2.18453333-45.8752-35.49866667-105.94986667-59.52853334-152.91733333l27.8528-108.68053334c12.56106667-11.4688-58.9824-132.16426667-117.41866666-146.90986666-50.7904-13.65333333-127.7952 51.33653333-127.7952 51.33653333z"
fill="#FDEE21" p-id="3249"></path>
<path
d="M746.2912 418.06506667c0.54613333 11.4688 0.54613333 25.66826667 1.6384 34.4064 0 6.5536-5.46133333 7.09973333-9.28426667 8.192l27.30666667 9.8304c5.46133333 9.28426667 9.8304 18.0224 14.19946667 27.30666666 4.9152 22.39146667 1.09226667 22.9376-2.18453334 24.576-9.8304 0-19.6608 0-28.94506666-1.6384 4.36906667 2.18453333 4.9152 3.82293333 5.46133333 6.5536 0.54613333 4.9152-2.73066667 12.01493333-8.192 19.11466667 8.192 4.36906667 22.9376 8.73813333 33.86026667 13.1072l12.56106666-27.8528c-6.00746667-40.41386667-22.9376-77.55093333-46.42133333-113.59573333z m50.7904 136.53333333c15.29173333 6.5536 36.0448 4.36906667 64.98986667-10.37653333 4.36906667-3.2768 8.192-1.09226667 0.54613333 3.82293333-38.22933333 33.86026667-56.25173333 16.93013333-65.536 6.5536z"
fill="#C8C037" p-id="3250"></path>
<path
d="M864.80213333 539.8528c4.36906667 8.73813333 1.6384 15.29173333 0 22.9376-4.9152 37.13706667-16.384 66.08213333-38.77546666 96.6656-73.18186667 117.9648-147.456 44.2368-206.4384-3.82293333l-24.576 61.16693333c-1.09226667 5.46133333-6.5536 9.28426667 31.67573333 26.2144l38.77546667-27.30666667c148.54826667 112.50346667 253.40586667-158.37866667 199.33866666-175.85493333zM637.61066667 645.25653333c-9.8304 0.54613333-39.86773333 10.92266667-40.96 16.93013334l13.65333333-20.20693334 27.30666667 3.2768z m-19.6608-125.06453333c1.6384 0 10.37653333 2.18453333 9.8304 1.6384-1.09226667-0.54613333 0 12.56106667 2.73066666 19.11466667l-10.92266666 23.48373333c20.75306667-23.48373333 52.97493333-22.39146667 83.01226666-25.12213333l-14.19946666-8.73813334c2.73066667-8.192-0.54613333-14.7456-1.6384-21.84533333l-68.8128 11.4688z m50.7904-70.4512c-21.84533333 6.5536-43.14453333 18.0224-57.344 41.50613333 10.92266667-38.77546667 13.1072-37.13706667 16.384-39.3216 15.29173333-7.09973333 27.8528-2.73066667 40.96-2.18453333z"
fill="#C8C037" p-id="3251"></path>
<path
d="M550.77546667 904.66986667c-26.76053333 29.4912-86.28906667-2.18453333-135.44106667-18.56853334-125.61066667-79.73546667-150.18666667-155.10186667-151.82506667-228.82986666-6.5536-105.94986667 26.2144-167.1168 67.1744-181.8624-27.30666667 52.4288-39.86773333 146.36373333-27.30666666 216.2688 10.37653333 38.77546667 10.37653333 104.31146667 75.3664 139.81013333 31.67573333 18.0224 23.48373333 31.67573333 44.78293333 48.60586667 23.48373333 18.56853333 89.56586667 36.0448 127.24906667 24.576z m39.86773333-488.2432c-45.32906667-63.8976-108.68053333-87.92746667-180.224-90.65813334 14.19946667-4.9152 28.94506667-7.09973333 43.14453333-14.19946666 3.2768-3.82293333 2.18453333-10.37653333 1.09226667-16.93013334-68.8128-18.0224-112.50346667-40.41386667-167.66293333-61.16693333L435.54133333 269.5168c100.48853333 3.82293333 91.7504 28.94506667 155.10186667 146.90986667z"
fill="#FCF6A0" p-id="3252"></path>
<path
d="M639.24906667 385.29706667c-33.31413333-47.5136-65.536-105.40373333-109.7728-142.5408C423.5264 195.24266667 318.12266667 159.744 195.24266667 127.52213333l39.3216-50.24426666C365.09013333 107.3152 487.424 157.01333333 597.1968 238.93333333c19.11466667 46.96746667 31.1296 93.93493333 42.05226667 146.36373334z m67.1744-84.10453334s-18.56853333-42.05226667-27.8528-57.89013333c-21.2992-23.48373333-31.67573333-67.1744-75.3664-87.92746667 13.65333333 3.82293333 22.9376-0.54613333 50.7904 24.576l44.2368 83.5584 8.192 37.6832z"
fill="#FCF6A0" p-id="3253"></path>
<path
d="M729.9072 373.82826667c4.36906667-36.59093333 12.56106667-94.48106667 3.2768-117.9648-26.2144-34.95253333-52.4288-71.54346667-78.6432-104.8576-4.36906667-3.82293333-7.64586667-9.8304-10.92266667-13.65333334 37.13706667 9.8304 75.91253333 35.49866667 127.7952 137.07946667l-41.50613333 99.39626667z"
fill="#FCF6A0" p-id="3254"></path>
<path
d="M573.71306667 378.19733333c-14.7456-11.4688-27.8528-52.4288-50.24426667-61.16693333-20.75306667-1.6384-28.39893333-8.192-55.7056-2.73066667 9.8304-4.9152 19.11466667-11.4688 29.4912-14.7456 7.09973333-1.6384 13.65333333 0 20.75306667 1.09226667 1.6384-0.54613333 2.73066667-1.6384 2.18453333-3.2768-27.30666667-16.93013333-83.5584-16.93013333-121.78773333-26.76053333 44.2368 1.6384 92.84266667-1.09226667 126.1568 9.8304 26.76053333 23.48373333 35.49866667 68.26666667 49.152 97.75786666z m80.82773333-198.2464c6.00746667 0.54613333 38.77546667 52.4288 40.41386667 61.16693334 2.73066667 19.11466667 9.28426667 39.86773333 11.4688 60.07466666-5.46133333-19.11466667-11.4688-38.22933333-18.56853334-56.79786666-2.18453333-5.46133333-7.64586667-16.93013333-22.9376-33.86026667-7.09973333-12.01493333-8.73813333-21.2992-10.37653333-30.58346667z m111.4112 283.4432h-14.19946667l15.29173334 3.82293334-1.09226667-3.82293334z m-96.11946667-13.65333333c-14.19946667-1.6384-28.39893333-2.18453333-42.5984 1.09226667-6.00746667 7.64586667-6.00746667 15.83786667-8.73813333 22.9376 16.93013333-19.11466667 24.02986667-20.20693333 51.33653333-24.02986667z m193.3312 97.75786667c-7.64586667 6.00746667-8.73813333 12.01493333-32.22186666 19.11466666-16.93013333 3.82293333-26.76053333-2.73066667-34.4064-12.01493333 12.01493333 3.2768 14.19946667 12.56106667 46.42133333 2.18453333l20.20693333-9.28426666z m-70.4512 3.82293333c-5.46133333 15.83786667-12.01493333 31.1296-18.0224 45.8752-14.7456 17.47626667-8.192 7.64586667-30.58346666 33.86026667 7.09973333-10.92266667 16.384-21.2992 20.75306666-32.768 3.2768-7.64586667 7.64586667-15.29173333 9.28426667-21.84533334-6.00746667-2.73066667-17.47626667-3.2768-19.11466667-2.18453333-19.6608 11.4688-22.9376 23.48373333-34.4064 35.49866667 8.192-13.1072 15.29173333-27.8528 25.12213334-39.86773334 1.09226667-1.6384 8.192-1.6384 12.56106666-2.73066666-7.09973333-1.09226667-19.6608-3.82293333-20.75306666-3.2768-12.56106667 3.2768-19.6608 14.19946667-29.4912 21.2992 7.09973333-9.8304 13.1072-20.20693333 21.84533333-28.94506667 1.09226667-1.09226667 24.576 1.09226667 36.59093333 6.00746667v4.9152l7.09973334 2.73066666 5.46133333-13.1072 13.65333333-5.46133333z m-154.55573333 93.93493333c-3.2768-1.09226667-31.1296-4.9152-31.1296-3.82293333-10.92266667 7.64586667-12.01493333 14.7456-12.01493333 21.2992 17.47626667-17.47626667 16.93013333-17.47626667 43.14453333-17.47626667z m-21.2992-125.61066666s20.20693333-2.73066667 19.6608-1.09226667c-1.6384 7.09973333 2.73066667 24.02986667 2.73066667 21.2992l-11.4688 9.28426667c23.48373333-12.01493333 48.60586667-9.28426667 73.728-11.4688 0 0-21.2992-6.00746667-19.6608-6.00746667 4.9152-0.54613333-1.09226667-21.84533333-2.73066667-22.39146667 3.82293333-1.09226667 8.192-2.18453333 12.01493333-3.2768-30.58346667-7.64586667-48.05973333-3.2768-74.27413333 13.65333334z"
p-id="3255"></path>
<path
d="M789.98186667 534.9376l-4.36906667 2.18453333c-0.54613333-13.1072-14.7456-12.01493333-26.2144-12.01493333l-9.8304-2.18453333c2.73066667 2.73066667 12.01493333 2.73066667 8.192 8.192-3.2768 1.6384-4.36906667 8.73813333-6.00746667 14.7456h-5.46133333c9.28426667 3.82293333 18.0224 6.5536 27.8528 10.92266666l6.00746667 1.09226667 14.19946666-7.64586667-4.36906666-15.29173333z"
p-id="3256"></path>
<path
d="M657.27146667 525.65333333c-2.18453333-4.36906667-13.65333333-3.82293333-15.83786667-1.09226666-2.18453333 2.18453333 0 17.47626667 2.18453333 14.7456 3.82293333-3.2768 8.73813333-4.36906667 14.19946667-4.36906667 1.09226667-2.73066667 0.54613333-6.00746667-0.54613333-9.28426667z m108.68053333 22.39146667c1.09226667-0.54613333 3.2768-8.192 2.73066667-10.37653333-1.6384-5.46133333-12.01493333-4.36906667-12.01493334-4.36906667-2.73066667 1.6384-4.9152 9.8304-3.82293333 12.56106667 0.54613333 2.73066667 11.4688 3.2768 13.1072 2.18453333z"
fill="#FFFFFF" p-id="3257"></path>
<path
d="M315.392 808.5504l6.5536 0.54613333c39.3216 19.11466667 104.31146667 48.05973333 198.79253333 32.768l14.7456 23.48373334c-41.50613333 20.20693333-86.28906667 15.29173333-127.7952 16.93013333L315.392 808.5504z m-56.79786667-153.46346667l19.6608 83.01226667c52.97493333 33.31413333 143.63306667 70.99733333 218.99946667 67.72053333l-16.93013333-38.22933333c-157.2864-32.768-170.3936-75.3664-221.73013334-112.50346667z m49.152-169.84746666c9.8304 64.44373333 22.39146667 113.0496 78.6432 154.0096 34.4064 24.576 68.26666667 49.152 109.7728 69.35893333 0 0-3.82293333 19.11466667-6.5536 18.56853333-123.42613333-13.65333333-213.53813333-115.78026667-224.4608-162.74773333 10.37653333-35.49866667 25.66826667-57.89013333 42.5984-79.18933333z m58.9824-36.59093334c16.384 71.54346667 55.7056 143.63306667 94.48106667 209.16906667 14.19946667 18.0224 18.0224 26.2144 39.86773333 37.13706667 29.4912 9.28426667 50.7904 7.09973333 72.0896 5.46133333-6.00746667-10.92266667-10.92266667-22.39146667-18.0224-32.768-48.05973333-38.22933333-26.2144-73.18186667-13.1072-95.0272-26.76053333-6.5536-62.2592-21.2992-67.1744-40.41386667-7.64586667-61.16693333-3.2768-80.2816 4.36906667-111.95733333-36.0448 7.64586667-73.18186667 15.29173333-112.50346667 28.39893333z"
p-id="3258"></path>
<path
d="M233.472 69.632c-12.01493333 7.64586667-23.48373333 19.11466667-36.0448 31.67573333-20.75306667 21.2992-34.4064 42.05226667-55.15946667 57.344-4.36906667 3.82293333-15.83786667 9.28426667-30.58346666 10.37653334-7.09973333 0.54613333-11.4688 1.6384-24.02986667 0-11.4688-6.00746667-21.84533333-2.18453333-32.22186667 10.37653333-11.4688 16.384-26.2144 47.5136-32.22186666 67.72053333C10.6496 296.82346667 42.32533333 338.3296 72.9088 370.00533333c27.30666667 26.2144 42.5984 43.14453333 53.52106667 67.1744 8.192 15.83786667 14.7456 37.13706667 21.2992 52.4288 2.18453333 4.9152 2.18453333 4.9152 8.73813333 6.00746667 14.19946667 3.2768 33.86026667 3.2768 51.33653333 4.36906667 7.64586667 0 18.0224 0 27.8528-1.09226667 13.65333333-2.73066667 29.4912-4.9152 42.5984-9.8304 13.1072-3.2768 24.576-7.64586667 34.95253334-11.4688-1.09226667 4.36906667-11.4688 8.73813333-15.29173334 14.7456-35.49866667 50.7904-45.32906667 96.11946667-38.77546666 167.1168 3.2768 31.67573333 10.92266667 57.89013333 21.84533333 87.92746667 4.9152 13.65333333 15.83786667 35.49866667 25.66826667 49.69813333 30.58346667 43.14453333 98.304 97.75786667 192.78506666 119.05706667 16.384 2.18453333 34.95253333 1.09226667 52.97493334-3.82293334 46.42133333-14.19946667 141.99466667-47.5136 141.99466666-47.5136s-84.65066667 7.09973333-122.88 3.2768c-8.73813333-1.6384-18.56853333-1.6384-25.12213333-8.192-1.09226667-1.09226667-4.9152-8.73813333-2.18453333-9.28426666 3.2768 0 13.1072-3.82293333 27.8528-5.46133334-31.67573333-3.2768-31.1296-3.2768-33.31413334-9.28426666-4.36906667-10.92266667-9.28426667-21.2992-14.7456-31.67573334 13.65333333 1.09226667 44.78293333 2.73066667 55.15946667-7.64586666 0 0-18.0224 2.18453333-34.4064 0-5.46133333-0.54613333-14.7456-3.82293333-17.47626667-4.9152-7.09973333-2.73066667-13.1072-3.82293333-14.7456-5.46133334-2.73066667-6.5536-4.36906667-8.73813333-7.09973333-16.93013333-4.36906667-11.4688-4.36906667-24.02986667-5.46133333-35.49866667 10.37653333 13.1072 24.02986667 24.02986667 41.50613333 29.4912 0-0.54613333 22.9376 9.8304 39.86773333 4.36906667l3.2768-1.09226667c0 0.54613333-10.92266667 1.09226667-15.29173333-1.09226666-33.86026667-14.19946667-38.77546667-26.76053333-44.2368-33.31413334l-14.7456-21.84533333c4.36906667-8.73813333 7.09973333-9.28426667 12.56106667-9.28426667 17.47626667 2.18453333 25.66826667 3.2768 36.0448 1.09226667 7.09973333 15.29173333 9.28426667 30.03733333 25.66826666 40.96 55.15946667 16.384 67.1744-4.9152 80.82773334-23.48373333 39.86773333 29.4912 104.8576 38.22933333 149.64053333 0.54613333 57.344-66.08213333 75.3664-170.3936 70.4512-176.40106667-7.09973333-12.01493333-16.384-24.576-24.576-22.9376-28.94506667 7.64586667-39.3216 22.39146667-67.72053333 19.11466667 3.2768 0 9.28426667 0 9.28426666-0.54613333 2.18453333-24.02986667 0-35.49866667-1.09226666-37.6832-8.73813333-19.11466667-20.20693333-39.3216-27.8528-54.0672-2.18453333-3.2768-8.192-26.76053333-18.0224-36.0448-4.36906667-3.82293333-14.7456-13.1072-14.7456-13.1072l-1.09226667 10.37653333s4.36906667 0.54613333 5.46133333 7.09973333c6.00746667 24.02986667 36.0448 81.37386667 38.22933334 84.10453334 10.92266667 17.47626667 1.09226667 38.77546667 9.28426666 50.7904 0.54613333 1.6384 16.384 0 28.94506667 0.54613333 20.20693333-4.36906667 19.11466667-13.1072 36.59093333-14.7456 12.01493333-1.09226667 13.1072 21.2992 12.56106667 22.9376-2.18453333 24.576-9.8304 52.4288-20.75306667 78.6432-23.48373333 45.32906667-49.69813333 86.28906667-87.38133333 91.7504-45.8752 8.192-69.35893333-12.01493333-93.93493333-24.576l-9.28426667 8.192c-32.22186667 32.22186667-70.4512 28.94506667-85.74293333-12.56106667-7.64586667-16.384-18.0224-26.2144-26.76053334-39.86773333l-45.8752 33.31413333c-3.82293333 7.64586667-8.73813333 20.20693333-14.19946666 33.86026667-3.82293333 9.8304-7.09973333 26.2144-7.09973334 39.86773333-6.00746667 9.8304 20.20693333 50.7904 37.13706667 75.3664 4.9152 7.09973333 14.19946667 20.20693333 14.19946667 20.75306667 3.2768 8.73813333 10.37653333 16.384 10.92266666 16.93013333 31.1296 40.41386667-38.77546667 31.1296-53.52106666 28.39893334-28.39893333-4.36906667-56.25173333-16.384-82.46613334-32.22186667-1.6384-1.09226667-3.2768-1.6384-4.36906666-2.73066667-31.1296-19.6608-59.52853333-44.78293333-84.10453334-69.35893333-14.7456-16.384-28.39893333-50.24426667-38.77546666-73.728-15.29173333-57.344-37.13706667-156.74026667 22.39146666-232.10666667 3.82293333-4.36906667 7.64586667-11.4688 11.4688-13.1072 17.47626667-12.01493333 37.13706667-20.20693333 57.344-24.576l-2.18453333-13.1072c-10.37653333 2.18453333-44.78293333 15.29173333-54.61333333 20.20693334-22.39146667 6.5536-40.96 13.1072-69.35893334 20.20693333-9.28426667 1.09226667-18.0224 1.09226667-27.30666666 0-20.20693333-2.73066667-55.15946667-0.54613333-57.344-2.18453333-13.65333333-19.11466667-17.47626667-54.0672-30.03733334-72.63573334-7.64586667-9.8304-15.83786667-18.0224-24.576-26.2144-30.03733333-30.03733333-56.25173333-58.9824-63.35146666-90.112-1.6384-9.28426667-6.5536-18.56853333-3.82293334-45.32906666 7.09973333-25.12213333 19.11466667-45.8752 39.3216-66.08213334 20.75306667 0.54613333 41.50613333 0.54613333 57.89013334 3.82293334 7.64586667 1.09226667 22.9376 3.2768 38.77546666 9.28426666 40.41386667 14.7456 93.3888 39.86773333 93.3888 39.86773334-39.86773333-21.84533333-84.65066667-50.24426667-112.50346666-56.25173334-4.36906667-0.54613333-6.5536-2.73066667-8.192-6.00746666 42.5984-25.12213333 50.24426667-54.0672 78.09706666-80.2816 12.56106667-5.46133333 17.47626667-8.192 28.39893334-9.28426667 99.9424 15.83786667 163.29386667 55.7056 212.992 82.46613333 20.20693333 10.92266667 38.77546667 19.11466667 56.25173333 29.4912 15.29173333 4.9152 61.71306667 39.86773333 75.3664 58.9824 13.65333333 28.94506667 24.02986667 60.6208 33.31413333 91.20426667 6.5536 31.1296 12.56106667 43.69066667 12.56106667 43.69066667s-5.46133333-25.66826667-4.9152-30.58346667c6.00746667 2.18453333 19.6608 6.5536 25.12213333 6.00746667 0 0-25.66826667-13.1072-28.94506666-24.576-10.92266667-37.13706667-21.2992-95.57333333-24.576-98.304-8.192-10.37653333-42.05226667-36.0448-62.80533334-48.05973334-7.64586667-4.36906667-12.01493333-7.64586667-12.56106666-9.28426666 6.5536-6.5536 14.7456-15.83786667 22.39146666-21.2992 7.09973333-5.46133333 13.65333333-11.4688 23.48373334-15.29173334 43.14453333-19.6608 68.26666667 7.64586667 73.728 2.18453334 0 0-9.28426667-10.92266667-4.9152-8.73813334 4.36906667 2.18453333 18.0224 4.9152 19.6608 6.5536 15.83786667 12.56106667 57.344 57.344 81.92 105.40373334 6.00746667 11.4688 8.192 19.11466667 5.46133333 33.31413333-2.73066667 14.19946667-4.9152 21.84533333-8.192 31.1296-2.73066667 6.00746667-18.0224 49.152-18.0224 55.15946667-3.2768 23.48373333 10.37653333 52.97493333 10.37653333 52.97493333 0-8.192-0.54613333-12.56106667 0-18.0224l1.09226667-10.37653333s-0.54613333-2.73066667-0.54613333-3.82293334c0.54613333-7.09973333 2.18453333-13.1072 2.73066666-16.93013333 4.9152-30.58346667 13.65333333-52.97493333 23.48373334-80.2816 2.73066667-6.5536 6.5536-10.37653333 6.5536-15.83786667 0-9.28426667-8.192-21.2992-14.19946667-33.86026666-6.5536-13.65333333-14.19946667-27.30666667-22.39146667-40.41386667-21.2992-31.1296-39.86773333-55.15946667-73.18186666-70.4512-9.28426667-4.36906667-46.42133333-8.192-58.9824-6.00746667-15.29173333 3.2768-28.94506667 6.5536-39.3216 13.1072-16.93013333 10.92266667-30.03733333 27.30666667-45.32906667 37.13706667-33.86026667-16.93013333-50.24426667-30.03733333-53.52106667-31.67573333-20.20693333-10.92266667-44.78293333-23.48373333-70.4512-35.49866667C382.5664 103.49226667 305.01546667 75.09333333 233.472 69.632z m435.8144 635.6992c-20.75306667-16.384-38.77546667-33.31413333-50.24426667-50.7904-3.82293333 20.20693333-17.47626667 34.95253333-28.39893333 49.152-2.18453333 3.2768-3.82293333 8.192 6.5536 22.39146667 2.73066667 3.82293333 13.1072 4.36906667 19.6608 4.36906666-7.09973333-5.46133333-17.47626667-10.92266667-19.11466667-15.83786666 12.56106667 8.192 23.48373333 10.92266667 33.86026667 9.28426666 2.18453333 0 5.46133333-2.73066667 7.64586667-6.5536 4.36906667-9.8304 8.192-12.01493333 12.01493333-14.7456l8.192 10.37653334 9.8304-7.64586667z"
p-id="3259"></path>
</svg>
);
export const JavaSvg = () => (
<svg t="1640791080436" className="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="19717" width={svgSize} height={svgSize}>
<path
......
......@@ -22,6 +22,9 @@ export function getDBImage(type: string) {
case 'phoenix':
imageUrl += 'phoenix.png';
break;
case 'hive':
imageUrl += 'hive.png';
break;
default:
imageUrl += 'db.jpg';
}
......
import React, {useState} from 'react';
import {Modal,Image,List,Card} from 'antd';
import {Card, Image, List, Modal} from 'antd';
import {DataBaseItem} from '../data.d';
import {connect} from "umi";
......@@ -37,6 +37,9 @@ const data:any = [
{
type: 'Phoenix',
},
{
type: 'Hive',
},
];
const DBForm: React.FC<UpdateFormProps> = (props) => {
......
......@@ -262,6 +262,11 @@
<artifactId>dlink-metadata-doris</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.dlink</groupId>
<artifactId>dlink-metadata-hive</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.dlink</groupId>
<artifactId>dlink-metadata-phoenix</artifactId>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment