功能介绍
TCHouse-D SQL 转换功能是降低用户迁移和使用成本的重要工具,核心功能是支持自动将其 Trino/Presto、Hive、Spark SQL、ClickHouse 编写的查询语句,转换为语法和语义上等效的 Apache Doris SQL 语句。
TCHouse-D 的 SQL 转换器支持在引擎层启动 SQL 转换器进程方便外部调用的自动使用,也可在 SQL 工作区通过页面功能的转换器弹窗执行方言转换并一键应用到 SQL 编辑器中。
说明:
当前3.0及以上内核的版本存算分离集群支持此功能。
当前“功能一:TCHouse-D 控制台一键开启”为白名单功能,若您有使用需求,请 提交工单 联系我们开通。
当前功能仅可作为辅助功能使用。因引擎方言的差异性在转换时无法做到转换全面兼容,部分场景需要人工评估转换有效性,如转换有异常请 提交工单联系我们支持。
功能一: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. 单击
。

6. 转换结果支持一键应用到编辑器中,可直接执行。
说明:
SQL 转换器面对 AS Tables 时,不支持子查询的大小写转换。
支持的 SQL 方言
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 语法适配 |
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 执行