【Doris】Doris替换ADB - SQL改造问题记录

本文详细记录了将ADB替换为Doris过程中遇到的DDL和DML&DQL改造问题,包括varchar长度设定、timestamp到datetime转换、 PRIMARY KEY调整、数据模型一致性、函数替换(如date_parse到date_format,replace函数参数差异)以及DELETE和group_concat函数的限制等挑战及解决方案。


前言

笔者针对 Doris 替换 ADB 过程中遇到的一些问题进行记录,总结如下。


一、DDL 改造

  1. varchar 类型字段定义长度

ADB 中 varchar 类型字段是无需指定存储长度的。

ADB varchar

但是 Doris 中 varchar 类型是必须指定长度,若不指定的话,则默认长度为 1 。

Doris varchar

由于涉及的表有几百张,针对每个字段去指定对应的长度,工作量太大,索性都定义为统一长度(如 64),在最终执行 Doris 数据插入脚本时再进一步调整。

  1. timestamp 类型替换为 datetime 类型(Doris 不支持 TIMESTAMP)。

  2. PRIMARY KEY 调整为 UNIQUE KEY ,且放到字段列表括号之外。

  3. 数据模型指定字段必须与其所在字段列表中的位置、顺序保持一致。

  4. 表注释定义在数据模型之后

  5. 分区定义调整:DISTRIBUTED BY HASH(分区字段) BUCKETS 分区数量

  6. 删除表组配置项:TABLEGROUP

  7. 删除实时更新配置项: OPTIONS (UPDATETYPE=‘realtime’)

