2.1.6升级2.1.8后mysql catalog报错

Viewed 61

原版本:2.1.6
升级后:2.1.8

问题描述:升级后查询mysql catalog报错,重建catalog也无法解决。具体报错如下:

SQL 错误 [1105] [HY000]: RuntimeException, msg: java.lang.RuntimeException: Found conflicting table names under case-insensitive conditions. Conflicting remote table names: JOB_STATUS_TRACE_LOG, job_status_trace_log, JOB_EXECUTION_LOG, job_execution_log in remote database 'hoox_evaluation' under catalog 'hcp_172'. Please use meta_names_mapping to handle name mapping.

创建catalog的语句:

CREATE CATALOG hcp_172 PROPERTIES (
    "type"="jdbc",
    "user"="",
    "password"=",
    "jdbc_url" = "jdbc:mysql://127.0.0.1:3306/hoox_evaluation?useSSL=false&autoReconnect=true&failOverReadOnly=false",
    "driver_url" = "mysql-connector-java-8.0.30.jar",
    "driver_class" = "com.mysql.cj.jdbc.Driver"
);

数源结构:

2 Answers

经过自己的摸索,成功获得参数模版。其实meta_names_mapping的用意就是给冲突的表名起一个别名,比如JOB_EXECUTION_LOG和job_execution_log是冲突表名,则可以给其中一个表名起别名。如JOB_EXECUTION_LOG -> JOB_EXECUTION_LOG_BIG

CREATE CATALOG hcp_172 PROPERTIES (
    "type"="jdbc",
    "user"="",
    "password"="",
    "jdbc_url" = "jdbc:mysql://127.0.0.1:3306/abcd?useSSL=false&autoReconnect=true&failOverReadOnly=false",
    "driver_url" = "mysql-connector-java-8.0.30.jar",
    "driver_class" = "com.mysql.cj.jdbc.Driver",
	"meta_names_mapping" = '{
		"tables": [{
			"remoteDatabase": "abcd",
			"remoteTable": "JOB_EXECUTION_LOG",
			"mapping": "JOB_EXECUTION_LOG_BIG"
		},
    	{
    		"remoteDatabase": "abcd",
    		"remoteTable": "JOB_STATUS_TRACE_LOG",
    		"mapping": "JOB_STATUS_TRACE_LOG_BIG"
    	}
		]
	}'
);