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