Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
dlink
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhaowei
dlink
Commits
2d536dde
Unverified
Commit
2d536dde
authored
Apr 22, 2022
by
aiwenmo
Committed by
GitHub
Apr 22, 2022
Browse files
Options
Browse Files
Download
Plain Diff
[Fix-426][metadata]修复clickhouse元数据不显示问题
[Fix-426][metadata]修复clickhouse元数据不显示问题
parents
b9dc419f
818aea90
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
97 additions
and
35 deletions
+97
-35
ClickHouseDriver.java
...main/java/com/dlink/metadata/driver/ClickHouseDriver.java
+3
-30
ClickHouseQuery.java
...c/main/java/com/dlink/metadata/query/ClickHouseQuery.java
+27
-5
ClickHouseTest.java
...ouse/src/test/java/com/dlink/metadata/ClickHouseTest.java
+67
-0
No files found.
dlink-metadata/dlink-metadata-clickhouse/src/main/java/com/dlink/metadata/driver/ClickHouseDriver.java
View file @
2d536dde
...
@@ -6,7 +6,6 @@ import com.alibaba.druid.sql.ast.statement.SQLExprTableSource;
...
@@ -6,7 +6,6 @@ import com.alibaba.druid.sql.ast.statement.SQLExprTableSource;
import
com.alibaba.druid.sql.ast.statement.SQLSelectStatement
;
import
com.alibaba.druid.sql.ast.statement.SQLSelectStatement
;
import
com.alibaba.druid.sql.parser.ParserException
;
import
com.alibaba.druid.sql.parser.ParserException
;
import
com.alibaba.druid.sql.parser.Token
;
import
com.alibaba.druid.sql.parser.Token
;
import
com.dlink.assertion.Asserts
;
import
com.dlink.metadata.ast.Clickhouse20CreateTableStatement
;
import
com.dlink.metadata.ast.Clickhouse20CreateTableStatement
;
import
com.dlink.metadata.convert.ClickHouseTypeConvert
;
import
com.dlink.metadata.convert.ClickHouseTypeConvert
;
import
com.dlink.metadata.convert.ITypeConvert
;
import
com.dlink.metadata.convert.ITypeConvert
;
...
@@ -17,9 +16,7 @@ import com.dlink.model.Table;
...
@@ -17,9 +16,7 @@ import com.dlink.model.Table;
import
com.dlink.result.SqlExplainResult
;
import
com.dlink.result.SqlExplainResult
;
import
com.dlink.utils.LogUtil
;
import
com.dlink.utils.LogUtil
;
import
java.sql.PreparedStatement
;
import
java.sql.*
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
...
@@ -34,8 +31,10 @@ import java.util.regex.Pattern;
...
@@ -34,8 +31,10 @@ import java.util.regex.Pattern;
* @since 2021/7/21 17:14
* @since 2021/7/21 17:14
**/
**/
public
class
ClickHouseDriver
extends
AbstractJdbcDriver
{
public
class
ClickHouseDriver
extends
AbstractJdbcDriver
{
@Override
@Override
String
getDriverClass
()
{
String
getDriverClass
()
{
// return "com.clickhouse.jdbc.ClickHouseDriver";
return
"ru.yandex.clickhouse.ClickHouseDriver"
;
return
"ru.yandex.clickhouse.ClickHouseDriver"
;
}
}
...
@@ -59,32 +58,6 @@ public class ClickHouseDriver extends AbstractJdbcDriver {
...
@@ -59,32 +58,6 @@ public class ClickHouseDriver extends AbstractJdbcDriver {
return
"ClickHouse OLAP 数据库"
;
return
"ClickHouse OLAP 数据库"
;
}
}
@Override
public
List
<
Table
>
listTables
(
String
schemaName
)
{
List
<
Table
>
tableList
=
new
ArrayList
<>();
PreparedStatement
preparedStatement
=
null
;
ResultSet
results
=
null
;
String
sql
=
getDBQuery
().
tablesSql
(
schemaName
);
try
{
preparedStatement
=
conn
.
prepareStatement
(
sql
);
results
=
preparedStatement
.
executeQuery
();
while
(
results
.
next
())
{
String
tableName
=
results
.
getString
(
getDBQuery
().
tableName
());
if
(
Asserts
.
isNotNullString
(
tableName
))
{
Table
tableInfo
=
new
Table
();
tableInfo
.
setName
(
tableName
);
tableInfo
.
setSchema
(
schemaName
);
tableList
.
add
(
tableInfo
);
}
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
finally
{
close
(
preparedStatement
,
results
);
}
return
tableList
;
}
@Override
@Override
public
List
<
SqlExplainResult
>
explain
(
String
sql
)
{
public
List
<
SqlExplainResult
>
explain
(
String
sql
)
{
String
initialSql
=
sql
;
String
initialSql
=
sql
;
...
...
dlink-metadata/dlink-metadata-clickhouse/src/main/java/com/dlink/metadata/query/ClickHouseQuery.java
View file @
2d536dde
...
@@ -12,20 +12,32 @@ public class ClickHouseQuery extends AbstractDBQuery {
...
@@ -12,20 +12,32 @@ public class ClickHouseQuery extends AbstractDBQuery {
return
"show databases"
;
return
"show databases"
;
}
}
/**
* 获取模式名称下的所有表,从元数据表中获取获取
*
* @param schemaName 模式名称
* @return String
*/
@Override
@Override
public
String
tablesSql
(
String
schemaName
)
{
public
String
tablesSql
(
String
schemaName
)
{
return
"s
how tables
"
;
return
"s
elect name from system.tables where 1=1 and database='"
+
schemaName
+
"'
"
;
}
}
/**
* 从元数据表中获取表字段信息
*
* @param schemaName 模式名称
* @param tableName 表名
* @return String
*/
@Override
@Override
public
String
columnsSql
(
String
schemaName
,
String
tableName
)
{
public
String
columnsSql
(
String
schemaName
,
String
tableName
)
{
return
"
desc `"
+
tableName
+
"`
"
;
return
"
select * from system.columns where 1=1 and database='"
+
schemaName
+
"' and table='"
+
tableName
+
"'
"
;
}
}
@Override
@Override
public
String
schemaName
()
{
public
String
schemaName
()
{
return
"
db
"
;
return
"
name
"
;
}
}
@Override
@Override
...
@@ -55,11 +67,21 @@ public class ClickHouseQuery extends AbstractDBQuery {
...
@@ -55,11 +67,21 @@ public class ClickHouseQuery extends AbstractDBQuery {
@Override
@Override
public
String
columnKey
()
{
public
String
columnKey
()
{
return
"
KEY
"
;
return
"
is_in_primary_key
"
;
}
}
@Override
@Override
public
String
isNullable
()
{
public
String
isNullable
()
{
return
"NULL"
;
return
"NULL"
;
}
}
@Override
public
String
createTableName
()
{
return
"statement"
;
}
@Override
public
String
isPK
()
{
return
"1"
;
}
}
}
dlink-metadata/dlink-metadata-clickhouse/src/test/java/com/dlink/metadata/ClickHouseTest.java
0 → 100644
View file @
2d536dde
package
com
.
dlink
.
metadata
;
import
com.dlink.metadata.driver.ClickHouseDriver
;
import
com.dlink.metadata.driver.Driver
;
import
com.dlink.metadata.driver.DriverConfig
;
import
com.dlink.metadata.result.JdbcSelectResult
;
import
com.dlink.model.Column
;
import
com.dlink.model.Schema
;
import
com.dlink.utils.JSONUtil
;
import
com.fasterxml.jackson.databind.util.JSONPObject
;
import
org.junit.Test
;
import
java.util.List
;
/**
* ClickhouseTest
*
* @author heyang
* @since 2022/4/21 1:06
**/
public
class
ClickHouseTest
{
private
static
final
String
IP
=
"127.0.0.1"
;
private
static
String
url
=
"jdbc:clickhouse://"
+
IP
+
":8123/default"
;
private
ClickHouseDriver
clickHouseDriver
=
new
ClickHouseDriver
();
public
Driver
getDriver
()
{
DriverConfig
config
=
new
DriverConfig
();
config
.
setType
(
clickHouseDriver
.
getType
());
config
.
setName
(
clickHouseDriver
.
getName
());
config
.
setIp
(
IP
);
config
.
setPort
(
8123
);
// config.setUsername(null);
// config.setPassword(null);
config
.
setUrl
(
url
);
return
Driver
.
build
(
config
);
}
@Test
public
void
connectTest
()
{
String
test
=
getDriver
().
test
();
System
.
out
.
println
(
test
);
System
.
out
.
println
(
"end..."
);
}
@Test
public
void
schemaTest
()
{
List
<
Schema
>
schemasAndTables
=
getDriver
().
getSchemasAndTables
();
System
.
out
.
println
(
JSONUtil
.
toJsonString
(
schemasAndTables
));
System
.
out
.
println
(
"end..."
);
}
@Test
public
void
columnTest
()
{
Driver
driver
=
getDriver
();
List
<
Column
>
columns
=
driver
.
listColumns
(
"xxx"
,
"xxx"
);
System
.
out
.
println
(
JSONUtil
.
toJsonString
(
columns
));
System
.
out
.
println
(
"end..."
);
}
@Test
public
void
queryTest
()
{
Driver
driver
=
getDriver
();
JdbcSelectResult
query
=
driver
.
query
(
"select * from xxx"
,
10
);
System
.
out
.
println
(
JSONUtil
.
toJsonString
(
query
));
System
.
out
.
println
(
"end..."
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment