小生姓韩,欢迎你的来访

vuePress-theme-reco 小韩    2024 - 2025
小生姓韩,欢迎你的来访 小生姓韩,欢迎你的来访
主页
内容分类
  • Bug解决
  • Linux相关
  • Java基础
  • Java开发细节
  • 项目部署
涵盖属性
推荐阅览
  • 《基于云效Codeup的自动化部署(前端)》
  • 《基于云效Codeup的自动化部署(后端)》
  • 《XXL-JOB项目部署搭建》
时间轴
关于
author-avatar

小韩

21

文章

26

标签

主页
内容分类
  • Bug解决
  • Linux相关
  • Java基础
  • Java开发细节
  • 项目部署
涵盖属性
推荐阅览
  • 《基于云效Codeup的自动化部署(前端)》
  • 《基于云效Codeup的自动化部署(后端)》
  • 《XXL-JOB项目部署搭建》
时间轴
关于

本地JdbcUtil调用Clickhouse数据库异常排查

vuePress-theme-reco 小韩    2024 - 2025

本地JdbcUtil调用Clickhouse数据库异常排查

小韩 2025-02-28 ClickhouseBug处理

# 前言

由于数据迁移、服务迁移等任务,CK的版本升级到高版本,以前的一些低版本的情况可能会出现各种各样的bug。以前在本地的测试是可以正常使用的,但是高版本之后就不一定了。本次正好遇上一个开发需求,顺带修复此bug。

# 问题发现:

在执行一个简单的SQL时,本地的控制台一直提醒报错,这里不免发问:究竟是我的SQL错了吗?SQL明明在编译器和DMS上可以执行,SQL如下:

// 原始的SQL
select
	count(0)
FROM
  (
select
	*
from
	raytheon_clickhouse.app_financial_all_order_d_a_distributed
where
	1 = 1
	and (loan_date between ? and ? )
	and loan_period = ?
	and platform = ? ) t;

// 填充对应参数后的SQL
select
	count(0)
from
	(
	select
		*
	from
		raytheon_clickhouse.app_financial_all_order_d_a_distributed
	where
		1 = 1
		and (loan_date between '2023-02-22' and '2024-02-22' )
		and loan_period = 3
		and platform = 'FTD') t;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# 问题定位

经过多次DEBUG处理,找到了执行前的包装SQL,代码中是这样的:

随后就会报错:

粘贴出来的报错信息:(大体上写的是一次查询只能运行一个SQL)

# 问题解决

本地SQL运行都正常,但是控制台打印错误信息,观察到了SQL中末尾的 ' ; ' 号。于是尝试移除原有在工具中封装的该符号,重新进行二次调用。

接口可以正常返回了:

# 问题总结

可能由于CK版本的升级导致SQL校验过于敏感,尝试对于SQL进行微调来排查执行结果,仍需耐心仔细。

欢迎来到 小生姓韩,欢迎你的来访
看板娘