JDBC Catalog创建失败

为了更快的定位您的问题,请提供以下信息,谢谢
【详述】
在测试环境(3.2.3-a40e2f8 版本上),曾经创建成功过一次。按照官方文档进行修改,目标数据库为MSSQL

CREATE EXTERNAL CATALOG DataCenter
COMMENT ‘MSSQL DataCenter’
PROPERTIES
(
“type”=“jdbc”,
“user”=“user”,
“password”=“password”,
“jdbc_uri”=“jdbc:sqlserver://infodb;DatabaseName=DataCenter;Encrypt=False”,
“driver_url”=“file:///opt/JDBCDriver/mssql-jdbc-12.6.0.jre11.jar”,
“driver_class”=“com.microsoft.sqlserver.jdbc.SQLServerDriver”
);
SHOW RESOURCES;
image
可以看到如上信息。

SHOW CATALOGS;
image
只有默认catalog

新建外部表后,无报错,执行:SELECT * from TableTest
其BE的plugin中,也有对应的jar包
image

我用同样的办法,在生产环境(版本3.2.1)上按照上述同样的步骤执行,在创建外部表时,会报:
1064 - Unexpected exception: jdbc resource [DataCenter] not exists

执行SHOW DATABASES FROM DataCenter;
会报1064 - doesn’t find class: com.microsoft.sqlserver.jdbc.SQLServerDriver

此时,其BE的plugin中,确实没有jar包

且,SHOW RESOURCES;为空
image

SHOW CATALOGS;有新建的catalog
image

后来我将生产环境升级到了3.2.6-2585333,以为低版本可能有问题。
但是,该问题依然存在。

接着,我在测试环境(3.2.3-a40e2f8)再新建一个新的catalog
CREATE EXTERNAL CATALOG JYDB
COMMENT ‘MSSQL JYDB’
PROPERTIES
(
“type”=“jdbc”,
“user”=“username”,
“password”=“password”,
“jdbc_uri”=“jdbc:sqlserver://basedb;DatabaseName=jydb;Encrypt=False”,
“driver_url”=“file:///opt/JDBCDriver/mssql-jdbc-12.6.0.jre11.jar”,
“driver_class”=“com.microsoft.sqlserver.jdbc.SQLServerDriver”
);

新的JYDB也出现了同上的情况,外部表无法创建,jdbc resource [JYDB] not exists

目前不确定是哪个配置出现了问题,还请协助。

很神奇的是,我通过CREATE EXTERNAL RESOURCE可以实现了
CREATE EXTERNAL RESOURCE DataCenter
PROPERTIES (
“type”=“jdbc”,
“user”=“user”,
“password”=“password”,
“jdbc_uri”=“jdbc:sqlserver://infodb;databaseName=DataCenter;Encrypt=False”,
“driver_url”=“file:///opt/JDBCDriver/mssql-jdbc-12.6.0.jre11.jar”,
“driver_class”=“com.microsoft.sqlserver.jdbc.SQLServerDriver”
);

那就是意味着,创建CATALOG 不会自动创建RESOURCE,需要自己创建,难道是配置问题?

resource和catalog是不一样的,是两种连接方式

当前 jdbc catalog还不支持连接sqlserver,jdbc resource支持连接sqlserver

这个有点像mssql-jdbc-12.6.0.jre11.jar包不对,我用mysql-jdbc8的包成功了

1赞