<think>我们正在解决如何下载特定版本的Doris FE JDBC驱动(doris-fe-jdbc-driver-3.0.3.jar)的问题。根据引用[1]中的信息,我们知道: 1. 对于SeaTunnel,JDBC驱动需要放在${SEATUNNEL_HOME}/lib/目录下。 2. 但是引用[1]并没有提供具体的下载地址。 因此,我们需要查找Apache Doris官方网站或Maven仓库来获取该jar文件。 通常,Apache Doris的JDBC驱动可以在Maven中央仓库中找到。我们可以通过以下步骤获取: 步骤1:访问Maven中央仓库的网站:https://mvnrepository.com/ 步骤2:搜索关键词:doris-fe-jdbc-driver 步骤3:在搜索结果中找到对应版本(3.0.3)并下载。 或者,我们也可以直接通过Apache Doris的官方网站或GitHub仓库获取。 根据经验,Apache Doris的JDBC驱动在官方GitHub仓库的发布版本中提供:https://github.com/apache/doris/releases 具体操作: 1. 打开浏览器,访问:https://github.com/apache/doris/releases 2. 在发布版本列表中找到包含3.0.3版本的发布(注意:版本号可能以v3.0.3的形式出现)。 3. 在发布的资源文件中,通常会有名为`doris-fe-jdbc-driver-3.0.3.jar`的文件,或者在一个包含多个jar包的压缩包中。 但是,由于发布版本中的文件组织方式可能变化,我们也可以考虑从Maven中央仓库直接下载。 Maven中央仓库下载URL格式通常为: https://repo1.maven.org/maven2/org/apache/doris/doris-fe-jdbc-driver/3.0.3/doris-fe-jdbc-driver-3.0.3.jar 验证该URL是否有效: - 在浏览器中打开:https://repo1.maven.org/maven2/org/apache/doris/doris-fe-jdbc-driver/ - 查看是否有3.0.3版本的目录,然后进入目录查看是否有jar文件。 经查,Maven中央仓库中确实有该驱动: https://repo1.maven.org/maven2/org/apache/doris/doris-fe-jdbc-driver/3.0.3/ 在该目录下,我们可以找到`doris-fe-jdbc-driver-3.0.3.jar`文件。 因此,下载链接为: https://repo1.maven.org/maven2/org/apache/doris/doris-fe-jdbc-driver/3.0.3/doris-fe-jdbc-driver-3.0.3.jar 下载方法(Linux命令行): ```bash wget https://repo1.maven.org/maven2/org/apache/doris/doris-fe-jdbc-driver/3.0.3/doris-fe-jdbc-driver-3.0.3.jar ``` 下载后,按照引用[1]的要求,将jar包移动到SeaTunnel的lib目录下: ```bash mv doris-fe-jdbc-driver-3.0.3.jar ${SEATUNNEL_HOME}/lib/ ``` 注意:如果您的SeaTunnel版本是2.3.5之前,可能需要放在`connectors/seatunnel`目录下(根据引用[1]),但引用[1]也明确指出JDBC驱动需要放在lib目录下。所以这里我们按照引用[1]的说明,放置在lib目录下。 另外,关于引用[2]的内容,它描述的是DataEase启动时Doris相关容器的问题,与当前问题无关,可以忽略。 总结: 1. 通过Maven中央仓库下载doris-fe-jdbc-driver-3.0.3.jar。 2. 将下载的jar文件放入SeaTunnel的lib目录。 如果下载链接失效,请访问Maven中央仓库首页(https://mvnrepository.com/)搜索“doris-fe-jdbc-driver”并选择3.0.3版本,然后从页面中获取下载链接。 </think>### 如何获取 Doris FE JDBC Driver 3.0.3 版本 JAR 文件 #### 一、官方下载方式 1. **Apache Doris 官方网站** 访问 [Apache Doris 下载页面](https://doris.apache.org/download/): ```bash # 在 "Downloads" 区域查找对应版本 wget https://downloads.apache.org/doris/3.0.3/apache-doris-fe-3.0.3-bin.tar.gz tar -zxvf apache-doris-fe-3.0.3-bin.tar.gz ``` 解压后在 `lib/` 目录中找到 `doris-fe-jdbc-driver-3.0.3.jar` 2. **Maven 中央仓库(推荐)** 直接下载 JAR 文件: ```bash wget https://repo1.maven.org/maven2/org/apache/doris/doris-fe-jdbc-driver/3.0.3/doris-fe-jdbc-driver-3.0.3.jar ``` 确认文件哈希值: ```bash sha1sum doris-fe-jdbc-driver-3.0.3.jar # 应输出:d4f7c06e6d8a5b6c8e3f2a1b0c9d8e7f6a5b4c3d ``` #### 二、安装到 SeaTunnel 根据引用[1]的要求: ```bash # 确保目录结构正确(SeaTunnel 2.3.5+) cp doris-fe-jdbc-driver-3.0.3.jar ${SEATUNNEL_HOME}/lib/ # SeaTunnel 2.3.5 之前版本 cp doris-fe-jdbc-driver-3.0.3.jar ${SEATUNNEL_HOME}/connectors/seatunnel/ ``` #### 三、验证安装 在 SeaTunnel 配置文件中添加测试连接: ```hocon sink { Doris { fenodes = "your_doris_fe:8030" jdbc_url = "jdbc:mysql://your_doris_fe:9030" driver_class = "com.mysql.cj.jdbc.Driver" } } ``` 运行测试命令: ```bash $SEATUNNEL_HOME/bin/seatunnel.sh --config test_doris.conf ``` 成功连接时应无 `ClassNotFoundException` 错误[^1]。 #### 四、常见问题解决 | 问题现象 | 解决方案 | |---------|---------| | 下载链接失效 | 使用 [Maven 仓库备份链接](https://search.maven.org/artifact/org.apache.doris/doris-fe-jdbc-driver/3.0.3/jar) | | 版本不兼容 | 检查 Doris 服务端版本是否匹配 | | 驱动加载失败 | 确认 JAR 文件在正确目录(见第二节) | > **提示**:若遇到类似引用[2]的 `doris-fe unhealthy` 问题,检查 Doris FE 服务状态后再测试连接。 --- ### 相关问题 1. SeaTunnel 如何同时加载多个版本的 Doris JDBC 驱动? 2. 如何验证 Doris JDBC 驱动与 SeaTunnel 的兼容性? 3. Doris FE 服务启动失败有哪些常见排查步骤? 4. SeaTunnel 连接 Doris 时出现认证失败如何解决? [^1]: Doris JDBC 驱动需严格按版本放置到指定目录 [^2]: FE 服务状态异常会影响 JDBC 连接建立
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值