一、功能介绍
TCHouse-D 的 SQL 转换器支持可以在引擎层启动 SQL 转换器进程方便外部调用的自动使用方式,也可在 SQL 工作区通过页面功能的转换器弹窗执行方言转换并一键应用到 SQL 编辑器中。
注意:说明:
二、功能一:TCHouse-D 控制台一键开启(存在方言兼容性可能引入查询阻断,请慎重开通)
TCHouse-D 在 2026 年 5 月的新版本中,将 SQL 转换器集成到了控制台,支持集群粒度一键开启,无需手动部署服务。
三、操作步骤
1. 登录 腾讯云数据仓库 TCHouse-D 控制台。
2. 在集群列表中选择目标集群,在集群操作列中选择开启SQL转换器开关,一键开启。
注意:说明:
注意:在控制台中开启后,系统自动在 FE 节点部署并启动 SQL Converter 服务,无需手动配置 sql_converter_service_url。
使用方式一:Session 级方言设置
在 SQL 工作区或 JDBC 连接中,直接设置会话方言后编写原始 SQL:
— 1. 设置来源方言SET sql_dialect = 'presto'; — 2. 直接写 Presto 语法 SQL,Doris 自动转译执行SELECT date_format(cast(order_time AS timestamp), '%Y-%m') AS month, count(*) AS cntFROM ordersGROUP BY 1ORDER BY 1;– 3. 用完切回默认SET sql_dialect = 'doris';
| 参数 | 说明 |
| sql_dialect | 会话变量,仅对当前会话生效 |
| 支持值 | presto / trino / clickhouse / hive / postgresql / spark / oracle |
| 生效范围 | 当前 Session,连接断开后重置 |
使用方式二:SQL_CONVERT 函数(单条转换)
— 语法:SQL_CONVERT('source_dialect', 'raw_sql')SELECT SQL_CONVERT('clickhouse', 'SELECT toYYYYMM(create_time), count() FROM user_log GROUP BY toYYYYMM(create_time)');
返回结果就是转译后的 Doris SQL 文本,可以再复制执行:
— 返回转译结果:SELECT date_format(create_time, '%Y%m'), count(*) FROM user_log GROUP BY date_format(create_time, '%Y%m')
四、功能二:SQL 工作区使用转换器(推荐)
TCHouse-D 的 SQL 工作区已原生集成 SQL 转换器功能。
五、操作步骤
1. 登录 TCHouse-D 控制台,选择目标集群进入 SQL 工作区。
2. 在 SQL 编辑器上方找到 SQL 转换器入口。
3. 选择来源方言(例如 Presto、ClickHouse 等等)。
4. 输入或粘贴需要转换的 SQL 语句。
5. 单击转换为Doris SQL 。
6. 转换结果支持一键应用到编辑器中,可直接执行。
注意:说明:
注意:SQL 转换器面对 AS Tables 时,不支持子查询的大小写转换。
六、支持的 SQL 方言
1. DQL(查询)方言支持:
| 方言 | 兼容度 | 典型转换场景 |
| Presto | 99.6% | 日期函数、数组函数、标识符改写 |
| Trino | 高 | approx_distinct > APPROX_COUNT_DISTINCT |
| ClickHouse | 98% | toString > CAST、arrayCompact > array_distinct |
| Hive SQL | 高 | LATERAL VIEW > CROSS JOIN、date_format 适配 |
| PostgreSQL | 高 | 类型系统、函数映射 |
| Spark | 高 | Spark SQL 语法适配 |
2. DDL(建表语句)方言支持:
从 Doris SQL Converter 1.0.3 版本起,支持以下方言的 DDL 转换:
| 方言 | DDL 转换支持说明 |
| Hive | 建表语句转换为 Doris DDL |
| Presto (PrestoDB) | 建表语句转换为 Doris DDL |
| ClickHouse | 建表语句转换为 Doris DDL,函数兼容性大幅提升 |
| Oracle | 建表语句转换为 Doris DDL |
| PostgreSQL | 建表语句转换为 Doris DDL |
注意:说明:
注意:转换流程:用户 SQL > FE 识别方言 > HTTP 调用 Converter 服务 > 方言转换 > Doris 标准 SQL > Nereids Parser 解析 > 生成执行计划 > BE 执行