SparkSQL 提交方式说明

最近更新时间:2026-05-20 14:11:21

我的收藏
TCHouse-X 支持多种方式提交 Spark SQL,满足不同场景下的使用需求。

1. 提交方式总览

提交方式
适用场景
支持的 SQL 类型
是否需要 Hint
控制台 SQL 工作区
交互式查询、临时分析
部分(见下方说明)
需要
MySQL Client
命令行工具集成
部分(见下方说明)
需要
JDBC
应用程序对接
部分(见下方说明)
需要
控制台 SQL 作业
批量作业调度
全量 SparkSQL
不需要
SparkJar 作业
Jar 包作业提交
全量 SparkSQL
不需要
PySpark 作业
Python 脚本作业
全量 SparkSQL
不需要

2. 控制台 SQL 工作区 / MySQL Client / JDBC 提交

2.1 三种提交方式对比

提交方式
说明
操作指引
控制台 SQL 工作区
TCHouse-X 控制台提供的在线 SQL 工作区,支持直接编写和提交 Spark SQL
MySQL Client
TCHouse-X 兼容 MySQL 协议,支持通过 MySQL Client 提交 Spark SQL
JDBC
通过标准 JDBC 协议提交 Spark SQL,适合应用程序对接

2.2 使用注意事项

注意:
执行前需在 SQL 语句前添加 Hint:/*+engine=batch*/

支持的 SQL 语句类型

语句类型
示例
CREATE TABLE
/*+engine=batch*/ CREATE TABLE t1 (...)
CTAS
/*+engine=batch*/ CREATE TABLE t2 AS SELECT * FROM t1
INSERT
/*+engine=batch*/ INSERT INTO t1 VALUES (...)
SELECT
/*+engine=batch*/ SELECT * FROM t1
USE
/*+engine=batch*/ USE database_name

2.3 离线计算引擎资源配置

如需进一步配置计算资源,可使用组合 Hint:
/*+engine=batch, executor_specs=[规格], executor_count=[数量], driver_specs=[规格]*/
可选资源规格:
规格
每节点 CU 数
适用场景
2X-Small
4 CU
轻量任务、验证
X-Small
8 CU
小规模数据处理
Small
16 CU
中等规模任务
Medium
32 CU
大规模数据处理
示例:
/*+engine=batch, executor_specs=Small, executor_count=4, driver_specs=X-Small*/
INSERT INTO sales SELECT * FROM staging_sales;

3. TCHouse-X 控制台 SQL 作业提交

控制台 SQL 作业支持所有类型的 SparkSQL 语句,无需添加 Hint。

3.1 操作流程

步骤
操作
1
登录 TCHouse-X 控制台,进入相应实例。
2
导航至作业列表 > 新建作业页面。
3
作业类型选择 SQL 作业。
4
在 SQL 编辑器中输入待执行的 SQL 语句。
5
根据需求配置作业参数(资源、优先级等)。
6
单击创建并启动提交作业。

4. SparkJar 作业提交

支持所有类型的 SparkSQL 语句提交。详情请参见 SparkJar 作业开发指南

5. PySpark 作业提交

支持所有类型的 SparkSQL 语句提交。详情请参见 PySpark 作业开发指南

6. 选型建议

使用场景
推荐方式
理由
临时查询、数据探索
控制台 SQL 工作区
无需配置,即开即用
工具/脚本集成
MySQL Client / JDBC
兼容标准协议,集成成本低
复杂计算逻辑
SparkJar 作业
支持自定义 Jar 包
Python 生态
PySpark 作业
对接 Python 数据处理链路